mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-01-05 22:20:21 -05:00
Compare commits
192 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e42e25617 | ||
|
|
c27c9564cf | ||
|
|
c4b0da335d | ||
|
|
b73699be8d | ||
|
|
bc87b6e955 | ||
|
|
f15155ddc9 | ||
|
|
37b556012e | ||
|
|
79ba3dd874 | ||
|
|
28795c3158 | ||
|
|
935d248b53 | ||
|
|
b2103afe30 | ||
|
|
fcbc4e420e | ||
|
|
19fcda877f | ||
|
|
48cd93ef93 | ||
|
|
80fd39826b | ||
|
|
50c7d1531b | ||
|
|
657c6f2b7d | ||
|
|
e7484fac09 | ||
|
|
613ec9c48c | ||
|
|
322050efd8 | ||
|
|
5242368343 | ||
|
|
564151e520 | ||
|
|
b40220cb73 | ||
|
|
2ebac74049 | ||
|
|
8ede63a960 | ||
|
|
38a0cc39e6 | ||
|
|
b482b61770 | ||
|
|
36a6f6e151 | ||
|
|
0c45883649 | ||
|
|
c243144009 | ||
|
|
4e2df006e7 | ||
|
|
02964d3bef | ||
|
|
c0e50aac48 | ||
|
|
6c0804ba4f | ||
|
|
708b13dd71 | ||
|
|
eb64e054b5 | ||
|
|
c42f7f930c | ||
|
|
44c1d7306d | ||
|
|
2413c22a51 | ||
|
|
31fefb4f86 | ||
|
|
745fd81aa1 | ||
|
|
f7bf1567c1 | ||
|
|
02021a09b1 | ||
|
|
6411d32228 | ||
|
|
56287e8094 | ||
|
|
62f70fd628 | ||
|
|
dcca2c5821 | ||
|
|
d22f2296c2 | ||
|
|
2e0ea5d085 | ||
|
|
cb4526e8e2 | ||
|
|
fc3132cd77 | ||
|
|
e474db33ec | ||
|
|
6274d2b250 | ||
|
|
d4bfdaa29e | ||
|
|
3b7f5f5ce0 | ||
|
|
496e2f1840 | ||
|
|
98f3c055d7 | ||
|
|
7df36ce8b4 | ||
|
|
5deaca45c2 | ||
|
|
e790757855 | ||
|
|
46b2c6494f | ||
|
|
c4216a4075 | ||
|
|
375412aa42 | ||
|
|
895ac56eb3 | ||
|
|
c593388ec6 | ||
|
|
1c6960fe44 | ||
|
|
e7ac2ffd6c | ||
|
|
df35e54fba | ||
|
|
15f757ae04 | ||
|
|
b7dc15099c | ||
|
|
dc33c67f48 | ||
|
|
89fb517fd1 | ||
|
|
51eb94dbe9 | ||
|
|
03747f618f | ||
|
|
8154322448 | ||
|
|
7531ae2749 | ||
|
|
32515172d3 | ||
|
|
3b500ecf69 | ||
|
|
b93dd4751d | ||
|
|
d651f8db34 | ||
|
|
3f8f7d21d0 | ||
|
|
824341e396 | ||
|
|
a972708d69 | ||
|
|
47b305c83b | ||
|
|
2ec3da18f2 | ||
|
|
70aea9ac0c | ||
|
|
38270bf4e2 | ||
|
|
05d58ca0da | ||
|
|
91aab54b43 | ||
|
|
25d552c09e | ||
|
|
a1d51502c4 | ||
|
|
883d1dfa19 | ||
|
|
f94c48b27c | ||
|
|
0734547aec | ||
|
|
8ab87d9844 | ||
|
|
21b3b85e6e | ||
|
|
45ccac3bc4 | ||
|
|
0b95b0b94b | ||
|
|
501b370dc0 | ||
|
|
2058a4b639 | ||
|
|
266823a81e | ||
|
|
6cd5713baa | ||
|
|
e9038de819 | ||
|
|
9129b681dc | ||
|
|
1f2b602638 | ||
|
|
87d9de1009 | ||
|
|
81a6db2190 | ||
|
|
dbd335fd3b | ||
|
|
84fc6e7a7a | ||
|
|
f851f10ee1 | ||
|
|
0d92d9f9bd | ||
|
|
73fce52df1 | ||
|
|
14223d239a | ||
|
|
a3daa7b257 | ||
|
|
a70f943462 | ||
|
|
a717260574 | ||
|
|
90a4898dbd | ||
|
|
4543d9e975 | ||
|
|
2aedd20007 | ||
|
|
822e1cbfb5 | ||
|
|
0ec082669d | ||
|
|
5315eeb26b | ||
|
|
fab36ec008 | ||
|
|
8a2b875779 | ||
|
|
efaffb8298 | ||
|
|
e004eb3f00 | ||
|
|
43e8f6dc81 | ||
|
|
f5bff8fe7c | ||
|
|
32bd5a4cca | ||
|
|
e4ec774d16 | ||
|
|
b1ce21ad77 | ||
|
|
9ab5e86c81 | ||
|
|
ea3442ad27 | ||
|
|
e1af02a642 | ||
|
|
fe0c4e4f92 | ||
|
|
5e58fdf821 | ||
|
|
01537c03b1 | ||
|
|
b78f4d13c1 | ||
|
|
ba68243dc7 | ||
|
|
b742971d9b | ||
|
|
6492cfb430 | ||
|
|
c229adcbb9 | ||
|
|
abb08a4589 | ||
|
|
5ccc124ad4 | ||
|
|
db22fea0d1 | ||
|
|
7ebd12ec3d | ||
|
|
ac0e57726f | ||
|
|
e3200b1481 | ||
|
|
5492935c32 | ||
|
|
2a67d80057 | ||
|
|
7956a75344 | ||
|
|
cfa82e5086 | ||
|
|
60291a93c2 | ||
|
|
51fec1c5a0 | ||
|
|
5b8c5e2fd7 | ||
|
|
fad8484b93 | ||
|
|
5a0fd6ee08 | ||
|
|
d7d3810874 | ||
|
|
7664b54f89 | ||
|
|
21cbc353dd | ||
|
|
f0819c339c | ||
|
|
8d66306ec4 | ||
|
|
adcdca6f2e | ||
|
|
efd7d1a4a0 | ||
|
|
fc3fa137ac | ||
|
|
61e901e07b | ||
|
|
d5dee106d1 | ||
|
|
00518e1a60 | ||
|
|
129d622015 | ||
|
|
4423cbfcf3 | ||
|
|
7f0d845dd0 | ||
|
|
bba1c894c5 | ||
|
|
6c197a4a8c | ||
|
|
4ceae8ec31 | ||
|
|
d257f903cc | ||
|
|
69742dd785 | ||
|
|
92161eae07 | ||
|
|
70d5099902 | ||
|
|
de80f4e262 | ||
|
|
0f0b8d4528 | ||
|
|
e34301fb2f | ||
|
|
a140c1ddc1 | ||
|
|
b472c615fb | ||
|
|
d41f33775e | ||
|
|
c27d60e2b0 | ||
|
|
77fcaf4fca | ||
|
|
206dc66f7c | ||
|
|
2d267fc50a | ||
|
|
5cd5f00df7 | ||
|
|
6a80869861 | ||
|
|
fb113514ae | ||
|
|
91740048c2 |
5
.github/renovate.json
vendored
5
.github/renovate.json
vendored
@@ -5,7 +5,7 @@
|
||||
":disableDependencyDashboard"
|
||||
],
|
||||
"schedule": [
|
||||
"before 3am on Monday"
|
||||
"before 8am on Monday"
|
||||
],
|
||||
"ignorePaths": [
|
||||
"tests/**",
|
||||
@@ -19,7 +19,8 @@
|
||||
]
|
||||
},
|
||||
"ignoreDeps": [
|
||||
"jaraco.text"
|
||||
"jaraco.text",
|
||||
"sabctools"
|
||||
],
|
||||
"packageRules": [
|
||||
{
|
||||
|
||||
23
.github/stale.yml
vendored
23
.github/stale.yml
vendored
@@ -1,23 +0,0 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 21
|
||||
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 7
|
||||
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- "Feature request"
|
||||
- "Work in progress"
|
||||
- "Bug"
|
||||
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: "Stale"
|
||||
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
||||
11
.github/workflows/build_release.yml
vendored
11
.github/workflows/build_release.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
if: steps.cache-virtualenv-64bit.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
python --version
|
||||
pip install --upgrade pip wheel
|
||||
python -m pip install --upgrade pip wheel
|
||||
pip install --upgrade -r requirements.txt
|
||||
pip install --upgrade -r builder/requirements.txt
|
||||
- name: Build Windows standalone binary and installer (64bit)
|
||||
@@ -87,7 +87,7 @@ jobs:
|
||||
# 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.11.0"
|
||||
PYTHON_VERSION: "3.11.3"
|
||||
MACOSX_DEPLOYMENT_TARGET: "10.9"
|
||||
# We need to force compile for universal2 support
|
||||
CFLAGS: -arch x86_64 -arch arm64
|
||||
@@ -123,7 +123,6 @@ jobs:
|
||||
# https://github.com/pyca/cryptography/issues/5918
|
||||
# 2. We need to build the PyInstaller bootloader:
|
||||
# https://github.com/pyinstaller/pyinstaller/issues/6235
|
||||
# 3. TEMPORARY: Add aarch64 for orjson universal2 build, until they provide a wheel
|
||||
if: steps.cache-virtualenv.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
python3 --version
|
||||
@@ -132,11 +131,9 @@ jobs:
|
||||
pip3 install --upgrade -r requirements.txt --no-binary cffi
|
||||
|
||||
pip3 uninstall cryptography -y
|
||||
pip3 download -r builder/osx/requirements.txt --platform macosx_10_10_universal2 --only-binary :all: --no-deps --dest .
|
||||
pip3 download -r builder/osx/requirements.txt --platform macosx_10_12_universal2 --only-binary :all: --no-deps --dest .
|
||||
pip3 install -r builder/osx/requirements.txt --no-cache-dir --no-index --find-links .
|
||||
|
||||
rustup target add aarch64-apple-darwin
|
||||
|
||||
|
||||
PYINSTALLER_COMPILE_BOOTLOADER=1 pip3 install --upgrade -r builder/requirements.txt --no-binary pyinstaller
|
||||
- name: Import macOS codesign certificates
|
||||
# Taken from https://github.com/Apple-Actions/import-codesign-certs/pull/27 (comments)
|
||||
|
||||
11
.github/workflows/integration_testing.yml
vendored
11
.github/workflows/integration_testing.yml
vendored
@@ -20,18 +20,18 @@ jobs:
|
||||
builder/SABnzbd.spec
|
||||
tests
|
||||
--line-length=120
|
||||
--target-version=py37
|
||||
--target-version=py38
|
||||
--check
|
||||
--diff
|
||||
|
||||
test:
|
||||
name: Test ${{ matrix.name }} - Python ${{ matrix.python-version }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 15
|
||||
timeout-minutes: 20
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
|
||||
python-version: ["3.8", "3.9", "3.10", "3.11"]
|
||||
os: [ubuntu-20.04]
|
||||
include:
|
||||
- name: macOS
|
||||
@@ -39,8 +39,7 @@ jobs:
|
||||
python-version: "3.11"
|
||||
- name: Windows
|
||||
os: windows-latest
|
||||
# lxml is not yet available for Python 3.11, so CI is stuck on 3.10 for now
|
||||
python-version: "3.10"
|
||||
python-version: "3.11"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
@@ -64,7 +63,7 @@ jobs:
|
||||
if: steps.cache-virtualenv.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
python --version
|
||||
pip install --upgrade pip wheel
|
||||
python -m pip install --upgrade pip wheel
|
||||
pip install --upgrade -r requirements.txt
|
||||
pip install --upgrade -r tests/requirements.txt
|
||||
- name: Test SABnzbd
|
||||
|
||||
22
.github/workflows/stale.yml
vendored
Normal file
22
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: "Close stale issues"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "30 1 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
name: "Close stale issues"
|
||||
if: github.repository_owner == 'sabnzbd'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
with:
|
||||
days-before-stale: 21
|
||||
days-before-close: 7
|
||||
stale-issue-label: "Stale"
|
||||
stale-issue-message: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
exempt-issue-labels: "Feature request, Work in progress, Bug"
|
||||
4
.github/workflows/translations.yml
vendored
4
.github/workflows/translations.yml
vendored
@@ -20,9 +20,11 @@ jobs:
|
||||
python3 tools/extract_pot.py
|
||||
- name: Push/pull Transifex translations
|
||||
if: env.TX_TOKEN
|
||||
# We sleep so all files are updated when we pull them back in
|
||||
run: |
|
||||
curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash
|
||||
./tx push --source
|
||||
./tx push --translation --source
|
||||
sleep 10s
|
||||
./tx pull --all --force
|
||||
- name: Compile translations to validate them
|
||||
run: |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
(c) Copyright 2007-2022 by "The SABnzbd-team" <team@sabnzbd.org>
|
||||
(c) Copyright 2007-2023 by "The SABnzbd-team" <team@sabnzbd.org>
|
||||
|
||||
The SABnzbd-team is:
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
0) LICENSE
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
(c) Copyright 2007-2022 by "The SABnzbd-team" <team@sabnzbd.org>
|
||||
(c) Copyright 2007-2023 by "The SABnzbd-team" <team@sabnzbd.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
@@ -52,7 +52,7 @@ Specific guides to install from source are available for Windows and macOS:
|
||||
https://sabnzbd.org/wiki/installation/install-macos
|
||||
https://sabnzbd.org/wiki/installation/install-from-source-windows
|
||||
|
||||
Only Python 3.7 and above is supported.
|
||||
Only Python 3.8 and above is supported.
|
||||
|
||||
On Linux systems you need to install:
|
||||
par2 unrar unzip python3-setuptools python3-pip
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
(c) Copyright 2007-2022 by "The SABnzbd-team" <team@sabnzbd.org>
|
||||
(c) Copyright 2007-2023 by "The SABnzbd-team" <team@sabnzbd.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
|
||||
4
PKG-INFO
4
PKG-INFO
@@ -1,7 +1,7 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: SABnzbd
|
||||
Version: 3.7.1
|
||||
Summary: SABnzbd-3.7.1
|
||||
Version: 4.0.0
|
||||
Summary: SABnzbd-4.0.0
|
||||
Home-page: https://sabnzbd.org
|
||||
Author: The SABnzbd Team
|
||||
Author-email: team@sabnzbd.org
|
||||
|
||||
@@ -16,7 +16,7 @@ If you want to know more you can head over to our website: https://sabnzbd.org.
|
||||
|
||||
SABnzbd has a few dependencies you'll need before you can get running. If you've previously run SABnzbd from one of the various Linux packages, then you likely already have all the needed dependencies. If not, here's what you're looking for:
|
||||
|
||||
- `python` (Python 3.7 and above, often called `python3`)
|
||||
- `python` (Python 3.8 and above, often called `python3`)
|
||||
- Python modules listed in `requirements.txt`. Install with `python3 -m pip install -r requirements.txt -U`
|
||||
- `par2` (Multi-threaded par2 installation guide can be found [here](https://sabnzbd.org/wiki/installation/multicore-par2))
|
||||
- `unrar` (make sure you get the "official" non-free version of unrar)
|
||||
|
||||
69
README.mkd
69
README.mkd
@@ -1,50 +1,29 @@
|
||||
Release Notes - SABnzbd 3.7.1
|
||||
Release Notes - SABnzbd 4.0.0
|
||||
=========================================================
|
||||
|
||||
## Bugfixes and changes since 3.7.0
|
||||
- Minor improvements in download performance.
|
||||
- Scripts set `On queue finish` are no longer persistent by default.
|
||||
- Improved `Test Server` to handle more failure cases.
|
||||
- Priority list in `Add NZB`-window was missing `Paused` priority.
|
||||
- Keyboard shortcuts did not work if not in Tabbed-mode.
|
||||
- Keyboard shortcut `S` did not reload status information.
|
||||
- In `history` API-call the `stage_log` could be empty.
|
||||
- Using the `-` character broke the queue/history search.
|
||||
- Improved detection and handling of stuck jobs.
|
||||
## Changes since 3.7.2
|
||||
- In this major update we optimized a core part of the SSL handling.
|
||||
This results in large performance increases when downloading from news
|
||||
servers with SSL enabled. In addition, the general connection handling
|
||||
was improved, resulting in performance improvements for all news servers.
|
||||
Special thanks to: mnightingale, puzzledsab and animetosho!
|
||||
- There are multiple settings that can tweak performance, see:
|
||||
https://github.com/sabnzbd/sabnzbd/discussions/2474
|
||||
- When adding a new news server, SSL is enabled by default.
|
||||
- File assembly performance significantly improved by relying on the
|
||||
CRC32 instead of the MD5 to perform QuickCheck of files.
|
||||
- Slowdown more gracefully when the cache fills up.
|
||||
- Replaced separate Series/Movie/Date Sorting with general Sorter.
|
||||
- HTTPS files are included in the `Backup`.
|
||||
- Improved `Watched Folder` scanning and processing.
|
||||
- Ignore resource fork files created by macOS.
|
||||
- `Deobfuscate final filenames` is enabled for new installations.
|
||||
- Dropped support for Python 3.7.
|
||||
|
||||
## Changes since 3.6.1
|
||||
- The queue and history can be filtered using keywords:
|
||||
`cat` and `priority`. For example: `show name cat:tv`.
|
||||
- Use shortcut `shift + arrow-key` to navigate the queue/history pages.
|
||||
- The backup is now created in a local folder for security.
|
||||
- Recurring backups can be configured using the scheduler.
|
||||
- Improvements to Deobfuscate Final Filenames.
|
||||
- RSS overview shows the rule that accepted the job.
|
||||
- Added option to sort the queue by `% downloaded`.
|
||||
- Added option to replace underscores with dots in folder names.
|
||||
- SABnzbd Host input will be validated before being applied.
|
||||
- Moved system load information from the main page to the Status window.
|
||||
- Console logging is now written to `stdout` instead of `stderr`.
|
||||
- Removed Special settings `enable_meta`, `disable_key`,
|
||||
`replace_illegal`, `osx_speed` and `show_sysload`.
|
||||
- Merged Special settings `win_menu` and `osx_menu` into `tray_icon`.
|
||||
- macOS/Windows: Use Python 3.11, slightly boosting overall performance.
|
||||
- macOS/Windows: Updated UnRar to 6.12.
|
||||
- Windows: Updated MultiPar to 1.3.2.5.
|
||||
|
||||
# API changes since 3.6.1
|
||||
- Minor improvements in API performance.
|
||||
- Removed fields `scripts` and `categories` from `queue` API call.
|
||||
- Moved `loadavg` from `queue` to `status` API call.
|
||||
|
||||
# Bugfixes since 3.6.1
|
||||
- Free Space Detection was too strict when using Direct Unpack.
|
||||
- File uploads with special characters would be parsed incorrectly.
|
||||
- Passwords from NZB meta-data were tried multiple times.
|
||||
- Passwords were not always supplied to the pre-queue script.
|
||||
- RSS-feed names were not sanitized when renamed.
|
||||
- Make sure short-dates are detected as `YY-MM-DD` in Sorting.
|
||||
- Show the custom job name in History when the NZB could not be fetched.
|
||||
## Bugfixes since 3.7.2
|
||||
- Restore applying `History Retention` setting at startup.
|
||||
- Windows: Not all invalid characters were removed from filenames.
|
||||
- Windows: Firewall rules were not removed by uninstaller.
|
||||
|
||||
## Upgrade notices
|
||||
- The download statistics file `totals10.sab` is updated in 3.2.x
|
||||
@@ -61,4 +40,4 @@ Release Notes - SABnzbd 3.7.1
|
||||
that automatically verify, repair, extract and clean up posts downloaded
|
||||
from Usenet.
|
||||
|
||||
(c) Copyright 2007-2022 by "The SABnzbd-team" \<team@sabnzbd.org\>
|
||||
(c) Copyright 2007-2023 by "The SABnzbd-team" \<team@sabnzbd.org\>
|
||||
|
||||
59
SABnzbd.py
59
SABnzbd.py
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -17,8 +17,8 @@
|
||||
|
||||
import sys
|
||||
|
||||
if sys.hexversion < 0x03070000:
|
||||
print("Sorry, requires Python 3.7 or above")
|
||||
if sys.hexversion < 0x03080000:
|
||||
print("Sorry, requires Python 3.8 or above")
|
||||
print("You can read more at: https://sabnzbd.org/wiki/installation/install-off-modules")
|
||||
sys.exit(1)
|
||||
|
||||
@@ -40,6 +40,7 @@ import gc
|
||||
from typing import List, Dict, Any
|
||||
|
||||
try:
|
||||
import sabctools
|
||||
import Cheetah
|
||||
import feedparser
|
||||
import configobj
|
||||
@@ -76,6 +77,7 @@ from sabnzbd.constants import (
|
||||
DEF_LOG_FILE,
|
||||
DEF_STD_CONFIG,
|
||||
DEF_LOG_CHERRY,
|
||||
CONFIG_BACKUP_HTTPS,
|
||||
)
|
||||
import sabnzbd.newsunpack
|
||||
from sabnzbd.misc import (
|
||||
@@ -240,7 +242,7 @@ def print_version():
|
||||
"""
|
||||
%s-%s
|
||||
|
||||
Copyright (C) 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
Copyright (C) 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
SABnzbd comes with ABSOLUTELY NO WARRANTY.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions. It is licensed under the
|
||||
@@ -398,15 +400,13 @@ def get_user_profile_paths():
|
||||
return
|
||||
|
||||
elif sabnzbd.MACOS:
|
||||
home = os.environ.get("HOME")
|
||||
if home:
|
||||
if home := os.environ.get("HOME"):
|
||||
sabnzbd.DIR_LCLDATA = "%s/Library/Application Support/SABnzbd" % home
|
||||
sabnzbd.DIR_HOME = home
|
||||
return
|
||||
else:
|
||||
# Unix/Linux
|
||||
home = os.environ.get("HOME")
|
||||
if home:
|
||||
if home := os.environ.get("HOME"):
|
||||
sabnzbd.DIR_LCLDATA = "%s/.%s" % (home, DEF_WORKDIR)
|
||||
sabnzbd.DIR_HOME = home
|
||||
return
|
||||
@@ -418,25 +418,26 @@ def get_user_profile_paths():
|
||||
|
||||
def print_modules():
|
||||
"""Log all detected optional or external modules"""
|
||||
if sabnzbd.decoder.SABYENC_ENABLED:
|
||||
# Yes, we have SABYenc, and it's the correct version, so it's enabled
|
||||
logging.info("SABYenc module (v%s)... found!", sabnzbd.decoder.SABYENC_VERSION)
|
||||
logging.info("SABYenc module is using SIMD set: %s", sabnzbd.decoder.SABYENC_SIMD)
|
||||
if sabnzbd.decoder.SABCTOOLS_ENABLED:
|
||||
# Yes, we have SABCTools, and it's the correct version, so it's enabled
|
||||
logging.info("SABCTools module (v%s)... found!", sabnzbd.decoder.SABCTOOLS_VERSION)
|
||||
logging.info("SABCTools module is using SIMD set: %s", sabnzbd.decoder.SABCTOOLS_SIMD)
|
||||
logging.info("SABCTools module is linked to OpenSSL: %s", sabnzbd.decoder.SABCTOOLS_OPENSSL_LINKED)
|
||||
|
||||
# Check if we managed to link, warning for now
|
||||
if not sabnzbd.decoder.SABCTOOLS_OPENSSL_LINKED:
|
||||
logging.warning(
|
||||
"Could not link to OpenSSL library, please report here: "
|
||||
"https://github.com/sabnzbd/sabnzbd/issues/2421"
|
||||
)
|
||||
else:
|
||||
# Something wrong with SABYenc, so let's determine and print what:
|
||||
if sabnzbd.decoder.SABYENC_VERSION:
|
||||
# We have a VERSION, thus a SABYenc module, but it's not the correct version
|
||||
logging.error(
|
||||
T("SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"),
|
||||
sabnzbd.decoder.SABYENC_VERSION,
|
||||
sabnzbd.constants.SABYENC_VERSION_REQUIRED,
|
||||
)
|
||||
else:
|
||||
# No SABYenc module at all
|
||||
logging.error(
|
||||
T("SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"),
|
||||
sabnzbd.constants.SABYENC_VERSION_REQUIRED,
|
||||
)
|
||||
# Wrong SABCTools version, if it was fully missing it would fail to start due to check at the very top
|
||||
logging.error(
|
||||
T("SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"),
|
||||
sabnzbd.decoder.SABCTOOLS_VERSION,
|
||||
sabnzbd.constants.SABCTOOLS_VERSION_REQUIRED,
|
||||
)
|
||||
|
||||
# Do not allow downloading
|
||||
sabnzbd.NO_DOWNLOADING = True
|
||||
|
||||
@@ -1444,6 +1445,12 @@ def main():
|
||||
logging.error(T("Failed to start web-interface: "), exc_info=True)
|
||||
abort_and_show_error(browserhost, cherryport)
|
||||
|
||||
# Create a record of the active cert/key/chain files, for use with config.create_config_backup()
|
||||
if enable_https:
|
||||
for setting in CONFIG_BACKUP_HTTPS.values():
|
||||
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"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Special requirements for macOS universal2 binary release
|
||||
# This way dependabot can auto-update them
|
||||
cryptography==38.0.4
|
||||
cryptography==40.0.2
|
||||
@@ -1,22 +1,22 @@
|
||||
# Basic build requirements
|
||||
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
|
||||
pyinstaller==5.7.0
|
||||
pyinstaller-hooks-contrib==2022.14
|
||||
pyinstaller==5.10.1
|
||||
pyinstaller-hooks-contrib==2023.2
|
||||
altgraph==0.17.3
|
||||
wrapt==1.14.1
|
||||
setuptools==65.6.3
|
||||
pkginfo==1.9.2
|
||||
PyGithub==1.57
|
||||
charset-normalizer==3.0.1
|
||||
wrapt==1.15.0
|
||||
setuptools==67.7.1
|
||||
pkginfo==1.9.6
|
||||
PyGithub==1.58.1
|
||||
charset-normalizer==3.1.0
|
||||
certifi
|
||||
|
||||
# orjson does not support 32bit Windows, exclude it based on Python-version
|
||||
# This way we also test ujson on Python 3.7 and 3.8 in the CI-tests
|
||||
orjson==3.8.3; python_version > '3.8'
|
||||
# This way we also test ujson on Python 3.8 in the CI-tests
|
||||
orjson==3.8.10; python_version > '3.8'
|
||||
|
||||
# For the macOS build
|
||||
dmgbuild==1.6.0; sys_platform == 'darwin'
|
||||
mac-alias==2.2.1; sys_platform == 'darwin'
|
||||
dmgbuild==1.6.1; sys_platform == 'darwin'
|
||||
mac-alias==2.2.2; sys_platform == 'darwin'
|
||||
macholib==1.16.2; sys_platform == 'darwin'
|
||||
ds-store==1.3.1; sys_platform == 'darwin'
|
||||
PyNaCl==1.5.0; sys_platform == 'darwin'
|
||||
|
||||
@@ -174,16 +174,19 @@ Section "SABnzbd" SecDummy
|
||||
; Make sure old versions are gone (reg-key already read in onInt)
|
||||
StrCmp $PREV_INST_DIR "" noPrevInstallRemove
|
||||
${RemovePrev} "$PREV_INST_DIR"
|
||||
Goto continueSetupAfterRemove
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; Add firewall rules for new installs
|
||||
noPrevInstallRemove:
|
||||
liteFirewallW::AddRule "$INSTDIR\SABnzbd.exe" "SABnzbd"
|
||||
liteFirewallW::AddRule "$INSTDIR\SABnzbd-console.exe" "SABnzbd-console"
|
||||
|
||||
continueSetupAfterRemove:
|
||||
|
||||
; add files / whatever that need to be installed here.
|
||||
File /r "dist\SABnzbd\*"
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; Add firewall rules
|
||||
liteFirewallW::AddRule "$INSTDIR\SABnzbd.exe" "SABnzbd"
|
||||
liteFirewallW::AddRule "$INSTDIR\SABnzbd-console.exe" "SABnzbd-console"
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; Add to registry
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\SABnzbd" "" "$INSTDIR"
|
||||
@@ -333,7 +336,6 @@ Section "un.$(MsgDelProgram)" Uninstall
|
||||
${nsProcess::Unload}
|
||||
DetailPrint "Process Killed"
|
||||
|
||||
|
||||
; add delete commands to delete whatever files/registry keys/etc you installed here.
|
||||
Delete "$INSTDIR\uninstall.exe"
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\SABnzbd"
|
||||
@@ -341,6 +343,10 @@ Section "un.$(MsgDelProgram)" Uninstall
|
||||
|
||||
${RemovePrev} "$INSTDIR"
|
||||
|
||||
; Remove firewall entries
|
||||
liteFirewallW::RemoveRule "$INSTDIR\SABnzbd.exe" "SABnzbd"
|
||||
liteFirewallW::RemoveRule "$INSTDIR\SABnzbd-console.exe" "SABnzbd-console"
|
||||
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd.lnk"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<!--#if not $windows#-->
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" id="show_hidden_folders"> <span>$T('systemFolders')</span>
|
||||
<input type="checkbox" id="show_hidden_folders"> <span>$T('hiddenFolders')</span>
|
||||
</label>
|
||||
</div>
|
||||
<!--#end if#-->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="Config"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/configure"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/configure"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<!--#from sabnzbd.encoding import CODEPAGE#-->
|
||||
@@ -54,12 +54,12 @@
|
||||
</td>
|
||||
</tr>
|
||||
<!--#end if#-->
|
||||
<!--#if not $have_sabyenc#-->
|
||||
<!--#if not $have_sabctools#-->
|
||||
<tr>
|
||||
<th scope="row">SABYenc:</th>
|
||||
<th scope="row">SABCTools:</th>
|
||||
<td>
|
||||
<span class="label label-danger">$T('notAvailable')</span>
|
||||
<a href="$helpuri$help_uri#no_sabyenc" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a>
|
||||
<a href="$helpuri$help_uri#no_sabctools" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a>
|
||||
</td>
|
||||
</tr>
|
||||
<!--#end if#-->
|
||||
@@ -124,7 +124,7 @@
|
||||
|
||||
<div class="colmask">
|
||||
<div class="padding alt">
|
||||
<h5 class="copyright">Copyright © 2007-2022 The SABnzbd Team <<a href="mailto:team@sabnzbd.org">team@sabnzbd.org</a>></h5>
|
||||
<h5 class="copyright">Copyright © 2007-2023 The SABnzbd Team <<a href="mailto:team@sabnzbd.org">team@sabnzbd.org</a>></h5>
|
||||
<p class="copyright"><small>$T('yourRights')</small></p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
<!--#set global $pane="Categories"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/categories"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/categories"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
<div class="colmask">
|
||||
<div class="section">
|
||||
<div class="padTable"> <a class="main-helplink" href="$helpuri$help_uri" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a>
|
||||
<div class="padTable">
|
||||
<a class="main-helplink" href="$helpuri$help_uri" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a>
|
||||
<p>$T('explain-catTags2')<br/>$T('explain-catTags')</p>
|
||||
<hr>
|
||||
<h5 class="darkred"><strong>$T('explain-relFolder'):</strong> <span class="path">$defdir</span></h5>
|
||||
<!--#for $cur, $slot in enumerate($slotinfo)#-->
|
||||
<!--#set $cansort = $slot.name != '*' and $slot.name != ''#-->
|
||||
<form action="save" method="get" <!--#if $cansort#-->class="sorting-row"<!--#end if#-->>
|
||||
<form action="save" method="post" <!--#if $cansort#-->class="sorting-row"<!--#end if#-->>
|
||||
<table class="catTable">
|
||||
<!--#if $cur == 0#-->
|
||||
<tr>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="Folders"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/folders"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/folders"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<div class="colmask">
|
||||
@@ -35,7 +35,8 @@
|
||||
<div class="field-pair">
|
||||
<label class="config" for="complete_dir">$T('opt-complete_dir')</label>
|
||||
<input type="text" name="complete_dir" id="complete_dir" value="$complete_dir" data-initialdir="$my_home" />
|
||||
<span class="desc">$T('explain-complete_dir')</span>
|
||||
<a class="btn btn-default" href="${root}config/sorting/"><span class="glyphicon glyphicon-sort-by-alphabet"></span> $T('cmenu-sorting')</a>
|
||||
<span class="desc">$T('explain-complete_dir') <br/> $T('explain-complete_dir-sorting')</span>
|
||||
</div>
|
||||
<div class="field-pair advanced-settings">
|
||||
<label class="config" for="complete_free">$T('opt-complete_free')</label>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="General"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/general"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/general"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<div class="colmask">
|
||||
@@ -375,7 +375,7 @@
|
||||
})
|
||||
|
||||
// Only allow re-generate if default certs
|
||||
if(\$('#https_cert').val() != 'server.cert') {
|
||||
if(\$('#https_cert').val() != '$def_https_cert_file') {
|
||||
\$('.generate_cert').attr('disabled', 'disabled')
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="Email"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/notifications"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/notifications"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<!--#def show_notify_checkboxes($section_label)#-->
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="col2-cats" <!--#if int($getVar($section_label + '_enable')) > 0 then '' else 'style="display:none"'#-->>
|
||||
<hr>
|
||||
<b>$T('affectedCat')</b><br/>
|
||||
<select name="${section_label}_cats" multiple="multiple" class="multiple_cats">
|
||||
<select name="${section_label}_cats" multiple="multiple" class="multiple_cats" size="$len($categories)">
|
||||
<!--#for $ct in $categories#-->
|
||||
<option value="$ct" <!--#if $ct in $getVar($section_label + '_cats') then 'selected="selected"' else ""#-->>$Tspec($ct)</option>
|
||||
<!--#end for#-->
|
||||
@@ -36,7 +36,7 @@
|
||||
<h3>$T('cmenu-email') <a href="$helpuri$help_uri#toc0" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a></h3>
|
||||
<div class="col2-cats" <!--#if int($email_endjob) > 0 then '' else 'style="display:none"'#-->>
|
||||
<b>$T('affectedCat')</b><br/>
|
||||
<select name="email_cats" multiple="multiple" class="multiple_cats">
|
||||
<select name="email_cats" multiple="multiple" class="multiple_cats" size="$len($categories)">
|
||||
<!--#for $ct in $categories#-->
|
||||
<option value="$ct" <!--#if $ct in $email_cats then 'selected="selected"' else ""#-->>$Tspec($ct)</option>
|
||||
<!--#end for#-->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="RSS"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/rss"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/rss"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
<!--#import html#-->
|
||||
<div class="colmask">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="Scheduling"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/scheduling"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/scheduling"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<%
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<!--#set global $pane="Servers"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/servers"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/servers"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<!--#import json#-->
|
||||
<!--#import datetime#-->
|
||||
|
||||
<script type="text/javascript" xmlns="http://www.w3.org/1999/html">
|
||||
<script type="text/javascript">
|
||||
// Define variable needed for the server-statistics
|
||||
var serverBandwithData = {}
|
||||
var serverArticleTries = {}
|
||||
@@ -51,21 +51,21 @@
|
||||
</div>
|
||||
<div class="field-pair advanced-settings">
|
||||
<label class="config" for="port">$T('srv-port')</label>
|
||||
<input type="number" name="port" id="port" size="8" value="119" min="0" />
|
||||
<input type="number" name="port" id="port" size="8" value="563" min="0" />
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="ssl">$T('srv-ssl')</label>
|
||||
<input type="checkbox" name="ssl" id="ssl" value="1" />
|
||||
<input type="checkbox" name="ssl" id="ssl" value="1" checked />
|
||||
<span class="desc">$T('explain-ssl')</span>
|
||||
</div>
|
||||
<!-- Tricks to avoid browser auto-fill, fixed on-submit with javascript -->
|
||||
<div class="field-pair">
|
||||
<label class="config" for="${pid}_00">$T('srv-username')</label>
|
||||
<input type="text" name="${pid}_00" id="${pid}_00" data-hide="username" />
|
||||
<label class="config" for="${pid}_000">$T('srv-username')</label>
|
||||
<input type="text" name="${pid}_000" id="${pid}_000" data-hide="username" />
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="${pid}_01">$T('srv-password')</label>
|
||||
<input type="text" name="${pid}_01" id="${pid}_01" data-hide="password" />
|
||||
<label class="config" for="${pid}_001">$T('srv-password')</label>
|
||||
<input type="text" name="${pid}_001" id="${pid}_001" data-hide="password" />
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="connections">$T('srv-connections')</label>
|
||||
@@ -147,7 +147,7 @@
|
||||
<input type="hidden" name="apikey" value="$apikey" />
|
||||
<input type="hidden" name="output" value="json" />
|
||||
<input type="hidden" name="server" value="$server['name']" />
|
||||
<input type="hidden" id="ajax" name="ajax" value=1 />
|
||||
<input type="hidden" name="ajax" value=1 />
|
||||
|
||||
<div class="section <!--#if int($server['enable']) == 0 then 'server-disabled' else ""#-->">
|
||||
<div class="col2 <!--#if int($server['enable']) == 0 then 'server-disabled' else ""#-->">
|
||||
@@ -225,8 +225,8 @@
|
||||
<span class="desc">$T('explain-ssl_verify').replace('. ', '.<br/>')</span>
|
||||
</div>
|
||||
<div class="field-pair advanced-settings">
|
||||
<label class="config" for="ssl_ciphers">$T('opt-ssl_ciphers')</label>
|
||||
<input type="text" name="ssl_ciphers" id="ssl_ciphers" value="$server['ssl_ciphers']" />
|
||||
<label class="config" for="ssl_ciphers$cur">$T('opt-ssl_ciphers')</label>
|
||||
<input type="text" name="ssl_ciphers" id="ssl_ciphers$cur" value="$server['ssl_ciphers']" />
|
||||
<span class="desc">$T('explain-ssl_ciphers') <br>$T('readwiki')
|
||||
<a href="${helpuri}advanced/ssl-ciphers" target="_blank">${helpuri}advanced/ssl-ciphers</a></span>
|
||||
</div>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="Special"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/special"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/special"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<div class="colmask">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--#set global $pane="Switches"#-->
|
||||
<!--#set global $help_uri="configuration/3.7/switches"#-->
|
||||
<!--#set global $help_uri="configuration/4.0/switches"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<div class="colmask">
|
||||
|
||||
@@ -96,8 +96,13 @@ body {
|
||||
.example {
|
||||
background-color: #fefeee;
|
||||
}
|
||||
.presets strong {
|
||||
display: inline-block;
|
||||
width: 75px;
|
||||
}
|
||||
.presets {
|
||||
margin-bottom: -6px;
|
||||
max-width: 60%;
|
||||
}
|
||||
.presets input {
|
||||
margin: 2px 0;
|
||||
@@ -326,6 +331,53 @@ tr.separator {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.Sorting .explain-sorting {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
.Sorting .explain-pattern {
|
||||
border: none;
|
||||
width: 100%;
|
||||
}
|
||||
.Sorting .pattern-table {
|
||||
border:1px solid #ccc;
|
||||
}
|
||||
.Sorting .sorter-switch {
|
||||
margin-right: 0.2em;
|
||||
}
|
||||
.Sorting .sorter-switch-container {
|
||||
margin: 10px 0px;
|
||||
height: 1.5em;
|
||||
display: block;
|
||||
}
|
||||
.Sorting .sorter-placeholder {
|
||||
position: relative;
|
||||
}
|
||||
.Sorting .sorter-placeholder:after {
|
||||
content: "\e034";
|
||||
font-family: "Glyphicons Halflings";
|
||||
background: unset;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 30px;
|
||||
border-radius: 15px;
|
||||
border: 1px dashed #444;
|
||||
}
|
||||
.Sorting .glyphicon-option-vertical {
|
||||
margin-top: 1.5em;
|
||||
margin-right: 0.2em;
|
||||
cursor: move;
|
||||
}
|
||||
.Sorting form:not(.sorting-row) .glyphicon-option-vertical {
|
||||
visibility: hidden;
|
||||
}
|
||||
.Sorting .sorting-quick-setup {
|
||||
padding: 1.5em 2em 3em
|
||||
}
|
||||
|
||||
.RSS .rss-section input[type="text"] {
|
||||
max-width: 180px;
|
||||
}
|
||||
@@ -421,6 +473,9 @@ tr.separator {
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
.valign-top {
|
||||
vertical-align: top;
|
||||
}
|
||||
.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -784,6 +839,7 @@ select {
|
||||
vertical-align:middle;
|
||||
max-width: 100%;
|
||||
min-height: 34px;
|
||||
min-width: 55px;
|
||||
font-size: 13px;
|
||||
background-color: white;
|
||||
}
|
||||
@@ -1248,6 +1304,12 @@ html[dir="rtl"] .Scheduling form[action="addSchedule"] input[type="checkbox"] {
|
||||
padding: 0px 15px 10px;
|
||||
width: inherit;
|
||||
}
|
||||
.Sorting .glyphicon-option-vertical {
|
||||
display: none;
|
||||
}
|
||||
.Sorting .sorter h3 {
|
||||
cursor: move;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
|
||||
@@ -203,7 +203,12 @@ $.fn.extractFormDataTo = function(target) {
|
||||
var selects = $("select", this);
|
||||
|
||||
selects.each(function (i,elem) {
|
||||
target[elem.name] = elem.value;
|
||||
if (elem.selectedOptions.length > 1) {
|
||||
// Handle <select multiple="multiple">
|
||||
target[elem.name] = Array.from(elem.selectedOptions).map(({ value }) => value).toString();
|
||||
} else {
|
||||
target[elem.name] = elem.value;
|
||||
}
|
||||
});
|
||||
|
||||
return this;
|
||||
|
||||
@@ -123,11 +123,9 @@
|
||||
<span data-bind="text: statusInfo.loadavg"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" data-bind="visible: statusInfo.delayed_decoder() > 5 || statusInfo.delayed_assembler() > 5">
|
||||
<div class="row" data-bind="visible: statusInfo.delayed_assembler() > 5">
|
||||
<div class="col-sm-6">$T('dashboard-delayed') </div>
|
||||
<div class="col-sm-6">
|
||||
<span data-bind="visible: statusInfo.delayed_decoder() > 5">$T('dashboard-delayed-cpu')</span>
|
||||
<small data-bind="visible: statusInfo.delayed_decoder() > 5">(<span data-bind="text: statusInfo.delayed_decoder"></span>x)</small>
|
||||
<span data-bind="visible: statusInfo.delayed_assembler() > 5">$T('dashboard-delayed-disk')</span>
|
||||
<small data-bind="visible: statusInfo.delayed_assembler() > 5">(<span data-bind="text: statusInfo.delayed_assembler"></span>x)</small>
|
||||
</div>
|
||||
@@ -456,6 +454,8 @@
|
||||
<div class="form-group form-checkbox">
|
||||
<label class="col-sm-6 control-label">
|
||||
$T("Glitter-keyboardShortcuts")
|
||||
<span class="glyphicon glyphicon-question-sign" data-tooltip="true" data-placement="top" data-html="true"
|
||||
data-original-title="P: $T('link-pause')<br>A: $T('Glitter-addNZB')<br>S: $T('Glitter-statusInterfaceOptions')<br>C: $T('menu-config')<br>$T('Glitter-keyboardShortcuts-arrows')"></span>
|
||||
</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="checkbox" name="keyboardShortcuts" value="true" data-bind="checked: keyboardShortcuts" />
|
||||
|
||||
@@ -62,7 +62,6 @@ function ViewModel() {
|
||||
self.statusInfo.publicipv4 = ko.observable();
|
||||
self.statusInfo.ipv6 = ko.observable();
|
||||
self.statusInfo.dnslookup = ko.observable();
|
||||
self.statusInfo.delayed_decoder = ko.observable();
|
||||
self.statusInfo.delayed_assembler = ko.observable();
|
||||
self.statusInfo.loadavg = ko.observable();
|
||||
self.statusInfo.pystone = ko.observable();
|
||||
@@ -671,6 +670,11 @@ function ViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
// default to url input when modal is shown
|
||||
$('#modal-add-nzb').on('shown.bs.modal', function() {
|
||||
$('input[name="nzbURL"]').focus();
|
||||
})
|
||||
|
||||
// From the upload or filedrop
|
||||
self.addNZBFromFile = function(files, fileindex) {
|
||||
// First file
|
||||
@@ -754,7 +758,6 @@ function ViewModel() {
|
||||
// Update basic
|
||||
self.statusInfo.folders(data.status.folders)
|
||||
self.statusInfo.loadavg(data.status.loadavg)
|
||||
self.statusInfo.delayed_decoder(data.status.delayed_decoder)
|
||||
self.statusInfo.delayed_assembler(data.status.delayed_assembler)
|
||||
|
||||
// Update the full set if the data is available
|
||||
@@ -1334,6 +1337,12 @@ function ViewModel() {
|
||||
// And refresh now!
|
||||
self.refresh()
|
||||
|
||||
// Activate tooltips
|
||||
if (!isMobile) $('[data-tooltip="true"]').tooltip({ trigger: 'hover', container: 'body' })
|
||||
// Special options for (non) mobile
|
||||
if (isMobile) {
|
||||
// Disable accept parameter on file inputs, as it doesn't work on mobile Safari
|
||||
$("input[accept!=''][accept]").attr("accept","")
|
||||
} else {
|
||||
// Activate tooltips
|
||||
$('[data-tooltip="true"]').tooltip({ trigger: 'hover', container: 'body' })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -343,54 +343,61 @@ function QueueListModel(parent) {
|
||||
var newStatus = $('.multioperations-selector input[name="multiedit-status"]:checked').val()
|
||||
|
||||
// List all the ID's
|
||||
var strIDs = '';
|
||||
var strIDs = '';
|
||||
$.each(self.multiEditItems(), function(index) {
|
||||
strIDs = strIDs + this.id + ',';
|
||||
})
|
||||
|
||||
// All non-category updates need to only happen after a category update
|
||||
function nonCatUpdates() {
|
||||
if(newScript != '') {
|
||||
callAPI({
|
||||
mode: 'change_script',
|
||||
value: strIDs,
|
||||
value2: newScript
|
||||
})
|
||||
}
|
||||
if(newPrior != '') {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'priority',
|
||||
value: strIDs,
|
||||
value2: newPrior
|
||||
})
|
||||
}
|
||||
if(newProc != '') {
|
||||
callAPI({
|
||||
mode: 'change_opts',
|
||||
value: strIDs,
|
||||
value2: newProc
|
||||
})
|
||||
}
|
||||
if(newStatus) {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: newStatus,
|
||||
value: strIDs
|
||||
})
|
||||
}
|
||||
|
||||
// Wat a little and do the refresh
|
||||
// Only if anything changed!
|
||||
if(newStatus || newProc != '' || newPrior != '' || newScript != '' || newCat != '') {
|
||||
setTimeout(parent.refresh, 100)
|
||||
}
|
||||
}
|
||||
|
||||
// What is changed?
|
||||
if(newCat != '') {
|
||||
callAPI({
|
||||
mode: 'change_cat',
|
||||
value: strIDs,
|
||||
value2: newCat
|
||||
})
|
||||
}
|
||||
if(newScript != '') {
|
||||
callAPI({
|
||||
mode: 'change_script',
|
||||
value: strIDs,
|
||||
value2: newScript
|
||||
})
|
||||
}
|
||||
if(newPrior != '') {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'priority',
|
||||
value: strIDs,
|
||||
value2: newPrior
|
||||
})
|
||||
}
|
||||
if(newProc != '') {
|
||||
callAPI({
|
||||
mode: 'change_opts',
|
||||
value: strIDs,
|
||||
value2: newProc
|
||||
})
|
||||
}
|
||||
if(newStatus) {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: newStatus,
|
||||
value: strIDs
|
||||
})
|
||||
}).then(nonCatUpdates)
|
||||
} else {
|
||||
nonCatUpdates()
|
||||
}
|
||||
|
||||
// Wat a little and do the refresh
|
||||
// Only if anything changed!
|
||||
if(newStatus || newProc != '' || newPrior != '' || newScript != '' || newCat != '') {
|
||||
setTimeout(parent.refresh, 100)
|
||||
}
|
||||
}
|
||||
|
||||
// Selete all selected
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
<div class="form-group">
|
||||
<label for="port" class="col-sm-4 control-label">$T('srv-port')</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="number" class="form-control" name="port" id="port" value="<!--#if $port then $port else '119' #-->" />
|
||||
<input type="number" class="form-control" name="port" id="port" value="<!--#if $port then $port else '563' #-->" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2022 The SABnzbd-Team <team@sabnzbd.org> -->
|
||||
<!-- Copyright 2022-2023 The SABnzbd-Team <team@sabnzbd.org> -->
|
||||
<component type="desktop-application">
|
||||
<id>org.sabnzbd.sabnzbd</id>
|
||||
<metadata_license>MIT</metadata_license>
|
||||
@@ -23,16 +23,26 @@
|
||||
</categories>
|
||||
<url type="homepage">https://sabnzbd.org</url>
|
||||
<url type="bugtracker">https://github.com/sabnzbd/sabnzbd/issues</url>
|
||||
<url type="vcs-browser">https://github.com/sabnzbd/sabnzbd</url>
|
||||
<url type="translate">https://sabnzbd.org/wiki/translate</url>
|
||||
<url type="donation">https://sabnzbd.org/donate</url>
|
||||
<url type="help">https://sabnzbd.org/wiki/</url>
|
||||
<url type="faq">https://sabnzbd.org/wiki/faq</url>
|
||||
<url type="contact">https://forums.sabnzbd.org</url>
|
||||
<url type="contact">https://sabnzbd.org/live-chat.html</url>
|
||||
<launchable type="desktop-id">sabnzbd.desktop</launchable>
|
||||
<provides>
|
||||
<mediatype>application/x-nzb</mediatype>
|
||||
<mediatype>application/x-compressed-nzb</mediatype>
|
||||
</provides>
|
||||
<supports>
|
||||
<control>pointing</control>
|
||||
<control>keyboard</control>
|
||||
<control>touch</control>
|
||||
</supports>
|
||||
<recommends>
|
||||
<display_length compare="ge">small</display_length>
|
||||
<internet>always</internet>
|
||||
</recommends>
|
||||
<project_license>GPL-2.0-or-later</project_license>
|
||||
<developer_name>The SABnzbd-team</developer_name>
|
||||
<screenshots>
|
||||
|
||||
Binary file not shown.
BIN
osx/unrar/unrar
BIN
osx/unrar/unrar
Binary file not shown.
@@ -1,11 +1,11 @@
|
||||
#
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: team@sabnzbd.org\n"
|
||||
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Language-Team: Czech (https://www.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Danish (https://www.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: German (https://www.transifex.com/sabnzbd/teams/111101/de/)\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"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Finnish (https://www.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: French (https://www.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: ION, 2020\n"
|
||||
"Language-Team: Hebrew (https://www.transifex.com/sabnzbd/teams/111101/he/)\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"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\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://www.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Polish (https://www.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Romanian (https://www.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Russian (https://www.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Serbian (https://www.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Swedish (https://www.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file EMAIL
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Chinese (China) (https://www.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: team@sabnzbd.org\n"
|
||||
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
|
||||
@@ -35,12 +35,7 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgid "SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -139,11 +134,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -393,7 +383,6 @@ msgstr ""
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr ""
|
||||
@@ -417,19 +406,16 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgid "Login from too many different IP addresses to server %s [%s] - https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -602,7 +588,7 @@ msgstr ""
|
||||
msgid "API Key incorrect, Use the api key from Config->General in your 3rd party program:"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
|
||||
@@ -730,6 +716,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr ""
|
||||
@@ -1748,32 +1746,32 @@ msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2053,10 +2051,6 @@ msgstr ""
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr ""
|
||||
@@ -2341,10 +2335,6 @@ msgstr ""
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2759,6 +2749,10 @@ msgstr ""
|
||||
msgid "Location to store finished, fully processed downloads.<br /><i>Can be overruled by user-defined categories.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -2828,6 +2822,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr ""
|
||||
@@ -3455,6 +3453,10 @@ msgstr ""
|
||||
msgid "Force Download"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -3809,20 +3811,6 @@ msgstr ""
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr ""
|
||||
@@ -3831,23 +3819,10 @@ msgstr ""
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr ""
|
||||
@@ -3864,26 +3839,6 @@ msgstr ""
|
||||
msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
@@ -3932,10 +3887,6 @@ msgstr ""
|
||||
msgid "Episode_Name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr ""
|
||||
@@ -3977,7 +3928,15 @@ msgid "Sort String"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3988,25 +3947,12 @@ msgstr ""
|
||||
msgid "No folders"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
@@ -4038,6 +3984,58 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "<p>Use Sorters to automatically organize your completed downloads. For example, put all episodes from a series in a season-specific folder. Or, put movies in a folder named after the movie.</p><p>Sorters are tried in order of appearance and can be reordered by dragging and dropping.<br/>The first active sorter that matches both the affected category and job type is applied.</p><p>More options are available when Advanced Settings is checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move and rename all episodes in the \"tv\" category to a show-specific folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move and rename all movies in the \"movies\" category to a movie-specific folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Rarely used options. For their meaning and explanation, click on the Help button to go to the Wiki page.<br>Don't change these without checking the Wiki first, as some have serious side-effects.<br>The default values are between parentheses."
|
||||
msgstr ""
|
||||
@@ -4265,6 +4263,10 @@ msgstr ""
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr ""
|
||||
@@ -4429,7 +4431,7 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
|
||||
241
po/main/cs.po
241
po/main/cs.po
@@ -1,17 +1,17 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Pavel C <quoing_transifex@mess.cz>, 2021
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Czech (https://www.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -38,18 +38,12 @@ msgstr "Nezdařilo se spustit webové rozhraní"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Šablona pro web nebyla nalezena: %s, zkouším standardní šablonu"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc vypnut: Nenalezena správná verze! (Nalezena v%s, očekávána v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"Modul SABYenc... nebyl nalezen! Očekávána v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools vypnut: Nenalezena správná verze! (Nalezena v%s, očekávána v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -157,11 +151,6 @@ msgstr "Restartuji protože postprocessor selhal"
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr "Restartuji protože selhal downloader"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr "Restartuji protože selhal decoder"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -428,7 +417,6 @@ msgstr ""
|
||||
"Musíte nastavit maximální rychlost linky předtím než začnete nastavovat "
|
||||
"limity pro přenos"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Nelze se připojit k serveru %s [%s]"
|
||||
@@ -452,20 +440,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Příliš mnoho spojení k serveru %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Příliš mnoho spojení k serveru %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Pravděpodobné sdílení účtu"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Přihlášení k serveru %s se nezdařilo"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Přihlášení k serveru %s se nezdařilo [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -647,7 +634,7 @@ msgstr ""
|
||||
"Nesprávný API klíč, použijte api klíč z Nastavení->Obecné ve vašem programu "
|
||||
"třetí strany:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Přihlášené selhalo, zkontrolujte jméno a heslo."
|
||||
|
||||
@@ -783,6 +770,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Python skript \"%s\" nemá nastaveno právo spuštění (+x)"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Běžící skript"
|
||||
@@ -1821,32 +1820,32 @@ msgstr "Odstranit dokončené úkoly"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pozastavit úkoly s nízkou prioritou"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pozastavit úkoly s normální prioritou"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pozastavit úkoly s vysokou prioritou"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Obnovit úkoly s vysokou prioritou"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2126,10 +2125,6 @@ msgstr "Speciální"
|
||||
msgid "Search"
|
||||
msgstr "Vyhledávání"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr ""
|
||||
@@ -2416,10 +2411,6 @@ msgstr "DNS server / DNS dotazy"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2881,6 +2872,11 @@ msgid ""
|
||||
"overruled by user-defined categories.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -2957,6 +2953,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr ""
|
||||
@@ -3633,6 +3633,10 @@ msgstr ""
|
||||
msgid "Force Download"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -3995,20 +3999,6 @@ msgstr ""
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr ""
|
||||
@@ -4017,23 +4007,10 @@ msgstr ""
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr ""
|
||||
@@ -4050,26 +4027,6 @@ msgstr ""
|
||||
msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
@@ -4118,10 +4075,6 @@ msgstr ""
|
||||
msgid "Episode_Name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr ""
|
||||
@@ -4163,7 +4116,15 @@ msgid "Sort String"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4174,25 +4135,12 @@ msgstr ""
|
||||
msgid "No folders"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
@@ -4224,6 +4172,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4457,6 +4468,10 @@ msgstr ""
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr ""
|
||||
@@ -4625,8 +4640,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Nezdařilo se přejmenovat: %s na %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
249
po/main/da.po
249
po/main/da.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Danish (https://www.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -37,19 +37,13 @@ msgstr "Kunne ikke starte web-interface"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Kan ikke finde webskabeloner: %s, forsøger med standardskabelon"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc deaktiveret: Der blev ikke fundet nogen korrekt version (Fandt v%s, "
|
||||
"forventede v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc modul... IKKE fundet! Forventede v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools deaktiveret: Der blev ikke fundet nogen korrekt version (Fandt "
|
||||
"v%s, forventede v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -157,11 +151,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -426,7 +415,6 @@ msgstr ""
|
||||
"Du skal angive den maksimale båndbredde, før du kan angive en båndbredde "
|
||||
"begrænsning"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Kan ikke tilslutte til server %s [%s]"
|
||||
@@ -450,20 +438,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Det lykkedes ikke at initialisere %s@%s med begrundelse %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Alt for mange forbindelser til serveren %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Alt for mange forbindelser til serveren %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Sandsynligt delt konto"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Det lykkedes ikke at logge på serveren %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Det lykkedes ikke at logge på serveren %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -655,7 +642,7 @@ msgstr ""
|
||||
"Forkert API-nøgle, anvend api-nøglen fra Konfiguration->Generelt i dit "
|
||||
"tredjepartsprogram:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Godkendelse mislykkedes, kontrollere brugernavn/adgangskode."
|
||||
|
||||
@@ -788,6 +775,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Python script \"%s\" har ikke udfør (+x) tilladelsessæt"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Serie sortering"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Dato sortering"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Film sortering"
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Køre script"
|
||||
@@ -1852,32 +1851,32 @@ msgstr "Fjern fuldførte job"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pause lav prioritets jobs"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pause normal prioritets jobs"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pause høj prioritets jobs"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Genoptag lav prioritets jobs"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Genoptag normal prioritets jobs"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Genoptag høj prioritets jobs"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2157,10 +2156,6 @@ msgstr "Speciel"
|
||||
msgid "Search"
|
||||
msgstr "Søg"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Download mappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Er du sikker på du vil lukke SABnzbd?"
|
||||
@@ -2447,10 +2442,6 @@ msgstr "Nameserver/DNS Lookup"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2938,6 +2929,11 @@ msgstr ""
|
||||
"Sted at opbevare færdige, fuldt forarbejdede downloads.<br /><i>Kan "
|
||||
"tilsidesættes af bruger-definerede kategorier.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3020,6 +3016,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systemmapper"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativ mappe"
|
||||
@@ -3728,6 +3728,10 @@ msgstr "Læs Feed"
|
||||
msgid "Force Download"
|
||||
msgstr "Gennemtving download"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Anvend filtre"
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4096,20 +4100,6 @@ msgstr "Mappe/Søgesti"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "Indekseringen kategorier/grupper"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Serie sortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Aktivere TV sortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Hjælp til Sorteringsstræng"
|
||||
@@ -4118,23 +4108,10 @@ msgstr "Hjælp til Sorteringsstræng"
|
||||
msgid "Clear"
|
||||
msgstr "Ryd"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Anvend filtre"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Forudindstillinger"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Film sortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Aktivere filmsortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Påvirkede Kategorier"
|
||||
@@ -4151,26 +4128,6 @@ msgstr "Mønster"
|
||||
msgid "Result"
|
||||
msgstr "Resultat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Sæsonmappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Sæsonmappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Episodemappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Episodemappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Job Navn som Filnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
@@ -4219,10 +4176,6 @@ msgstr "Episode.Navn"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Episode_Navn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Filtype"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Endelse"
|
||||
@@ -4264,8 +4217,16 @@ msgid "Sort String"
|
||||
msgstr "Sorteringsstreng"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Multi-del etikette"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4275,26 +4236,13 @@ msgstr "I mappe"
|
||||
msgid "No folders"
|
||||
msgstr "Ingen mappe"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Dato sortering"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Job Navn som Filnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Aktivere datosortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Vis Navn på mappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "År-Måned mapper"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Daglige mapper"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4325,6 +4273,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4564,6 +4575,10 @@ msgstr "Bekræft Historik-fjernelse"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Hvor længe eller indtil hvornår du vil standse? (på engelsk!)"
|
||||
@@ -4738,8 +4753,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Det lykkedes ikke at omdøbe: %s til %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
266
po/main/de.po
266
po/main/de.po
@@ -1,7 +1,7 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# C E <githubce@eiselt.ch>, 2020
|
||||
# Nikolai Bohl <n.kay01@gmail.com>, 2020
|
||||
@@ -10,15 +10,16 @@
|
||||
# Andreas Kames, 2021
|
||||
# Simon W., 2021
|
||||
# Nils Briggen, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# reloxx13 <reloxx@interia.pl>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
# kameb, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: reloxx13 <reloxx@interia.pl>, 2022\n"
|
||||
"Language-Team: German (https://www.transifex.com/sabnzbd/teams/111101/de/)\n"
|
||||
"Last-Translator: kameb, 2023\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"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -47,19 +48,13 @@ msgstr ""
|
||||
"Konnte Web-Vorlage nicht finden: %s Versuche die Standard-Vorlage zu "
|
||||
"verwenden."
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc deaktiviert: Keine korrekte Version gefunden! (Gefunden v%s, "
|
||||
"Erwartet v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc Modul... Nicht gefunden! Erwarte v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools deaktiviert: Keine korrekte Version gefunden! (Gefunden v%s, "
|
||||
"Erwartet v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -172,11 +167,6 @@ msgstr "Neustart aufgrund eines abgestürzten Nachbearbeitungsprozesses"
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr "Neustart aufgrund eines abgestürzten Downloaders"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr "Neustart aufgrund eines abgestürzten Decoders"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -455,7 +445,6 @@ msgstr ""
|
||||
"Bevor ein Bandbreitenlimit gesetzt werden kann, muss die maximale Bandbreite"
|
||||
" festgelegt werden"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Verbindung zum Server %s kann nicht hergestellt werden. %s"
|
||||
@@ -479,20 +468,21 @@ msgstr "Es gibt keine aktiven Server!"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Fehler %s@%s zu initialisieren, aus folgendem Grund: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Zu viele Verbindungen zu Server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Zu viele Verbindungen zu Server %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Möglicherweise wird das Konto geteilt"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
"Von zu vielen unteschiedlichen IP Adressen beim Server eingeloggt %s[%s] "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Anmelden beim Server fehlgeschlagen. %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Anmelden beim Server fehlgeschlagen. %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -688,7 +678,7 @@ msgstr ""
|
||||
"API-Schlüssel ungültig. Bitte API-Schlüssel aus Einstellungen->Allgemein in "
|
||||
"die externe Anwendung eingeben:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
"Authentifizierung fehlgeschlagen. Überprüfen Sie Benutzername und Passwort."
|
||||
@@ -830,6 +820,18 @@ msgstr "[%s] Der Befehl in build_command ist nicht definiert."
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Dem Pythonskript \"%s\" fehlen die Ausführungsrechte (+x)"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sortieren von TV-Serien"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Sortieren nach Datum"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Film Sortierung"
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Ausführen des Skripts"
|
||||
@@ -1916,32 +1918,32 @@ msgstr "Abgeschlossene Aufträge entfernen"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Aufträge mit niedriger Priorität pausieren"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Aufträge mit normaler Priorität pausieren"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Aufträge mit hoher Priorität pausieren"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Aufträge mit niedriger Priorität fortsetzen"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Aufträge mit normaler Priorität fortsetzen"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Aufträge mit hoher Priorität fortsetzen"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2221,10 +2223,6 @@ msgstr "Spezial"
|
||||
msgid "Search"
|
||||
msgstr "Suchen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Downloads"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Möchten Sie SABnzbd wirklich beenden?"
|
||||
@@ -2514,10 +2512,6 @@ msgstr "DNS-Server"
|
||||
msgid "Download speed limited by"
|
||||
msgstr "Downloadgeschwindigkeit begrenzt durch"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr "Festplattengeschwindigkeit"
|
||||
@@ -3038,6 +3032,11 @@ msgstr ""
|
||||
"Hier werden fertige, verarbeitete Downloads abgelegt.<br /><i>Kann von "
|
||||
"benutzerdefinierten Kategorien ausser Kraft gesetzt werden.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr "Benutze Sortieren um deine Dateien zu orgenisieren und umzubennenen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr "Minimaler freier Speicherplatz des abgeschlossene Downloads-Ordners"
|
||||
@@ -3126,6 +3125,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "System-Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr "Versteckte Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativer Ordner"
|
||||
@@ -3878,6 +3881,10 @@ msgstr "Feed lesen"
|
||||
msgid "Force Download"
|
||||
msgstr "Download erzwingen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Filter übernehmen"
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4253,20 +4260,6 @@ msgstr "Ordner/Pfad"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "Indexer Kategorien/Gruppen"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr "Wähle mindestens 1 Kategorie"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sortieren von TV-Serien"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "TV-Sortierung aktivieren"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Muster-Schlüssel"
|
||||
@@ -4275,23 +4268,10 @@ msgstr "Muster-Schlüssel"
|
||||
msgid "Clear"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Filter übernehmen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Voreinstellungen"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Film Sortierung"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Film-Sortierung aktivieren"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Betroffene Kategorien"
|
||||
@@ -4308,26 +4288,6 @@ msgstr "Muster"
|
||||
msgid "Result"
|
||||
msgstr "Resultat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Staffel-Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Staffel-Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Episoden-Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Episoden-Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Aufgabe Name als Ordnername"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
@@ -4376,10 +4336,6 @@ msgstr "Episoden.Name"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Episoden_Name"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Dateiendung"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Endung"
|
||||
@@ -4421,8 +4377,16 @@ msgid "Sort String"
|
||||
msgstr "Sortieranweisung"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Markierung für mehrere Teile"
|
||||
msgid "Multi-part Label"
|
||||
msgstr "Multi-part Kennzeichnung"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr "Zeige Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr "Staffelordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4432,26 +4396,13 @@ msgstr "In Ordnern"
|
||||
msgid "No folders"
|
||||
msgstr "Keine Ordner"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Sortieren nach Datum"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Aufgabe Name als Ordnername"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Sortieren nach Datum aktivieren"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Ordner mit Name der Sendung"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Jahr-Monat-Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Tägliche Ordner"
|
||||
msgid "Series"
|
||||
msgstr "Serien"
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4482,6 +4433,81 @@ msgstr "GuessIt.Eigenschaft"
|
||||
msgid "GuessIt_Property"
|
||||
msgstr "GuessIt_Eigenschaft"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr "Minimale Dateigröße"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr "Betroffener Aufgabentyp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr "Serien mit Ausstrahlungsdatum"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr "Filme"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr "Andere / Unbekannte"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
"<p>Benutze die Sortierer, um deine fertigen Downloads zu orgenisieren. Zum "
|
||||
"Beispiel verschiebe alle Seriendateien in den Serien eigenen Ordner oder "
|
||||
"Verschiege alle Filme in den Filme eigenen Ordner.</p><p>Die Sortierer "
|
||||
"werden der Reihe nach bearbeitet und könne durch ziehen und ablegen "
|
||||
"umsortiert werden.<br/>Der erste Aktive Sortierer der sowohl zur Kategorie "
|
||||
"als auch zum Aufgabentyp passt wird angewendet.</p><p>Wenn erweiterte "
|
||||
"Einstellungen aktiviert sind, sind noch mehr Einstellungen möglich.<br/> "
|
||||
"Weitere informationen sind in der WIki zu finden.</p>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr "Sortierer hinzufügen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr "Sortierer entfernen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr "Testdaten"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr "Schnellstart"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
"Bennene alle Episodendateien in der Kategorie \"tv\" um und veschiebe sie in"
|
||||
" den Serien eigenen Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
"Bennene alle Filmdateien in der Kategorie \"filme\" um und veschiebe sie in "
|
||||
"den Filme eigenen Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4721,6 +4747,10 @@ msgstr "Löschen von Verlaufeinträgen bestätigen"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Tastaturkürzel"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Wie lange oder bis wann möchtest du pausieren? (in Englisch!)"
|
||||
@@ -4897,8 +4927,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Umbenennen von %s nach %s fehlgeschlagen."
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr "Fehler beim umbennenen von %s nach %s"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
260
po/main/es.po
260
po/main/es.po
@@ -1,18 +1,18 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Ester Molla Aragones <moarages@gmail.com>, 2020
|
||||
# 1024mb <angelb2203@gmail.com>, 2020
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# 1024mb <angelb2203@gmail.com>, 2023
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -41,20 +41,13 @@ msgstr ""
|
||||
"No se puede encontrar la plantilla web: %s, intentando con la plantilla "
|
||||
"estandar"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc deshabilitado: ¡no se ha encontrado la versión correcta! (Se ha "
|
||||
"encontrado la v%s, se esperaba la v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"Módulo SABYenc... ¡NO encontrado! Se esperaba la v%s - "
|
||||
"https://sabnzbd.org/sabyenc"
|
||||
"SABCTools deshabilitado: ¡no se ha encontrado la versión correcta! (Se ha "
|
||||
"encontrado la v%s, se esperaba la v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -114,6 +107,8 @@ msgid ""
|
||||
"Current umask (%o) might deny SABnzbd access to the files and folders it "
|
||||
"creates."
|
||||
msgstr ""
|
||||
"La umask actual (%o) podría denegarle acceso a SABnzbd a los archivos y "
|
||||
"carpetas que este crea."
|
||||
|
||||
#. Warning message
|
||||
#: SABnzbd.py
|
||||
@@ -158,22 +153,17 @@ msgstr "Error grave al guardar estado"
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed postprocessor"
|
||||
msgstr ""
|
||||
msgstr "Reiniciando a causa de un posprocesador colgado"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
msgstr "Reiniciando debido al cuelgue del descargador"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
msgstr ""
|
||||
msgstr "Reiniciando debido al cuelgue del ensamblador"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
@@ -446,7 +436,6 @@ msgstr ""
|
||||
"Debe establecer un ancho de banda máximo antes de poder establecer un límite"
|
||||
" de ancho de banda"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Error en inicio de conexion a servidor %s [%s]"
|
||||
@@ -470,20 +459,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Error al inicializar %s@%s con la razón: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Demasiadas conexiones con el servidor %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Demasiadas conexiones con el servidor %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Compartiendo de cuenta probable"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Registraccion fallo para servidor %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Registraccion fallo para servidor %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -676,7 +664,7 @@ msgstr ""
|
||||
"Clave de API erróneo, favor ingresar la clave correcta desde Config->General"
|
||||
" en tu aplicacion externa:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autenticación fallida, compruebe el usuario o la contraseña."
|
||||
|
||||
@@ -816,6 +804,18 @@ msgstr ""
|
||||
"La secuencia de comandos Python \"%s\" no tiene configurado el permiso de "
|
||||
"ejecutar (+x)"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Ordenación de Series"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Ordenar por fecha"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Clasificación de películas"
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Ejecutando script"
|
||||
@@ -1907,32 +1907,32 @@ msgstr "Eliminar trabajos completados"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pausar trabajos de prioridad baja"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pausar trabajos de prioridad normal"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pausar trabajos de prioridad alta"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Reanudar trabajos de prioridad baja"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Reanudar trabajos de prioridad normal"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Reanudar trabajos de prioridad alta"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2212,10 +2212,6 @@ msgstr "Especial"
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Dir de Descarga"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "¿Seguro que deseas detener SABnzbd?"
|
||||
@@ -2505,10 +2501,6 @@ msgstr "Nombre del servidor / Búsqueda de DNS"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -3016,6 +3008,11 @@ msgstr ""
|
||||
"Ubicación donde guardar descargas finalizadas, totalmente procesaddas.<br "
|
||||
"/><i>Puede ser obviado debido a categorías definidas por el usuario.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3098,6 +3095,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Directorios del sistema"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Directorio de administración"
|
||||
@@ -3828,6 +3829,10 @@ msgstr "Leer Fuente"
|
||||
msgid "Force Download"
|
||||
msgstr "Forzar Descarga"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Aplicar filtros"
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4200,20 +4205,6 @@ msgstr "Directorio/Ruta"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "Categorías Indexer / Grupos"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Ordenación de Series"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Habilitar la ordenación de Series de TV"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Patrón"
|
||||
@@ -4222,23 +4213,10 @@ msgstr "Patrón"
|
||||
msgid "Clear"
|
||||
msgstr "Limpiar"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Aplicar filtros"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Preajustes"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Clasificación de películas"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Habilitar Ordenado de Películas"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Categorías Afectadas"
|
||||
@@ -4255,26 +4233,6 @@ msgstr "Patrón"
|
||||
msgid "Result"
|
||||
msgstr "Resultado"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Temporada Directorio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Temporada Directorio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Episodio Directorio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Episodio Directorio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Nombre de la tarea para el nombre de archivo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Título"
|
||||
@@ -4323,10 +4281,6 @@ msgstr "Nombre.capítulo"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Nombre_capítulo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Extensión de archivo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Extensión"
|
||||
@@ -4368,8 +4322,16 @@ msgid "Sort String"
|
||||
msgstr "Ordenar cadena"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Etiqueta"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4379,26 +4341,13 @@ msgstr "En directorios"
|
||||
msgid "No folders"
|
||||
msgstr "Sin Directorios"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Ordenar por fecha"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Nombre de la tarea para el nombre de archivo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Habilitar ordenar por fecha"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Carpeta de la serie"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Directorios Año-Mes"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Directorios diarios"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4429,6 +4378,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4670,6 +4682,10 @@ msgstr "Confirmar eliminación del historial"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "¿Durante cuánto tiempo quieres dejarlo pausado?"
|
||||
@@ -4847,8 +4863,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Error al renombrar: %s a %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
244
po/main/fi.po
244
po/main/fi.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Finnish (https://www.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -37,15 +37,10 @@ msgstr "Web-käyttöliittymän käynnistys epäonnistui"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Web-mallia %s ei löydy, yritetään käyttää oletusmallia"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -158,11 +153,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -422,7 +412,6 @@ msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
"Sinun täytyy määrittää enimmäiskaista ennen kaistarajoituksen käyttöönottoa."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Palvelimeen %s ei voida yhdistää [%s]"
|
||||
@@ -446,20 +435,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Alustaminen epäonnistui kohteessa %s@%s syy: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Liikaa yhteyksiä palvelimelle %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Liikaa yhteyksiä palvelimelle %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Mahdollinen tilin jakaminen"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Kirjautuminen palvelimelle %s epäonnistui"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Kirjautuminen palvelimelle %s epäonnistui [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -651,7 +639,7 @@ msgstr ""
|
||||
"API avain virheellinen, käytä Asetukset->Yleiset löytyvää api avainta "
|
||||
"käyttämääsi kolmannen osapuolen ohjelmaan:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Varmennus epäonnistui, tarkista käyttäjänimi/salasana."
|
||||
|
||||
@@ -784,6 +772,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sarjojen lajittelu"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Päivämäärän lajittelu"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Ajetaan skripti"
|
||||
@@ -1845,32 +1845,32 @@ msgstr "Poista valmistuneet lataukset"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Keskeytä alhaisen prioriteetin lataukset"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Keskeytä normaalin prioriteetin lataukset"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Keskeytä korkean prioriteetin lataukset"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Jatka alhaisen prioriteetin lataukset"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Jatka normaalin prioriteetin lataukset"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Jatka korkean prioriteetin lataukset"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2150,10 +2150,6 @@ msgstr "Erikoisasetukset"
|
||||
msgid "Search"
|
||||
msgstr "Etsi"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Lataukset-kansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Oletko varma, että haluat sammuttaa SABnzbdn?"
|
||||
@@ -2440,10 +2436,6 @@ msgstr "Nimipalvelin / DNS-selvitys"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2940,6 +2932,11 @@ msgstr ""
|
||||
"Sijainti jonne tallennetaan valmistuneet ja täysin käsitellyt ladatut "
|
||||
"kohteet.<br /><i>Käyttäjän asettamat kategoriat voivat kumota tämän.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3022,6 +3019,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Järjestelmäkansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Hallinnollinen kansio"
|
||||
@@ -3729,6 +3730,10 @@ msgstr "Lue syöte"
|
||||
msgid "Force Download"
|
||||
msgstr "Pakota lataus"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4097,20 +4102,6 @@ msgstr "Kansio/Polku"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "Indeksoijan kategoriat / ryhmä"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sarjojen lajittelu"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "TV lajittelu käytössä"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Mallin avain"
|
||||
@@ -4119,23 +4110,10 @@ msgstr "Mallin avain"
|
||||
msgid "Clear"
|
||||
msgstr "Tyhjennä"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Esiasetukset"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Elokuvien lajittelu käytössä"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Kategoriat joita koskee"
|
||||
@@ -4152,26 +4130,6 @@ msgstr "Malli"
|
||||
msgid "Result"
|
||||
msgstr "Tulos"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Tuotantokausi kansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Tuotantokausi kansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Jakso kansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Jakso kansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Nimi"
|
||||
@@ -4220,10 +4178,6 @@ msgstr "Jakson.nimi"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Jakson_nimi"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Tiedostotunniste"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Tunniste"
|
||||
@@ -4265,8 +4219,16 @@ msgid "Sort String"
|
||||
msgstr "Lajittelumerkkijono"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Moniosainen selite"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4276,26 +4238,13 @@ msgstr "Kansioissa"
|
||||
msgid "No folders"
|
||||
msgstr "Ei kansioita"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Päivämäärän lajittelu"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Päivämäärän lajittelu käytössä"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Ohjelman nimi kansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Vuosittaiset-Kuukausittaiset kansiot"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Päivittäiset kansiot"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4326,6 +4275,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Kaikki"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4568,6 +4580,10 @@ msgstr "Varmista historian poistot"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Kuinka pitkään tai mihin asti haluat keskeyttää? (englanniksi!)"
|
||||
@@ -4743,8 +4759,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Virhe uudelleennimettäessä: %s %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
266
po/main/fr.po
266
po/main/fr.po
@@ -1,17 +1,17 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Fred L <88com88@gmail.com>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
# Fred L <88com88@gmail.com>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Fred L <88com88@gmail.com>, 2022\n"
|
||||
"Language-Team: French (https://www.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
"Last-Translator: Fred L <88com88@gmail.com>, 2023\n"
|
||||
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -40,19 +40,13 @@ msgstr ""
|
||||
"Impossible de trouver le template de l'interface web : %s, nouvelle "
|
||||
"tentative avec le template standard"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc désactivé: aucune version correcte n'a été trouvée ! (v%s trouvée, "
|
||||
"v%s attendue)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"Module SABYenc... NON trouvé ! v%s attendue - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools désactivé: aucune version correcte n'a été trouvée ! (v%s trouvée,"
|
||||
" v%s attendue)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -168,11 +162,6 @@ msgstr "Redémarrage suite au plantage du postprocesseur"
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr "Redémarrage suite au plantage du téléchargeur"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr "Redémarrage suite au plantage du décodeur"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -451,7 +440,6 @@ msgstr ""
|
||||
"Vous devez définir une bande passante maximale avant de pouvoir définir une "
|
||||
"limite de bande passante"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Impossible de se connecter au serveur %s [%s]"
|
||||
@@ -475,20 +463,21 @@ msgstr "Il n'y a aucun serveur actif !"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Échec d'initialisation de %s@%s pour la raison suivante : %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Trop de connexions au serveur %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Trop de connexions au serveur %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Partage de compte probable"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
"Connexion au serveur %s [%s] à partir de trop d'adresses IP différentes - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Échec de la connexion au serveur %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Échec de la connexion au serveur %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -684,7 +673,7 @@ msgstr ""
|
||||
"Clé API incorrecte, utilisez la clé API de la configuration générale dans "
|
||||
"votre application tierce :"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Echec d'authentification, vérifiez les identifiant/mot de passe."
|
||||
|
||||
@@ -827,6 +816,18 @@ msgstr ""
|
||||
"Le script Python \"%s\" n'est pas configuré avec les permissions d’exécution"
|
||||
" (+x)"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Tri des séries"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Tri par date"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Tri des films"
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Exécution du script"
|
||||
@@ -1909,32 +1910,32 @@ msgstr "Effacer les tâches terminées"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Mettre en pause les tâches de priorité faible"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Mettre en pause les tâches de priorité normale"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Mettre en pause les tâches de priorité haute"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Reprendre les tâches de priorité faible"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Reprendre les tâches de priorité normale"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Reprendre les tâches de priorité haute"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2214,10 +2215,6 @@ msgstr "Spécial"
|
||||
msgid "Search"
|
||||
msgstr "Rechercher"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Dossier de téléchargement"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Etes-vous sûr de vouloir arrêter SABnzbd ?"
|
||||
@@ -2507,10 +2504,6 @@ msgstr "Nameserver / DNS Lookup"
|
||||
msgid "Download speed limited by"
|
||||
msgstr "Vitesse de téléchargement limitée par"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr "processeur"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr "Vitesse du disque"
|
||||
@@ -3031,6 +3024,13 @@ msgstr ""
|
||||
"Emplacement des téléchargements terminés et post-traités.<br /><i>Peut être "
|
||||
"outrepassé par les catégories définies par l'utilisateur.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
"Utilisez le tri pour organiser et renommer automatiquement vos "
|
||||
"téléchargements terminés."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr "Espace libre minimum pour le dossier des téléchargements terminés"
|
||||
@@ -3120,6 +3120,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Dossiers système"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr "Dossiers cachés"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Dossier administrateur"
|
||||
@@ -3871,6 +3875,10 @@ msgstr "Lire le flux RSS"
|
||||
msgid "Force Download"
|
||||
msgstr "Forcer le téléchargement"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Appliquer les filtres"
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4246,20 +4254,6 @@ msgstr "Dossier/Chemin"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "Catégories de l'indexeur / Groupes"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr "Sélectionnez au moins une catégorie."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Tri des séries"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Activer le tri TV"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Modèle de clé"
|
||||
@@ -4268,23 +4262,10 @@ msgstr "Modèle de clé"
|
||||
msgid "Clear"
|
||||
msgstr "Effacer"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Appliquer les filtres"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Modèles prédéfinis"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Tri des films"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Activer le tri des films"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Catégories affectées"
|
||||
@@ -4301,26 +4282,6 @@ msgstr "Modèle"
|
||||
msgid "Result"
|
||||
msgstr "Résultat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Dossier Saison"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Dossier Saison"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Dossier Épisode"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Dossier Épisode"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Nom de la tâche en tant que nom de fichier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Titre"
|
||||
@@ -4369,10 +4330,6 @@ msgstr "Nom.Épisode"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Nom_Épisode"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Extension du fichier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Extension"
|
||||
@@ -4414,9 +4371,17 @@ msgid "Sort String"
|
||||
msgstr "Chaîne de caractères de tri"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgid "Multi-part Label"
|
||||
msgstr "Étiquette multi-bloc"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr "Afficher le dossier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr "Dossier de la saison"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
msgstr "Dans les dossiers"
|
||||
@@ -4425,26 +4390,13 @@ msgstr "Dans les dossiers"
|
||||
msgid "No folders"
|
||||
msgstr "Pas de dossiers"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Tri par date"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Nom de la tâche en tant que nom de fichier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Activer le tri par date"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Dossier du nom de série"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Dossiers Année-Mois"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Dossiers Quotidiens"
|
||||
msgid "Series"
|
||||
msgstr "Séries"
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4475,6 +4427,82 @@ msgstr "Attribut.Guessit"
|
||||
msgid "GuessIt_Property"
|
||||
msgstr "Attribut_Guessit"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr "Taille minimale du fichier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr "Types de tâche concernée"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Tous"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr "Séries avec dates de diffusion"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr "Films"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr "Autre / Inconnu"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
"<p>Utilisez les trieurs pour organiser automatiquement vos téléchargements "
|
||||
"terminés. Par exemple, placez tous les épisodes d'une série dans un dossier "
|
||||
"spécifique à la saison. Ou encore, placez les films dans un dossier portant "
|
||||
"le nom du film.</p><p>Les trieurs sont essayés par ordre d'apparition et "
|
||||
"peuvent être réorganisés par glisser-déposer.<br/>Le premier trieur actif "
|
||||
"qui correspond à la fois à la catégorie et au type de tâche concernée est "
|
||||
"appliqué.</p><p>D'autres options sont disponibles lorsque l'option "
|
||||
"Paramètres avancés est cochée.<br/>Des informations détaillées sont "
|
||||
"disponibles sur le Wiki.</p>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr "Ajouter un trieur"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr "Supprimer le trieur"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr "Données de test"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr "Démarrage rapide"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
"Déplacer et renommer tous les épisodes de la catégorie \"tv\" vers un "
|
||||
"dossier de série spécifique"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
"Déplacer et renommer tous les films de la catégorie \"films\" vers un "
|
||||
"dossier de film spécifique"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4717,6 +4745,10 @@ msgstr "Confirmer les suppressions de l'historique"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Raccourcis clavier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Combien de temps ou jusqu'à quand souhaitez-vous mettre en pause ?"
|
||||
@@ -4894,8 +4926,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Échec du renommage : %s en %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr "Échec du renommage de %s en %s"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
246
po/main/he.po
246
po/main/he.po
@@ -1,17 +1,17 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# ION, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: ION, 2022\n"
|
||||
"Language-Team: Hebrew (https://www.transifex.com/sabnzbd/teams/111101/he/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\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"
|
||||
@@ -38,16 +38,11 @@ msgstr "נכשל בהתחלת ממשק רשת"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "לא ניתן למצוא תבניות רשת: %s, מנסה תבנית תקנית"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr "SABYenc מושבת: גרסה נכונה לא נמצאה! (%s נמצאה, מצפה אל %s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr "מודול SABYenc… לא נמצא! מצפה אל %s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr "SABCTools מושבת: גרסה נכונה לא נמצאה! (%s נמצאה, מצפה אל %s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -155,11 +150,6 @@ msgstr "מפעיל מחדש בגלל בתר־מעבד שקרס"
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr "מפעיל מחדש בגלל מורידן שקרס"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr "מפעיל מחדש בגלל מפענח קוד שקרס"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -422,7 +412,6 @@ msgstr "מושהה"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "אתה חייב לקבוע רוחב פס מרבי לפני שאתה קובע מגבלת רוחב פס"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "לא ניתן להתחבר אל השרת %s [%s]"
|
||||
@@ -446,20 +435,19 @@ msgstr "אין שרתים פעילים!"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "נכשל באתחול %s@%s עם סיבה: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "יותר מדי חיבורים לשרת %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "יותר מדי חיבורים לשרת %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "שיתוף סביר של חשבון"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "נכשל בכניסה אל השרת %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "נכשל בכניסה אל השרת %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -649,7 +637,7 @@ msgid ""
|
||||
"program:"
|
||||
msgstr "מפתח API שגוי, השתמש במפתח ה־API מתצורה->כללי בתוכנית הצד השלישי שלך:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "אימות נכשל, בדוק שם משתמש/סיסמה."
|
||||
|
||||
@@ -786,6 +774,18 @@ msgstr "[%s] הפקודה ב־build_command אינה מוגדרת."
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "לתסריט פייתון \"%s\" אין ערכת הרשאות ביצוע (+x)"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "מיון סדרות"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "מיון תאריכים"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "מיון סרטים"
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "מריץ תסריט"
|
||||
@@ -1852,32 +1852,32 @@ msgstr "הסר עבודות נשלמות"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "השהה עבודות עם עדיפות נמוכה"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "השהה עבודות עם עדיפות רגילה"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "השהה עבודות עם עדיפות גבוהה"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "המשך עבודות עם עדיפות נמוכה"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "המשך עבודות עם עדיפות רגילה"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "המשך עבודות עם עדיפות גבוהה"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2157,10 +2157,6 @@ msgstr "מיוחד"
|
||||
msgid "Search"
|
||||
msgstr "חיפוש"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "תיקיית הורדות"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "האם אתה בטוח שאתה רוצה לכבות את SABnzbd?"
|
||||
@@ -2449,10 +2445,6 @@ msgstr "שם שרת / חיפוש DNS"
|
||||
msgid "Download speed limited by"
|
||||
msgstr "מהירות הורדה מוגבלת ע״י"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr "יע״מ"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr "מהירות דיסק"
|
||||
@@ -2945,6 +2937,11 @@ msgstr ""
|
||||
"מיקום לאחסון הורדות שהסתיימו, מעבודות במלואן.<br /><i>ניתן להשתלטות ע״י "
|
||||
"קטגוריות מוגדרות־משתמש.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr "שטח פנוי מזערי עבור תיקיית הורדות שלמות"
|
||||
@@ -3028,6 +3025,10 @@ msgstr "קובץ שמכיל את כל הסיסמאות שינוסו על קבצ
|
||||
msgid "System Folders"
|
||||
msgstr "תיקיות מערכת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "תיקייה מינהלית"
|
||||
@@ -3735,6 +3736,10 @@ msgstr "קרא הזנה"
|
||||
msgid "Force Download"
|
||||
msgstr "אלץ הורדה"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "החל מסננים"
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4103,20 +4108,6 @@ msgstr "תיקייה/נתיב"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "קטגוריות / קבוצות של מדדן"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr "בחר קטגוריה 1 לפחות."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "מיון סדרות"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "אפשר מיון טלוויזיה"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "מפתח דפוס"
|
||||
@@ -4125,23 +4116,10 @@ msgstr "מפתח דפוס"
|
||||
msgid "Clear"
|
||||
msgstr "נקה"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "החל מסננים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "קדם־קביעות"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "מיון סרטים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "אפשר מיון סרטים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "קטגוריות מושפעות"
|
||||
@@ -4158,26 +4136,6 @@ msgstr "דפוס"
|
||||
msgid "Result"
|
||||
msgstr "תוצאה"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "תיקיית עונה 1x05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "תיקיית עונה S01E05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "תיקיית פרק 1x05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "תיקיית פרק S01E05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "שם עבודה בתור שם קובץ"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "כותר"
|
||||
@@ -4226,10 +4184,6 @@ msgstr "שם.פרק"
|
||||
msgid "Episode_Name"
|
||||
msgstr "שם_פרק"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "סיומת קובץ"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "סיומת"
|
||||
@@ -4271,8 +4225,16 @@ msgid "Sort String"
|
||||
msgstr "מחרוזת מיון"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "תווית מרובת־חלקים"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4282,26 +4244,13 @@ msgstr "בתיקיות"
|
||||
msgid "No folders"
|
||||
msgstr "אין תיקיות"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "מיון תאריכים"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "שם עבודה בתור שם קובץ"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "אפשר מיון תאריכים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "הראה שם תיקייה"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "תיקיות שנה־חודש"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "תיקיות יומיות"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4332,6 +4281,69 @@ msgstr "GuessIt.Property"
|
||||
msgid "GuessIt_Property"
|
||||
msgstr "GuessIt_Property"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "הכל"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4570,6 +4582,10 @@ msgstr "אשר מחיקות היסטוריה"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "קיצורי דרך במקלדת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "כמה זמן או עד מתי תרצה להשהות? (באנגלית!)"
|
||||
@@ -4746,8 +4762,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "נכשל בשינוי שם: %s אל %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
247
po/main/nb.po
247
po/main/nb.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Norwegian Bokmål (https://www.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -37,18 +37,12 @@ msgstr "Kunne ikke starte webgrensesnittet"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Kan ikke finne webmal: %s, prøver standardmal"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc deaktivert: Fant ikke korrekt versjon! (Fant v%s, forventet v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc modul... IKKE funnet! Forventet v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools deaktivert: Fant ikke korrekt versjon! (Fant v%s, forventet v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -155,11 +149,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -418,7 +407,6 @@ msgstr "Pauset"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "Du må sette maks båndbredde før du kan sette en båndbreddebegrensning"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Kan ikke koble til server %s [%s]"
|
||||
@@ -442,20 +430,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Feilet å starte %s@%s grunnet: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "For mange tilkoblinger til server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "For mange tilkoblinger til server %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Mistenkt kontodeling"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Kunne ikke logge inn på server %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Kunne ikke logge inn på server %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -647,7 +634,7 @@ msgstr ""
|
||||
"API-nøkkel er feil, bruk API-nøkkel fra Konfigurasjon->Generelt i ditt "
|
||||
"tredjepartsprogram:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Godkjenning mislyktes, kontroller brukernavn og passord."
|
||||
|
||||
@@ -780,6 +767,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Seriesortering"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Dato sortering"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Kjører skript"
|
||||
@@ -1842,32 +1841,32 @@ msgstr "Fjern ferdige jobber"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pause jobber med lav prioritet"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pause jobber med normal prioritet"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pause jobber med høy prioritet"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Gjenoppta jobber med lav prioritet"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Gjenoppta jobber med normal prioritet"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Gjenoppta jobber med høy prioritet"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2147,10 +2146,6 @@ msgstr "Spesiell"
|
||||
msgid "Search"
|
||||
msgstr "Søk"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Midlertidig nedlastingsmappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Er sikker på at du vil slå av SABnzbd?"
|
||||
@@ -2437,10 +2432,6 @@ msgstr "Navnserver / DNS oppslag"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2926,6 +2917,11 @@ msgstr ""
|
||||
"Plass for å lagre bearbeidede og ferdige nedlastinger.<br /><i>Kan "
|
||||
"overstyres av brukerdefinerte kategorier.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3007,6 +3003,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systemmapper"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativ Mappe"
|
||||
@@ -3705,6 +3705,10 @@ msgstr "Les kilde"
|
||||
msgid "Force Download"
|
||||
msgstr "Tving nedlasting"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4069,20 +4073,6 @@ msgstr "Mappe/Søkesti"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Seriesortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Aktiverer TV sortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Hjelp til Sorteringsstreng"
|
||||
@@ -4091,23 +4081,10 @@ msgstr "Hjelp til Sorteringsstreng"
|
||||
msgid "Clear"
|
||||
msgstr "Rens"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "For innstillinger"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Aktiver filmsortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Påvirkede kategorier"
|
||||
@@ -4124,26 +4101,6 @@ msgstr "Mønster"
|
||||
msgid "Result"
|
||||
msgstr "Resultat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Sesongmappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Sesongmappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Episodemappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Episodemappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Tittel"
|
||||
@@ -4192,10 +4149,6 @@ msgstr "Episode.Navn"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Episode_Navn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Filendelse"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "endelse"
|
||||
@@ -4237,8 +4190,16 @@ msgid "Sort String"
|
||||
msgstr "Sorteringsstreng"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Multi-del etikett"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4248,26 +4209,13 @@ msgstr "I mappe"
|
||||
msgid "No folders"
|
||||
msgstr "Ingen mappe"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Dato sortering"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Aktiver datosortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Vis Navn på mappe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "År-Måneds mapper"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Daglige mapper"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4298,6 +4246,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4536,6 +4547,10 @@ msgstr "Bekreft Sletting av Historie"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Hvor lenge ønsker du å pause? (skriv på engelsk!)"
|
||||
@@ -4712,8 +4727,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Kunne ikke endre navn fra: %s til %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
255
po/main/nl.po
255
po/main/nl.po
@@ -1,17 +1,17 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Rik Brouwer, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
#
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -38,19 +38,13 @@ msgstr "Webinterface kan niet gestart worden"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Websjabloon %s niet te vinden; het standaardsjabloon wordt gebruikt."
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc uitgeschakeld, geen bruikbare versie gevonden! (V%s gevonden, V%s "
|
||||
"verwacht)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc module... NIET gevonden! Verwacht V%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools uitgeschakeld, geen bruikbare versie gevonden! (V%s gevonden, V%s "
|
||||
"verwacht)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -162,11 +156,6 @@ msgstr "SABnzbd wordt herstart omdat de postprocessor is gecrasht"
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr "SABnzbd wordt herstart omdat de downloader is gecrasht"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr "SABnzbd wordt herstart omdat de decoder is gecrasht"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -445,7 +434,6 @@ msgstr ""
|
||||
"Je moet eerst een maximumbandbreedte instellen voordat je een limiet kunt "
|
||||
"instellen"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Verbinding maken met server %s [%s] niet mogelijk"
|
||||
@@ -469,20 +457,21 @@ msgstr "Er zijn geen actieve servers!"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Initialisatie van %s@%s mislukt, vanwege: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Te veel verbindingen met server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Te veel verbindingen met server %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Mogelijk delen van account"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
"Teveel verschillende IP-adressen probeerde in te loggen op server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Aanmelden bij server %s mislukt"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Aanmelden bij server %s mislukt [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -678,7 +667,7 @@ msgstr ""
|
||||
"API-sleutel incorrect; vul de API-sleutel van 'Configuratie' => 'Algemeen' "
|
||||
"in bij het externe programma:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Inloggen mislukt, controleer gebruikersnaam en wachtwoord."
|
||||
|
||||
@@ -818,6 +807,18 @@ msgstr "[%s] Het commando in build_command is ongedefinieerd"
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Python-script '%s' heeft geen uitvoerpermissie (+x)"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Serie sorteren"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Datum sorteren"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Film sorteren"
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Script uitvoeren"
|
||||
@@ -1890,32 +1891,32 @@ msgstr "Verwijder voltooide downloads"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pauzeer downloads met prioriteit \"Laag\""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pauzeer downloads met prioriteit \"Normaal\""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pauzeer downloads met prioriteit \"Hoog\""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Hervat downloads met prioriteit \"Laag\""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Hervat downloads met prioriteit \"Normaal\""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Hervat downloads met prioriteit \"Hoog\""
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2195,10 +2196,6 @@ msgstr "Speciaal"
|
||||
msgid "Search"
|
||||
msgstr "Zoeken"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Map voor verwerkte downloads"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Weet je zeker dat je SABnzbd wilt afsluiten?"
|
||||
@@ -2487,10 +2484,6 @@ msgstr "Nameserver / DNS opzoeken"
|
||||
msgid "Download speed limited by"
|
||||
msgstr "Downloadsnelheid beperkt door"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr "Processor"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr "Hardeschijf"
|
||||
@@ -2999,6 +2992,11 @@ msgid ""
|
||||
"overruled by user-defined categories.</i>"
|
||||
msgstr "(kan aangepast worden door de categorieën)."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr "Minimale vrije ruimte voor verwerkte downloads map"
|
||||
@@ -3083,6 +3081,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systeemmappen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administratieve map"
|
||||
@@ -3829,6 +3831,10 @@ msgstr "Uitlezen"
|
||||
msgid "Force Download"
|
||||
msgstr "Forceer download"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Filters toepassen"
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4203,20 +4209,6 @@ msgstr "Map/Pad"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "Indexer Categorieën / Groepen"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr "Selecteer minstens 1 categorie."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Serie sorteren"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Serie sorteren aan"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Uitleg"
|
||||
@@ -4225,23 +4217,10 @@ msgstr "Uitleg"
|
||||
msgid "Clear"
|
||||
msgstr "Wissen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "Filters toepassen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Standaardinstellingen"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "Film sorteren"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Film sorteren aan"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Beïnvloede categorieën"
|
||||
@@ -4258,26 +4237,6 @@ msgstr "Patroon"
|
||||
msgid "Result"
|
||||
msgstr "Resultaat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Seizoensmappen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Seizoensmap"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Aflevering-map"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Aflevering-map"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Downloadnaam als Bestandsnaam"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
@@ -4326,10 +4285,6 @@ msgstr "Aflevering.Naam"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Aflevering_Naam"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Bestandsextensie"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Extensie"
|
||||
@@ -4371,8 +4326,16 @@ msgid "Sort String"
|
||||
msgstr "Sorteertekst"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Meervoudig label"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4382,26 +4345,13 @@ msgstr "In mappen"
|
||||
msgid "No folders"
|
||||
msgstr "Geen mappen"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Datum sorteren"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr "Downloadnaam als Bestandsnaam"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Datum sorteren aan"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Toon Naam map"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Jaar-Maand Mappen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Dagelijkse Mappen"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4432,6 +4382,69 @@ msgstr "GuessIt.Eigenschap"
|
||||
msgid "GuessIt_Property"
|
||||
msgstr "GuessIt_Eigenschap"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "alles"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4671,6 +4684,10 @@ msgstr "Bevestig verwijderen uit geschiedenis"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Sneltoetsen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Voor hoe lang of tot wanneer wilt u pauzeren? (in het Engels!)"
|
||||
@@ -4847,8 +4864,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Hernoemen van %s tot %s mislukt"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
244
po/main/pl.po
244
po/main/pl.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Polish (https://www.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -37,15 +37,10 @@ msgstr "Nie udało się uruchomić interfejsu WWW"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Nie znaleziono szablonu: %s, próbuję użyć standardowego szablonu"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -150,11 +145,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -415,7 +405,6 @@ msgstr ""
|
||||
"Przed ustawieniem limitu przepustowości należy ustawić maksymalną "
|
||||
"przepustowość"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Nie można połączyć się z serwerem %s [%s]"
|
||||
@@ -439,20 +428,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Błąd podczas inicjalizacji %s@%s: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Zbyt wiele połączeń do serwera %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Zbyt wiele połączeń do serwera %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Prawdopodobne współdzielenie konta"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Błąd logowania do serwera %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Błąd logowania do serwera %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -646,7 +634,7 @@ msgstr ""
|
||||
"Klucz API jest nieprawidłowy, użyj klucza API z sekcji Konfiguracja->Ogólne "
|
||||
"w zewnętrznym programie:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: 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."
|
||||
|
||||
@@ -779,6 +767,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sortowanie seriali"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Sortowanie według daty"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Uruchamianie skryptu"
|
||||
@@ -1847,32 +1847,32 @@ msgstr "Usuń ukończone zadania"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Wstrzymaj zadania o niskim priorytecie"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Wstrzymaj zadania o normalnym priorytecie"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Wstrzymaj zadania o wysokim priorytecie"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Wznów zadania o niskim priorytecie"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Wznów zadania o normalnym priorytecie"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Wznów zadania o wysokim priorytecie"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2152,10 +2152,6 @@ msgstr "Specjalne"
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Katalog pobierania"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Czy na pewno wyłączyć SABnzbd?"
|
||||
@@ -2442,10 +2438,6 @@ msgstr "Serwer DNS"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2932,6 +2924,11 @@ msgstr ""
|
||||
"Miejsce przechowywania ukończonych, przetworzonych plików. <br /><i>Może "
|
||||
"zostać zmienione przez ustawienia kategorii.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3016,6 +3013,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Katalogi systemowe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Katalog administracyjny"
|
||||
@@ -3715,6 +3716,10 @@ msgstr "Pobierz kanał"
|
||||
msgid "Force Download"
|
||||
msgstr "Wymuś pobranie"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4079,20 +4084,6 @@ msgstr "Katalog/Ścieżka"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sortowanie seriali"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Włącz sortowanie TV"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Zastępowane ciągi"
|
||||
@@ -4101,23 +4092,10 @@ msgstr "Zastępowane ciągi"
|
||||
msgid "Clear"
|
||||
msgstr "Wyczyść"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Predefiniowane"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Włącz sortowanie filmów"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Dotyczy kategorii"
|
||||
@@ -4134,26 +4112,6 @@ msgstr "Ciąg"
|
||||
msgid "Result"
|
||||
msgstr "Wynik"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "Katalog sezonu 1x05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "Katalog sezonu S01E05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "Katalog odcinka 1x05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "Katalog odcinka S01E05"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Tytuł"
|
||||
@@ -4202,10 +4160,6 @@ msgstr "Tytuł.odcinka"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Tytuł_odcinka"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Rozszerzenie pliku"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Rozszerzenie"
|
||||
@@ -4247,8 +4201,16 @@ msgid "Sort String"
|
||||
msgstr "Wzorzec sortowania"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Etykieta wieloczęściowa"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4258,26 +4220,13 @@ msgstr "W katalogach"
|
||||
msgid "No folders"
|
||||
msgstr "Brak katalogów"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Sortowanie według daty"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Włącz sortowanie według daty"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Katalog z tytułem serialu"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Katalogi rok-miesiąc"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Katalogi dzienne"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4308,6 +4257,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Wszystko"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4546,6 +4558,10 @@ msgstr "Potwierdzaj usuwanie z historii"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Jak długo lub do kiedy chcesz wstrzymać? (po angielsku!)"
|
||||
@@ -4720,8 +4736,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Nie udało się zmienić nazwy %s na %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
244
po/main/pt_BR.po
244
po/main/pt_BR.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -38,15 +38,10 @@ msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr ""
|
||||
"Não foi possível encontrar o template web: %s. Tentando o template padrão"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -154,11 +149,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -421,7 +411,6 @@ msgstr ""
|
||||
"Você deve definir a largura de banda máxima antes de definir um limite de "
|
||||
"banda"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Não é possível conectar ao servidor %s [%s]"
|
||||
@@ -445,20 +434,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Falha ao iniciar %s@%s devido as seguintes razões: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Excesso de conexões ao servidor %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Excesso de conexões ao servidor %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Provável compartilhamento de conta"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Falha de logon ao servidor %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Falha de logon ao servidor %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -650,7 +638,7 @@ msgstr ""
|
||||
"Chave de API incorreta. Use a chave de API de Configuração->Geral em seu "
|
||||
"programa de terceiros:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Falha de autenticação, verifique usuário / senha."
|
||||
|
||||
@@ -783,6 +771,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Ordenação de Séries"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Ordenação por data"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Executando script"
|
||||
@@ -1850,32 +1850,32 @@ msgstr "Remover trabalhos encerrados"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pausa tarefas de baixa prioridade"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pausa tarefas de prioridade normal"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pausa tarefas de alta prioridade"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Continua tarefas de baixa prioridade"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Continua tarefas de prioridade normal"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Continua tarefas de alta prioridade"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2155,10 +2155,6 @@ msgstr "Especial"
|
||||
msgid "Search"
|
||||
msgstr "Busca"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Pasta de Download"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Tem certeza de que quer encerrar o SABnzbd?"
|
||||
@@ -2445,10 +2441,6 @@ msgstr "Nome do servidor / DNS Lookup"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2934,6 +2926,11 @@ msgstr ""
|
||||
"Local para armazenar downloads concluídos, totalmente processados.<br "
|
||||
"/><i>Pode ser anulado por categorias definidas pelo usuário.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3016,6 +3013,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Pastas de Sistema"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Pasta Administrativa"
|
||||
@@ -3717,6 +3718,10 @@ msgstr "Ler Feed"
|
||||
msgid "Force Download"
|
||||
msgstr "Forçar Download"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4081,20 +4086,6 @@ msgstr "Pasta/Caminho"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Ordenação de Séries"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Ativar a ordenação de TV"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Modelo do padrão"
|
||||
@@ -4103,23 +4094,10 @@ msgstr "Modelo do padrão"
|
||||
msgid "Clear"
|
||||
msgstr "Limpar"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Predefinições"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Ativar a ordenação de filmes"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Categorias Afetadas"
|
||||
@@ -4136,26 +4114,6 @@ msgstr "Modelo"
|
||||
msgid "Result"
|
||||
msgstr "Resultado"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Pasta Da Temporada"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Pasta Da Temporada"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Pasta Do Episódio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Pasta Do Episódio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Título"
|
||||
@@ -4204,10 +4162,6 @@ msgstr "Nome.Episódio"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Nome_Episódio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Extensão do arquivo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Extensão"
|
||||
@@ -4249,8 +4203,16 @@ msgid "Sort String"
|
||||
msgstr "String de ordenação"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Rótulo multi-parte"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4260,26 +4222,13 @@ msgstr "Em pastas"
|
||||
msgid "No folders"
|
||||
msgstr "Sem pastas"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Ordenação por data"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Ativar a ordenação por data"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Pasta do Nome do Show"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Pastas Ano-Mês"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Pastas Diárias"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4310,6 +4259,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4548,6 +4560,10 @@ msgstr "Confirmar Exclusões do Histórico"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Por quanto tempo ou até quando você quer pausar? (em Inglês!)"
|
||||
@@ -4722,8 +4738,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Falha ao renomear: %s para %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
249
po/main/ro.po
249
po/main/ro.po
@@ -1,17 +1,17 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Eduard Baniceru <war4peace@gmail.com>, 2021
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Romanian (https://www.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -38,19 +38,13 @@ msgstr "Pornirea interfeţei-web nereuşită"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Nu se poate găsi şablon web:%s, se încearcă şablon standard"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc dezactivat: nu s-a găsit o versiune corectă! (Găsită v%s, se "
|
||||
"așteaptă v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"Modul SABYenc... NEgăsit! Se așteaptă v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools dezactivat: nu s-a găsit o versiune corectă! (Găsită v%s, se "
|
||||
"așteaptă v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -160,11 +154,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -435,7 +424,6 @@ msgstr ""
|
||||
"Trebuie să seta-ţi lățimea de bandă maximă înainte de a seta o limită de "
|
||||
"viteză."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Nu mă pot conecta la serverul %s [%s]"
|
||||
@@ -459,20 +447,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Nu am putu inițializa %s@%s din cauza următorului motiv: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Prea multe conexiuni la serverul %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Prea multe conexiuni la serverul %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Partajare cont probabilă"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Autentificare nereuşită la serverul %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Autentificare nereuşită la serverul %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -664,7 +651,7 @@ msgstr ""
|
||||
"Cheie API incorectă, Folosiţi cheia api din Configurare->General în "
|
||||
"programul dumneavoastră terţ:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autentificare nereuşită, verifică nume utilizator/parolă."
|
||||
|
||||
@@ -803,6 +790,18 @@ msgstr "[%s] Comanda din build_command este nedefinită."
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Scriptul Python „%s” nu are permisiuni de executare (+x)"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sortare Seriale"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Sortare Dată"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Rulare script"
|
||||
@@ -1878,32 +1877,32 @@ msgstr "Elimină sarcinile finalizate"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Întrerupte sarcinile cu prioritate redusă"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Întrerupe sarcinile cu prioritate normală"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Întrerupe sarcinile cu prioritate ridicată"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Reia sarcinile cu prioritate redusă"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Reia sarcinile cu prioritate normală"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Reia sarcinile cu prioritate ridicată"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2183,10 +2182,6 @@ msgstr "Special"
|
||||
msgid "Search"
|
||||
msgstr "Caută"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Dosar Descărcare"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Sunteţi sigur că doriţi să inchideţi SABnzbd?"
|
||||
@@ -2473,10 +2468,6 @@ msgstr "Server de nume/Căutare DNS"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2962,6 +2953,11 @@ msgstr ""
|
||||
"Locație pentru stocare , a descărcărilor procesate complet.<br /><i>Poate fi"
|
||||
" suprascris de categoriile definite de utilizator.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3042,6 +3038,10 @@ msgstr "Fişier ce conţine parole pentru fişiere RAR encriptate."
|
||||
msgid "System Folders"
|
||||
msgstr "Dosare Sistem"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Dosar Administrativ"
|
||||
@@ -3747,6 +3747,10 @@ msgstr "Citeşte Flux"
|
||||
msgid "Force Download"
|
||||
msgstr "Descărcare Forţată"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4110,20 +4114,6 @@ msgstr "Dosar/Cale"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Sortare Seriale"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Activează Sortare TV"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Model Cheie"
|
||||
@@ -4132,23 +4122,10 @@ msgstr "Model Cheie"
|
||||
msgid "Clear"
|
||||
msgstr "Şterge"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Presetări"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Activează Sortare Filme"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Categorii Afectate"
|
||||
@@ -4165,26 +4142,6 @@ msgstr "Șablon"
|
||||
msgid "Result"
|
||||
msgstr "Rezultat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Dosar Sezon"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Dosar Sezon"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Dosar Episod"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Dosar Episod"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Titlu"
|
||||
@@ -4233,10 +4190,6 @@ msgstr "Nume.Episod"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Nume_Episod"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Extensie fișier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Extensie"
|
||||
@@ -4278,8 +4231,16 @@ msgid "Sort String"
|
||||
msgstr "Şir Caractere Sortare"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Etichetă Multi-părţi"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4289,26 +4250,13 @@ msgstr "În dosare"
|
||||
msgid "No folders"
|
||||
msgstr "Fără dosare"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Sortare Dată"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Activează Sortare Dată"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Arată Nume dosar"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Dosar An-Lună"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Dosare Zilnice"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4339,6 +4287,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Toate"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4578,6 +4589,10 @@ msgstr "Confirmă Ştergere Istoric"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Cât timp sau până când doriți să întrerupeți? (în Engleză!)"
|
||||
@@ -4753,8 +4768,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Redenumire:%s în %s nereuşită"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
242
po/main/ru.po
242
po/main/ru.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Russian (https://www.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -39,15 +39,10 @@ msgstr ""
|
||||
"Не удаётся найти шаблон веб-интерфейса: %s. Выполняется попытка использовать"
|
||||
" стандартный шаблон"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -154,11 +149,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -417,7 +407,6 @@ msgstr "Приостановлено"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Не удаётся подключиться к серверу %s [%s]"
|
||||
@@ -441,20 +430,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Возможно, учётная запись используется где-то ещё"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Ошибка входа на сервер %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Ошибка входа на сервер %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -646,7 +634,7 @@ msgstr ""
|
||||
"Неправильный ключ API. Используйте в сторонней программе ключ API из раздела"
|
||||
" «Настройка -> Общие»:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Ошибка проверки подлинности. Проверьте имя и пароль."
|
||||
|
||||
@@ -781,6 +769,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Сортировка сериалов"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Сортировка даты"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Запуск сценария"
|
||||
@@ -1846,32 +1846,32 @@ msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr ""
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2151,10 +2151,6 @@ msgstr "Особая"
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Каталог загрузки"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Остановить SABnzbd?"
|
||||
@@ -2441,10 +2437,6 @@ msgstr ""
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2930,6 +2922,11 @@ msgstr ""
|
||||
"Место для сохранения готовых, полностью обработанных загрузок.<br /><i>Можно"
|
||||
" переопределить в пользовательских категориях.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3012,6 +3009,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Системные папки"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Административная папка"
|
||||
@@ -3708,6 +3709,10 @@ msgstr "Прочитать ленту"
|
||||
msgid "Force Download"
|
||||
msgstr "Загрузить принудительно"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4078,20 +4083,6 @@ msgstr "Папка или путь"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Сортировка сериалов"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Использовать сортировку по ТВ-шоу"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Ключи шаблона"
|
||||
@@ -4100,23 +4091,10 @@ msgstr "Ключи шаблона"
|
||||
msgid "Clear"
|
||||
msgstr "Очистить"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Готовые шаблоны"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Использовать сортировку по фильмам"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Задействованные категории"
|
||||
@@ -4133,26 +4111,6 @@ msgstr "Шаблон"
|
||||
msgid "Result"
|
||||
msgstr "Результат"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Сезон Папка"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Сезон Папка"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Эпизод Папка"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Эпизод Папка"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Название"
|
||||
@@ -4201,10 +4159,6 @@ msgstr "Название.эпизода"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Название_эпизода"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Расширение файла"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Расширение"
|
||||
@@ -4246,8 +4200,16 @@ msgid "Sort String"
|
||||
msgstr "Строка сортировки"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Обозначение нескольких частей"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4257,26 +4219,13 @@ msgstr "В папках"
|
||||
msgid "No folders"
|
||||
msgstr "Без папок"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Сортировка даты"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Использовать сортировку по дате"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Папка с названием сериала"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Папки с годом и месяцем"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Папки по дням"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4307,6 +4256,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Все"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4544,6 +4556,10 @@ msgstr "Подтвердите удаление журнала"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr ""
|
||||
@@ -4720,8 +4736,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Не удалось переименовать: %s в %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
244
po/main/sr.po
244
po/main/sr.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Serbian (https://www.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -37,15 +37,10 @@ msgstr "Neuspešno pokretanje web interfejsa"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Немогуће наћи веб модел: %s, програм покушава са стандардним моделом"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -152,11 +147,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -416,7 +406,6 @@ msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
"Требате да поставите максимални проток пре него што поставите ограничење"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Neuspešno povezivanje na server %s[%s]"
|
||||
@@ -440,20 +429,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Neuspešna inicijalizacija %s@%s iz razloga: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Previše konekcija ka serveru %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Previše konekcija ka serveru %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Moguće deljenje naloga"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Неуспешно пријављивање на сервер %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Неуспешно пријављивање на сервер %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -643,7 +631,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"API кључ је погрешан, унети у спољни програм API кључ из Подешавања->Опште:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Аутентификација погрешна, проверити име/лозинку."
|
||||
|
||||
@@ -776,6 +764,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Сортирање серије"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Сређивање датумом"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Покретање скрипта"
|
||||
@@ -1838,32 +1838,32 @@ msgstr "Ukloni završene poslove"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pauziraj poslove sa niskim prioritetom"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pauziraj poslove sa normalnim prioritetom"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pauziraj poslove sa visokim prioritetom"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Настави радови са ниским приоритетом"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Настави радови са нормалним приоритетом"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Настави радови са високим приоритетом"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2143,10 +2143,6 @@ msgstr "Посебно"
|
||||
msgid "Search"
|
||||
msgstr "Претрага"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Фасцикла преузимања"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Da li ste sigurni da želite ugasiti SABnzbd?"
|
||||
@@ -2433,10 +2429,6 @@ msgstr "Nameserver/DNS Pretraga"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2916,6 +2908,11 @@ msgstr ""
|
||||
"Смештај завршених, процесираних преузимања.<br /><i>Може се заобићи у "
|
||||
"дефинисаним категоријама.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -2997,6 +2994,10 @@ msgstr "Датотека са свим лозинкама за шифрован
|
||||
msgid "System Folders"
|
||||
msgstr "Системске фасцикле"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Фасцикла Администратора"
|
||||
@@ -3693,6 +3694,10 @@ msgstr "Читај фид"
|
||||
msgid "Force Download"
|
||||
msgstr "Натерај преузимање"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4056,20 +4061,6 @@ msgstr "Фасцикла/Путања"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Сортирање серије"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Упали сортирање ТВ-а"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Модел кључа"
|
||||
@@ -4078,23 +4069,10 @@ msgstr "Модел кључа"
|
||||
msgid "Clear"
|
||||
msgstr "Очисти"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Предподешавања"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Упали сортирање филма"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Погођене категорије"
|
||||
@@ -4111,26 +4089,6 @@ msgstr "Модел"
|
||||
msgid "Result"
|
||||
msgstr "Резултат"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Фасцикла сезоне"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Фасцикла сезоне"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Фасцикла епизоде"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Фасцикла епизоде"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Наслов"
|
||||
@@ -4179,10 +4137,6 @@ msgstr "Име.Епизоде"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Име_епизоде"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Екстензија датотеке"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Екстензија"
|
||||
@@ -4224,8 +4178,16 @@ msgid "Sort String"
|
||||
msgstr "Уреди низ"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Етикете више-партија"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4235,26 +4197,13 @@ msgstr "У фасциклама"
|
||||
msgid "No folders"
|
||||
msgstr "Нема фасцикле"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Сређивање датумом"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Упали сређивање по датуму"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Фасцикла Име Серије"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "Фасцикле Година-Месец"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Дневне фасцикле"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4285,6 +4234,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Све"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4523,6 +4535,10 @@ msgstr "Потврда брисања хронологије"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Koliko dugo ili dokle želite da pauzirate? (na engleskom!)"
|
||||
@@ -4697,8 +4713,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Неуспешно преименовање : %s у %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
244
po/main/sv.po
244
po/main/sv.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Swedish (https://www.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -37,15 +37,10 @@ msgstr "Det gick inte att starta webbgränssnittet"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Hittar inte webbmall: %s, försöker med standardmall"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -152,11 +147,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -416,7 +406,6 @@ msgstr "Pausad"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "Du måste ange maximal bandbredd innan du kan ange bandbreddsgräns"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Kan ej ansluta till server %s [%s]"
|
||||
@@ -440,20 +429,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Misslyckades att initiera %s@%s med orsak %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "För många anslutningar till servern %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "För många anslutningar till servern %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Misstänkt kontodelning"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Det gick inte att logga in på server %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Det gick inte att logga in på server %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -645,7 +633,7 @@ msgstr ""
|
||||
"API-nyckel felaktig, använd api-nyckeln från Konfiguration-> Allmänt i ditt "
|
||||
"tredjepartsprogram:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autentisering misslyckades, kontrollera användarnamn och lösenord."
|
||||
|
||||
@@ -778,6 +766,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Seriesortering"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Datum sortering"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "Kör skript"
|
||||
@@ -1844,32 +1844,32 @@ msgstr "Ta bort färdiga jobb"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "Pausa lågprioriterade jobb"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "Pausa normalprioriterade jobb"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "Pausa högprioriterade jobb"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "Återuppta lågprioriterade jobb"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "Återuppta normalprioriterade jobb"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "Återuppta högprioriterade jobb"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2149,10 +2149,6 @@ msgstr "Speciell"
|
||||
msgid "Search"
|
||||
msgstr "Sök"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "Temporär nedladdningmapp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "Är du säker på att du vill stänga av SABnzbd?"
|
||||
@@ -2439,10 +2435,6 @@ msgstr "Namnserver /DNS Lookup"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2927,6 +2919,11 @@ msgstr ""
|
||||
"Plats för att lagra bearbetade och färdiga nedladdningar.<br /><i>Kan "
|
||||
"åsidosättas av användar-definierade kategorier.</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -3008,6 +3005,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systemmappar"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativ mapp"
|
||||
@@ -3706,6 +3707,10 @@ msgstr "Läs flöde"
|
||||
msgid "Force Download"
|
||||
msgstr "Tvinga nedladdning"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4069,20 +4074,6 @@ msgstr "Mapp/Sökväg"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "Seriesortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "Aktivera TV sortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "Hjälp till Sorteringssträng"
|
||||
@@ -4091,23 +4082,10 @@ msgstr "Hjälp till Sorteringssträng"
|
||||
msgid "Clear"
|
||||
msgstr "Rensa"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "Förinställningar"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "Aktivera filmsortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "Påverkade kategorier"
|
||||
@@ -4124,26 +4102,6 @@ msgstr "Mönster"
|
||||
msgid "Result"
|
||||
msgstr "Resultat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 Säsongsmapp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 Säsongsmapp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 Episodmapp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 Episodmapp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
@@ -4192,10 +4150,6 @@ msgstr "Episod.Namn"
|
||||
msgid "Episode_Name"
|
||||
msgstr "Episod_Namn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "Filändelse"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "Filändelse"
|
||||
@@ -4237,8 +4191,16 @@ msgid "Sort String"
|
||||
msgstr "Sorteringssträng"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "Multi-del etikett"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4248,26 +4210,13 @@ msgstr "In mapp"
|
||||
msgid "No folders"
|
||||
msgstr "Ingen mapp"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "Datum sortering"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "Aktivera datumssortering"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "Visa Namn på mapp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "År-Månads mappar"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "Dagliga mappar"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4298,6 +4247,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "Alla"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4535,6 +4547,10 @@ msgstr "Bekräfta Historik-borttagningar"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "Hur lång tid eller tills då vill du pausa? (på engelska!)"
|
||||
@@ -4711,8 +4727,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Det gick inte att döpa om: %s till %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
246
po/main/zh_CN.po
246
po/main/zh_CN.po
@@ -1,16 +1,16 @@
|
||||
# SABnzbd Translation Template file MAIN
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Chinese (China) (https://www.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -37,16 +37,11 @@ msgstr "web 界面启动失败"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "无法找到 web 模板: %s,正在尝试标准模板"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid "SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr "SABYenc 已禁用:未找到正确的版本!(找到 v%s,要求 v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr "SABYenc 模块... 未找到!要求 v%s - https://sabnzbd.org/sabyenc"
|
||||
"SABCTools disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr "SABCTools 已禁用:未找到正确的版本!(找到 v%s,要求 v%s)"
|
||||
|
||||
#. Error message
|
||||
#: SABnzbd.py
|
||||
@@ -150,11 +145,6 @@ msgstr ""
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
@@ -413,7 +403,6 @@ msgstr "已暂停"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "设置带宽限制前,您必须设置最大带宽值"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "无法连接到服务器 %s [%s]"
|
||||
@@ -437,20 +426,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "无法初始化 %s@%s,原因为: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "服务器 %s 连接数过多"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "服务器 %s 连接数过多 [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "可能存在账号共享"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "无法登录服务器 %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "无法登录服务器 %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -638,7 +626,7 @@ msgid ""
|
||||
"program:"
|
||||
msgstr "API Key 不正确,请在第三方程序中使用“配置”->“常规”中的 api key:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/newswrapper.py, sabnzbd/utils/servertests.py
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "身份认证失败,请检查用户名/密码。"
|
||||
|
||||
@@ -771,6 +759,18 @@ msgstr ""
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Python 脚本 \"%s\" 不具有执行 (+x) 权限"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "TV 排序"
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "日期排序"
|
||||
|
||||
#: sabnzbd/misc.py, sabnzbd/skintext.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "电影排序"
|
||||
|
||||
#: sabnzbd/newsunpack.py, sabnzbd/postproc.py
|
||||
msgid "Running script"
|
||||
msgstr "正在执行脚本"
|
||||
@@ -1831,32 +1831,32 @@ msgstr "移除已完成任务"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause low prioirty jobs"
|
||||
msgid "Pause low priority jobs"
|
||||
msgstr "暂停低优先级任务"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause normal prioirty jobs"
|
||||
msgid "Pause normal priority jobs"
|
||||
msgstr "暂停常规优先级任务"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pause high prioirty jobs"
|
||||
msgid "Pause high priority jobs"
|
||||
msgstr "暂停高优先级任务"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume low prioirty jobs"
|
||||
msgid "Resume low priority jobs"
|
||||
msgstr "继续低优先级任务"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume normal prioirty jobs"
|
||||
msgid "Resume normal priority jobs"
|
||||
msgstr "继续常规优先级任务"
|
||||
|
||||
#. Config->Scheduler
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Resume high prioirty jobs"
|
||||
msgid "Resume high priority jobs"
|
||||
msgstr "继续高优先级任务"
|
||||
|
||||
#. Config->Scheduler
|
||||
@@ -2136,10 +2136,6 @@ msgstr "特殊"
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Download Dir"
|
||||
msgstr "下载目录"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to shutdown SABnzbd?"
|
||||
msgstr "是否确定要关闭 SABnzbd?"
|
||||
@@ -2426,10 +2422,6 @@ msgstr "域名服务器 / DNS 查询"
|
||||
msgid "Download speed limited by"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "CPU"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Disk speed"
|
||||
msgstr ""
|
||||
@@ -2889,6 +2881,11 @@ msgid ""
|
||||
"overruled by user-defined categories.</i>"
|
||||
msgstr "存储完成且已完全处理的下载数据的位置。<br /><i>可以通过用户定义分类额外调整。</i>"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Use Sorting to automatically organize and rename your completed downloads."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Free Space for Completed Download Folder"
|
||||
msgstr ""
|
||||
@@ -2966,6 +2963,10 @@ msgstr "包含要对加密 RAR 文件进行尝试的所有密码的文件。"
|
||||
msgid "System Folders"
|
||||
msgstr "系统文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "管理文件夹"
|
||||
@@ -3644,6 +3645,10 @@ msgstr "读取 Feed"
|
||||
msgid "Force Download"
|
||||
msgstr "强制下载"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "应用过滤器"
|
||||
|
||||
#. Config->RSS edit button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Edit"
|
||||
@@ -4008,20 +4013,6 @@ msgstr "文件夹/路径"
|
||||
msgid "Indexer Categories / Groups"
|
||||
msgstr "索引 Categories / Groups"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Select at least 1 category."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Series Sorting"
|
||||
msgstr "TV 排序"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable TV Sorting"
|
||||
msgstr "启用 TV 排序"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Pattern Key"
|
||||
msgstr "匹配符释义"
|
||||
@@ -4030,23 +4021,10 @@ msgstr "匹配符释义"
|
||||
msgid "Clear"
|
||||
msgstr "清除"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Apply filters"
|
||||
msgstr "应用过滤器"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Presets"
|
||||
msgstr "预设"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Movie Sorting"
|
||||
msgstr "电影排序"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Movie Sorting"
|
||||
msgstr "启用电影排序"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Categories"
|
||||
msgstr "影响分类"
|
||||
@@ -4063,26 +4041,6 @@ msgstr "匹配"
|
||||
msgid "Result"
|
||||
msgstr "结果"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Season Folder"
|
||||
msgstr "1x05 季度文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Season Folder"
|
||||
msgstr "S01E05 季度文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "1x05 Episode Folder"
|
||||
msgstr "1x05 剧集文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "S01E05 Episode Folder"
|
||||
msgstr "S01E05 剧集文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Title"
|
||||
msgstr "标题"
|
||||
@@ -4131,10 +4089,6 @@ msgstr "集.名"
|
||||
msgid "Episode_Name"
|
||||
msgstr "集_名"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "File Extension"
|
||||
msgstr "文件扩展名"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Extension"
|
||||
msgstr "扩展名"
|
||||
@@ -4176,8 +4130,16 @@ msgid "Sort String"
|
||||
msgstr "排序字串"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Multi-part label"
|
||||
msgstr "多段标记"
|
||||
msgid "Multi-part Label"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Season folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In folders"
|
||||
@@ -4187,26 +4149,13 @@ msgstr "分文件夹"
|
||||
msgid "No folders"
|
||||
msgstr "不分文件夹"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/skintext.py, sabnzbd/sorting.py
|
||||
msgid "Date Sorting"
|
||||
msgstr "日期排序"
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Job Name as Filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Date Sorting"
|
||||
msgstr "启用日期排序"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Name folder"
|
||||
msgstr "节目名称文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Year-Month Folders"
|
||||
msgstr "年-月文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Daily Folders"
|
||||
msgstr "每天文件夹"
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
||||
#. Note for title expression in Sorting that does case adjustment
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4237,6 +4186,69 @@ msgstr ""
|
||||
msgid "GuessIt_Property"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Minimum Filesize"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Affected Job Types"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "All"
|
||||
msgstr "全部"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Series with air dates"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Movies"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Other / Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"<p>Use Sorters to automatically organize your completed downloads. For "
|
||||
"example, put all episodes from a series in a season-specific folder. Or, put"
|
||||
" movies in a folder named after the movie.</p><p>Sorters are tried in order "
|
||||
"of appearance and can be reordered by dragging and dropping.<br/>The first "
|
||||
"active sorter that matches both the affected category and job type is "
|
||||
"applied.</p><p>More options are available when Advanced Settings is "
|
||||
"checked.<br/>Detailed information can be found on the Wiki.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Add Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Remove Sorter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Test Data"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Quick start"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all episodes in the \"tv\" category to a show-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Move and rename all movies in the \"movies\" category to a movie-specific "
|
||||
"folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Rarely used options. For their meaning and explanation, click on the Help "
|
||||
@@ -4472,6 +4484,10 @@ msgstr "确认历史删除"
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Shift+Arrow key: Browse Queue and History pages"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "How long or untill when do you want to pause? (in English!)"
|
||||
msgstr "您希望在多久之后/什么时候暂停? (用英语作答!)"
|
||||
@@ -4644,8 +4660,8 @@ msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "重命名失败: %s 为 %s"
|
||||
msgid "Failed to rename %s to %s"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/sorting.py
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: team@sabnzbd.org\n"
|
||||
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\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://www.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Danish (https://www.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2020
|
||||
# reloxx13 <reloxx@interia.pl>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: reloxx13 <reloxx@interia.pl>, 2022\n"
|
||||
"Language-Team: German (https://www.transifex.com/sabnzbd/teams/111101/de/)\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"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -8,10 +8,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\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://www.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Finnish (https://www.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -8,10 +8,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Fred L <88com88@gmail.com>, 2021\n"
|
||||
"Language-Team: French (https://www.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -8,10 +8,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: ION, 2021\n"
|
||||
"Language-Team: Hebrew (https://www.transifex.com/sabnzbd/teams/111101/he/)\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"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\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://www.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2021\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Polish (https://www.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Romanian (https://www.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Russian (https://www.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Serbian (https://www.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Swedish (https://www.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# SABnzbd Translation Template file NSIS
|
||||
# Copyright 2007-2022 The SABnzbd-Team
|
||||
# Copyright 2007-2023 The SABnzbd-Team
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
@@ -7,10 +7,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-4.0.0Beta2\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Chinese (China) (https://www.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -1,46 +1,46 @@
|
||||
# Main requirements
|
||||
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
|
||||
sabyenc3==5.4.4
|
||||
sabctools==7.0.1
|
||||
cheetah3==3.2.6.post1
|
||||
cffi==1.15.1
|
||||
pycparser==2.21
|
||||
feedparser==6.0.10
|
||||
configobj==5.0.6
|
||||
configobj==5.0.8
|
||||
cheroot==9.0.0
|
||||
six==1.16.0
|
||||
cherrypy==18.8.0
|
||||
jaraco.functools==3.5.2
|
||||
jaraco.collections==3.8.0
|
||||
jaraco.functools==3.6.0
|
||||
jaraco.collections==4.1.0
|
||||
jaraco.text==3.8.1 # Newer version introduces irrelevant extra dependencies
|
||||
jaraco.classes==3.2.3
|
||||
jaraco.context==4.2.0
|
||||
more-itertools==9.0.0
|
||||
zc.lockfile==2.0
|
||||
jaraco.context==4.3.0
|
||||
more-itertools==9.1.0
|
||||
zc.lockfile==3.0.post1
|
||||
python-dateutil==2.8.2
|
||||
tempora==5.1.0
|
||||
pytz==2022.6
|
||||
tempora==5.2.2
|
||||
pytz==2023.3
|
||||
sgmllib3k==1.0.0
|
||||
portend==3.1.0
|
||||
chardet==5.1.0
|
||||
PySocks==1.7.1
|
||||
puremagic==1.14
|
||||
guessit==3.5.0
|
||||
puremagic==1.15
|
||||
guessit==3.7.1
|
||||
babelfish==0.6.0
|
||||
rebulk==3.1.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==38.0.4
|
||||
cryptography==40.0.2
|
||||
|
||||
# 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
|
||||
ujson==5.6.0
|
||||
ujson==5.7.0
|
||||
|
||||
# Windows system integration
|
||||
pywin32==305; sys_platform == 'win32'
|
||||
pywin32==306; sys_platform == 'win32'
|
||||
|
||||
# macOS system calls
|
||||
pyobjc==9.0; sys_platform == 'darwin'
|
||||
pyobjc==9.1.1; sys_platform == 'darwin'
|
||||
|
||||
# Linux notifications
|
||||
notify2==0.3.1; sys_platform != 'win32' and sys_platform != 'darwin'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -123,7 +123,6 @@ import sabnzbd.utils.ssdp
|
||||
# Storage for the threads, variables are filled during initialization
|
||||
ArticleCache: sabnzbd.articlecache.ArticleCache
|
||||
Assembler: sabnzbd.assembler.Assembler
|
||||
Decoder: sabnzbd.decoder.Decoder
|
||||
Downloader: sabnzbd.downloader.Downloader
|
||||
PostProcessor: sabnzbd.postproc.PostProcessor
|
||||
NzbQueue: sabnzbd.nzbqueue.NzbQueue
|
||||
@@ -162,7 +161,7 @@ WIN_SERVICE = None # Instance of our Win32 Service Class
|
||||
BROWSER_URL = None
|
||||
|
||||
CERTIFICATE_VALIDATION = True
|
||||
NO_DOWNLOADING = False # When essentials are missing (SABYenc/par2/unrar)
|
||||
NO_DOWNLOADING = False # When essentials are missing (SABCTools/par2/unrar)
|
||||
|
||||
WEB_DIR = None
|
||||
WEB_DIR_CONFIG = None
|
||||
@@ -190,12 +189,16 @@ DOWNLOAD_DIR_SPEED = 0
|
||||
COMPLETE_DIR_SPEED = 0
|
||||
INTERNET_BANDWIDTH = 0
|
||||
|
||||
# Record of HTTPS config files at startup
|
||||
CONFIG_BACKUP_HTTPS_OK = []
|
||||
|
||||
# Rendering of original command line arguments in Config
|
||||
CMDLINE = " ".join(['"%s"' % arg for arg in sys.argv])
|
||||
|
||||
__INITIALIZED__ = False
|
||||
__SHUTTING_DOWN__ = False
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Signal Handler
|
||||
##############################################################################
|
||||
@@ -228,6 +231,8 @@ def initialize(pause_downloader=False, clean_up=False, repair=0):
|
||||
|
||||
sabnzbd.__SHUTTING_DOWN__ = False
|
||||
|
||||
sys.setswitchinterval(cfg.switchinterval())
|
||||
|
||||
# Set global database connection for Web-UI threads
|
||||
cherrypy.engine.subscribe("start_thread", get_db_connection)
|
||||
|
||||
@@ -286,6 +291,11 @@ def initialize(pause_downloader=False, clean_up=False, repair=0):
|
||||
elif cfg.auto_sort() == "1":
|
||||
cfg.auto_sort.set("avg_age asc")
|
||||
|
||||
# Convert old series/date/movie sorters
|
||||
if not cfg.sorters_converted():
|
||||
misc.convert_sorter_settings()
|
||||
cfg.sorters_converted.set(True)
|
||||
|
||||
# Add hostname to the whitelist
|
||||
if not cfg.host_whitelist():
|
||||
cfg.host_whitelist.set(socket.gethostname())
|
||||
@@ -300,7 +310,6 @@ def initialize(pause_downloader=False, clean_up=False, repair=0):
|
||||
sabnzbd.BPSMeter = sabnzbd.bpsmeter.BPSMeter()
|
||||
sabnzbd.NzbQueue = sabnzbd.nzbqueue.NzbQueue()
|
||||
sabnzbd.Downloader = sabnzbd.downloader.Downloader(sabnzbd.BPSMeter.read() or pause_downloader)
|
||||
sabnzbd.Decoder = sabnzbd.decoder.Decoder()
|
||||
sabnzbd.Assembler = sabnzbd.assembler.Assembler()
|
||||
sabnzbd.PostProcessor = sabnzbd.postproc.PostProcessor()
|
||||
sabnzbd.DirScanner = sabnzbd.dirscanner.DirScanner()
|
||||
@@ -334,9 +343,6 @@ def start():
|
||||
logging.debug("Starting downloader")
|
||||
sabnzbd.Downloader.start()
|
||||
|
||||
logging.debug("Starting decoders")
|
||||
sabnzbd.Decoder.start()
|
||||
|
||||
logging.debug("Starting scheduler")
|
||||
sabnzbd.Scheduler.start()
|
||||
|
||||
@@ -392,11 +398,6 @@ def halt():
|
||||
except:
|
||||
pass
|
||||
|
||||
# Decoder handles join gracefully
|
||||
logging.debug("Stopping decoders")
|
||||
sabnzbd.Decoder.stop()
|
||||
sabnzbd.Decoder.join()
|
||||
|
||||
logging.debug("Stopping assembler")
|
||||
sabnzbd.Assembler.stop()
|
||||
try:
|
||||
@@ -481,9 +482,6 @@ def check_all_tasks():
|
||||
if not sabnzbd.Downloader.is_alive():
|
||||
logging.warning(T("Restarting because of crashed downloader"))
|
||||
return False
|
||||
if not sabnzbd.Decoder.is_alive():
|
||||
logging.warning(T("Restarting because of crashed decoder"))
|
||||
return False
|
||||
if not sabnzbd.Assembler.is_alive():
|
||||
logging.warning(T("Restarting because of crashed assembler"))
|
||||
return False
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -121,6 +121,8 @@ def _api_set_config(name, kwargs):
|
||||
kwargs["keyword"] = handle_rss_api(kwargs)
|
||||
elif kwargs.get("section") == "categories":
|
||||
kwargs["keyword"] = handle_cat_api(kwargs)
|
||||
elif kwargs.get("section") == "sorters":
|
||||
kwargs["keyword"] = handle_sorter_api(kwargs)
|
||||
else:
|
||||
res = config.set_config(kwargs)
|
||||
if not res:
|
||||
@@ -627,10 +629,10 @@ LOG_API_JSON_RE = re.compile(rb"'(apikey|api)': '[\w]+'", re.I)
|
||||
LOG_USER_RE = re.compile(rb"(user|username)\s?=\s?[\S]+", re.I)
|
||||
LOG_PASS_RE = re.compile(rb"(password)\s?=\s?[\S]+", re.I)
|
||||
LOG_INI_HIDE_RE = re.compile(
|
||||
rb"(email_pwd|email_account|email_to|pushover_token|pushover_userkey|pushbullet_apikey|prowl_apikey|growl_password|growl_server|IPv[4|6] address)\s?=\s?[\S]+",
|
||||
rb"(email_pwd|email_account|email_to|email_from|pushover_token|pushover_userkey|pushbullet_apikey|prowl_apikey|growl_password|growl_server|IPv[4|6] address)\s?=\s?[\S]+",
|
||||
re.I,
|
||||
)
|
||||
LOG_HASH_RE = re.compile(rb"([a-fA-F\d]{25})", re.I)
|
||||
LOG_HASH_RE = re.compile(rb"([a-zA-Z\d]{25})", re.I)
|
||||
|
||||
|
||||
def _api_showlog(name, kwargs):
|
||||
@@ -714,11 +716,10 @@ def _api_disconnect(name, kwargs):
|
||||
|
||||
def _api_eval_sort(name, kwargs):
|
||||
"""API: evaluate sorting expression"""
|
||||
name = kwargs.get("name", "")
|
||||
value = kwargs.get("value", "")
|
||||
title = kwargs.get("title")
|
||||
multipart = kwargs.get("movieextra", "")
|
||||
path = sabnzbd.sorting.eval_sort(value, title, name, multipart)
|
||||
sort_string = kwargs.get("sort_string", "")
|
||||
job_name = kwargs.get("job_name", "")
|
||||
multipart_label = kwargs.get("multipart_label", "")
|
||||
path = sabnzbd.sorting.eval_sort(sort_string, job_name, multipart_label)
|
||||
if path is None:
|
||||
return report(_MSG_NOT_IMPLEMENTED)
|
||||
else:
|
||||
@@ -1164,6 +1165,22 @@ def handle_server_api(kwargs):
|
||||
return name
|
||||
|
||||
|
||||
def handle_sorter_api(kwargs):
|
||||
"""Special handler for API-call 'set_config' [sorters]"""
|
||||
name = kwargs.get("keyword")
|
||||
if not name:
|
||||
name = kwargs.get("name")
|
||||
if not name:
|
||||
return None
|
||||
|
||||
sorter = config.get_config("sorters", name)
|
||||
if sorter:
|
||||
sorter.set_dict(kwargs)
|
||||
else:
|
||||
config.ConfigSorter(name, kwargs)
|
||||
return name
|
||||
|
||||
|
||||
def handle_rss_api(kwargs):
|
||||
"""Special handler for API-call 'set_config' [rss]"""
|
||||
name = kwargs.get("keyword")
|
||||
@@ -1243,7 +1260,6 @@ def build_status(calculate_performance: bool = False, skip_dashboard: bool = Fal
|
||||
sabnzbd.INTERNET_BANDWIDTH = round(internetspeed_future.result(), 1)
|
||||
|
||||
# How often did we delay?
|
||||
info["delayed_decoder"] = sabnzbd.BPSMeter.delayed_decoder
|
||||
info["delayed_assembler"] = sabnzbd.BPSMeter.delayed_assembler
|
||||
|
||||
# Dashboard: Speed and load of System
|
||||
@@ -1785,7 +1801,7 @@ def plural_to_single(kw, def_kw=""):
|
||||
def del_from_section(kwargs):
|
||||
"""Remove keyword in section"""
|
||||
section = kwargs.get("section", "")
|
||||
if section in ("servers", "rss", "categories"):
|
||||
if section in ("sorters", "servers", "rss", "categories"):
|
||||
keyword = kwargs.get("keyword")
|
||||
if keyword:
|
||||
item = config.get_config(section, keyword)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -26,7 +26,7 @@ from typing import Dict, List
|
||||
|
||||
import sabnzbd
|
||||
from sabnzbd.decorators import synchronized
|
||||
from sabnzbd.constants import GIGI, ANFO, MEBI, LIMIT_DECODE_QUEUE, MIN_DECODE_QUEUE
|
||||
from sabnzbd.constants import GIGI, ANFO, ASSEMBLER_WRITE_THRESHOLD
|
||||
from sabnzbd.nzbstuff import Article
|
||||
|
||||
# Operations on the article table are handled via try/except.
|
||||
@@ -41,9 +41,7 @@ class ArticleCache:
|
||||
self.__cache_size = 0
|
||||
self.__article_table: Dict[Article, bytes] = {} # Dict of buffered articles
|
||||
|
||||
# Limit for the decoder is based on the total available cache
|
||||
# so it can be larger on memory-rich systems
|
||||
self.decoder_cache_article_limit = 0
|
||||
self.assembler_write_trigger: int = 1
|
||||
|
||||
# On 32 bit we only allow the user to set 1GB
|
||||
# For 64 bit we allow up to 4GB, in case somebody wants that
|
||||
@@ -62,11 +60,14 @@ class ArticleCache:
|
||||
else:
|
||||
self.__cache_limit = min(limit, self.__cache_upper_limit)
|
||||
|
||||
# The decoder-limit should not be larger than 1/3th of the whole cache
|
||||
# Calculated in number of articles, assuming 1 article = 1MB max
|
||||
decoder_cache_limit = int(min(self.__cache_limit / 3 / MEBI, LIMIT_DECODE_QUEUE))
|
||||
# The cache should also not be too small
|
||||
self.decoder_cache_article_limit = max(decoder_cache_limit, MIN_DECODE_QUEUE)
|
||||
# Set assembler_write_trigger to be the equivalent of ASSEMBLER_WRITE_THRESHOLD %
|
||||
# of the total cache, assuming an article size of 750 000 bytes
|
||||
self.assembler_write_trigger = int(self.__cache_limit * ASSEMBLER_WRITE_THRESHOLD / 100 / 750_000) + 1
|
||||
|
||||
logging.debug(
|
||||
"Assembler trigger = %d",
|
||||
self.assembler_write_trigger,
|
||||
)
|
||||
|
||||
@synchronized(ARTICLE_COUNTER_LOCK)
|
||||
def reserve_space(self, data_size: int):
|
||||
@@ -92,9 +93,10 @@ class ArticleCache:
|
||||
# Register article for bookkeeping in case the job is deleted
|
||||
nzo.add_saved_article(article)
|
||||
|
||||
if article.lowest_partnum and not article.nzf.import_finished:
|
||||
# Write the first-fetched articles to disk
|
||||
# Otherwise the cache could overflow
|
||||
if article.lowest_partnum and not (article.nzf.import_finished or article.nzf.filename_checked):
|
||||
# Write the first-fetched articles to temporary file unless downloading
|
||||
# of the rest of the parts has started or filename is verified.
|
||||
# Otherwise the cache could overflow.
|
||||
self.__flush_article_to_disk(article, data)
|
||||
return
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -24,7 +24,6 @@ import queue
|
||||
import logging
|
||||
import re
|
||||
from threading import Thread
|
||||
import hashlib
|
||||
import ctypes
|
||||
from typing import Tuple, Optional, List
|
||||
|
||||
@@ -56,11 +55,8 @@ class Assembler(Thread):
|
||||
def process(self, nzo: NzbObject, nzf: Optional[NzbFile] = None, file_done: Optional[bool] = None):
|
||||
self.queue.put((nzo, nzf, file_done))
|
||||
|
||||
def queue_full(self):
|
||||
return self.queue.qsize() >= MAX_ASSEMBLER_QUEUE
|
||||
|
||||
def partial_nzf_in_queue(self, nzf: NzbFile):
|
||||
return (nzf.nzo, nzf, False) in self.queue.queue
|
||||
def queue_level(self) -> float:
|
||||
return self.queue.qsize() / MAX_ASSEMBLER_QUEUE
|
||||
|
||||
def run(self):
|
||||
while 1:
|
||||
@@ -78,9 +74,7 @@ class Assembler(Thread):
|
||||
self.diskspace_check(nzo, nzf)
|
||||
|
||||
# Prepare filepath
|
||||
filepath = nzf.prepare_filepath()
|
||||
|
||||
if filepath:
|
||||
if filepath := nzf.prepare_filepath():
|
||||
try:
|
||||
logging.debug("Decoding part of %s", filepath)
|
||||
self.assemble(nzo, nzf, file_done)
|
||||
@@ -170,9 +164,6 @@ class Assembler(Thread):
|
||||
1) Partial write: write what we have
|
||||
2) Nothing written before: write all
|
||||
"""
|
||||
# New hash-object needed?
|
||||
if not nzf.md5:
|
||||
nzf.md5 = hashlib.md5()
|
||||
|
||||
# We write large article-sized chunks, so we can safely skip the buffering of Python
|
||||
with open(nzf.filepath, "ab", buffering=0) as fout:
|
||||
@@ -191,7 +182,7 @@ class Assembler(Thread):
|
||||
# Could be empty in case nzo was deleted
|
||||
if data:
|
||||
fout.write(data)
|
||||
nzf.md5.update(data)
|
||||
nzf.update_crc32(article.crc32, len(data))
|
||||
article.on_disk = True
|
||||
else:
|
||||
logging.info("No data found when trying to write %s", article)
|
||||
@@ -207,7 +198,7 @@ class Assembler(Thread):
|
||||
# Final steps
|
||||
if file_done:
|
||||
set_permissions(nzf.filepath)
|
||||
nzf.md5sum = nzf.md5.digest()
|
||||
nzf.assembled = True
|
||||
|
||||
@staticmethod
|
||||
def check_encrypted_and_unwanted(nzo: NzbObject, nzf: NzbFile):
|
||||
@@ -373,8 +364,7 @@ def check_encrypted_and_unwanted_files(nzo: NzbObject, filepath: str) -> Tuple[b
|
||||
unwanted = somefile
|
||||
zf.close()
|
||||
del zf
|
||||
except:
|
||||
logging.info("Error during inspection of RAR-file %s", filepath)
|
||||
logging.debug("Traceback: ", exc_info=True)
|
||||
except rarfile.Error as e:
|
||||
logging.info("Error during inspection of RAR-file %s: %s", filepath, e)
|
||||
|
||||
return encrypted, unwanted
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -108,7 +108,6 @@ class BPSMeter:
|
||||
"timeline_total",
|
||||
"article_stats_tried",
|
||||
"article_stats_failed",
|
||||
"delayed_decoder",
|
||||
"delayed_assembler",
|
||||
"day_label",
|
||||
"end_of_day",
|
||||
@@ -147,7 +146,6 @@ class BPSMeter:
|
||||
self.article_stats_tried: Dict[str, Dict[str, int]] = {}
|
||||
self.article_stats_failed: Dict[str, Dict[str, int]] = {}
|
||||
|
||||
self.delayed_decoder: int = 0
|
||||
self.delayed_assembler: int = 0
|
||||
|
||||
self.day_label: str = time.strftime("%Y-%m-%d")
|
||||
@@ -288,7 +286,6 @@ class BPSMeter:
|
||||
self.day_total = {}
|
||||
|
||||
# Reset delayed counters so they don't go too high
|
||||
self.delayed_decoder = 0
|
||||
self.delayed_assembler = 0
|
||||
|
||||
# Check end of week and end of month
|
||||
@@ -434,40 +431,6 @@ class BPSMeter:
|
||||
# We record every second, but display at the user's refresh-rate
|
||||
return self.bps_list[::refresh_rate]
|
||||
|
||||
def get_stable_speed(self, timespan: int = 10) -> Optional[int]:
|
||||
"""See if there is a stable speed the last <timespan> seconds
|
||||
None: indicates it can't determine yet
|
||||
0: the speed was not stable during <timespan>
|
||||
Positive float: the speed was stable
|
||||
"""
|
||||
if len(self.bps_list) < timespan:
|
||||
return None
|
||||
|
||||
# Check if speed fell by more than 15%
|
||||
try:
|
||||
if self.bps_list[-1] / self.bps_list[-timespan] < 0.85:
|
||||
return 0
|
||||
except:
|
||||
pass
|
||||
|
||||
# Calculate the variance in the speed
|
||||
avg = sum(self.bps_list[-timespan:]) / timespan
|
||||
vari = 0
|
||||
for bps in self.bps_list[-timespan:]:
|
||||
vari += abs(bps - avg)
|
||||
vari = vari / timespan
|
||||
|
||||
try:
|
||||
# See if the variance is less than 5%
|
||||
if (vari / (self.bps / KIBI)) < 0.05:
|
||||
return avg
|
||||
else:
|
||||
return 0
|
||||
except:
|
||||
# Probably one of the values was 0
|
||||
pass
|
||||
return None
|
||||
|
||||
def reset_quota(self, force: bool = False):
|
||||
"""Check if it's time to reset the quota, optionally resuming
|
||||
Return True, when still paused or should be paused
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -47,6 +47,8 @@ from sabnzbd.constants import (
|
||||
DEF_COMPLETE_DIR,
|
||||
DEF_FOLDER_MAX,
|
||||
DEF_STD_WEB_COLOR,
|
||||
DEF_HTTPS_CERT_FILE,
|
||||
DEF_HTTPS_KEY_FILE,
|
||||
)
|
||||
|
||||
|
||||
@@ -257,10 +259,10 @@ configlock = OptionBool("misc", "config_lock", False)
|
||||
##############################################################################
|
||||
# One time trackers
|
||||
##############################################################################
|
||||
fixed_ports = OptionBool("misc", "fixed_ports", False)
|
||||
sched_converted = OptionBool("misc", "sched_converted", False)
|
||||
fixed_ports = OptionBool("misc", "fixed_ports", False, public=False)
|
||||
notified_new_skin = OptionNumber("misc", "notified_new_skin", 0)
|
||||
direct_unpack_tested = OptionBool("misc", "direct_unpack_tested", False)
|
||||
direct_unpack_tested = OptionBool("misc", "direct_unpack_tested", False, public=False)
|
||||
sorters_converted = OptionBool("misc", "sorters_converted", False, public=False)
|
||||
|
||||
|
||||
##############################################################################
|
||||
@@ -279,8 +281,8 @@ bandwidth_max = OptionStr("misc", "bandwidth_max")
|
||||
cache_limit = OptionStr("misc", "cache_limit")
|
||||
web_dir = OptionStr("misc", "web_dir", DEF_STD_WEB_DIR)
|
||||
web_color = OptionStr("misc", "web_color", DEF_STD_WEB_COLOR)
|
||||
https_cert = OptionDir("misc", "https_cert", "server.cert", create=False)
|
||||
https_key = OptionDir("misc", "https_key", "server.key", create=False)
|
||||
https_cert = OptionDir("misc", "https_cert", DEF_HTTPS_CERT_FILE, create=False)
|
||||
https_key = OptionDir("misc", "https_key", DEF_HTTPS_KEY_FILE, create=False)
|
||||
https_chain = OptionDir("misc", "https_chain", create=False)
|
||||
enable_https = OptionBool("misc", "enable_https", False)
|
||||
# 0=local-only, 1=nzb, 2=api, 3=full_api, 4=webui, 5=webui with login for external
|
||||
@@ -335,7 +337,7 @@ no_series_dupes = OptionNumber("misc", "no_series_dupes", 0)
|
||||
series_propercheck = OptionBool("misc", "series_propercheck", True)
|
||||
pause_on_pwrar = OptionNumber("misc", "pause_on_pwrar", 1)
|
||||
ignore_samples = OptionBool("misc", "ignore_samples", False)
|
||||
deobfuscate_final_filenames = OptionBool("misc", "deobfuscate_final_filenames", False)
|
||||
deobfuscate_final_filenames = OptionBool("misc", "deobfuscate_final_filenames", True)
|
||||
auto_sort = OptionStr("misc", "auto_sort")
|
||||
direct_unpack = OptionBool("misc", "direct_unpack", False)
|
||||
propagation_delay = OptionNumber("misc", "propagation_delay", 0)
|
||||
@@ -360,20 +362,20 @@ quota_resume = OptionBool("misc", "quota_resume", False)
|
||||
quota_period = OptionStr("misc", "quota_period", "m")
|
||||
|
||||
##############################################################################
|
||||
# Config - Sorting
|
||||
# Config - Sorting (OLD SORTER)
|
||||
##############################################################################
|
||||
enable_tv_sorting = OptionBool("misc", "enable_tv_sorting", False)
|
||||
tv_sort_string = OptionStr("misc", "tv_sort_string")
|
||||
tv_categories = OptionList("misc", "tv_categories", ["tv"])
|
||||
enable_tv_sorting = OptionBool("misc", "enable_tv_sorting", False, public=False)
|
||||
tv_sort_string = OptionStr("misc", "tv_sort_string", public=False)
|
||||
tv_categories = OptionList("misc", "tv_categories", ["tv"], public=False)
|
||||
|
||||
enable_movie_sorting = OptionBool("misc", "enable_movie_sorting", False)
|
||||
movie_sort_string = OptionStr("misc", "movie_sort_string")
|
||||
movie_sort_extra = OptionStr("misc", "movie_sort_extra", "-cd%1", strip=False)
|
||||
movie_categories = OptionList("misc", "movie_categories", ["movies"])
|
||||
enable_movie_sorting = OptionBool("misc", "enable_movie_sorting", False, public=False)
|
||||
movie_sort_string = OptionStr("misc", "movie_sort_string", public=False)
|
||||
movie_sort_extra = OptionStr("misc", "movie_sort_extra", "-cd%1", strip=False, public=False)
|
||||
movie_categories = OptionList("misc", "movie_categories", ["movies"], public=False)
|
||||
|
||||
enable_date_sorting = OptionBool("misc", "enable_date_sorting", False)
|
||||
date_sort_string = OptionStr("misc", "date_sort_string")
|
||||
date_categories = OptionList("misc", "date_categories", ["tv"])
|
||||
enable_date_sorting = OptionBool("misc", "enable_date_sorting", False, public=False)
|
||||
date_sort_string = OptionStr("misc", "date_sort_string", public=False)
|
||||
date_categories = OptionList("misc", "date_categories", ["tv"], public=False)
|
||||
|
||||
##############################################################################
|
||||
# Config - Scheduling and RSS
|
||||
@@ -414,6 +416,7 @@ 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)
|
||||
allow_old_ssl_tls = OptionBool("misc", "allow_old_ssl_tls", False)
|
||||
enable_season_sorting = OptionBool("misc", "enable_season_sorting", True)
|
||||
|
||||
# Text values
|
||||
rss_odd_titles = OptionList("misc", "rss_odd_titles", ["nzbindex.nl/", "nzbindex.com/", "nzbclub.com/"])
|
||||
@@ -434,7 +437,8 @@ host_whitelist = OptionList("misc", "host_whitelist", validation=all_lowercase)
|
||||
local_ranges = OptionList("misc", "local_ranges", protect=True)
|
||||
max_url_retries = OptionNumber("misc", "max_url_retries", 10, minval=1)
|
||||
downloader_sleep_time = OptionNumber("misc", "downloader_sleep_time", 10, minval=0)
|
||||
num_simd_decoders = OptionNumber("misc", "num_simd_decoders", 2, minval=1)
|
||||
receive_threads = OptionNumber("misc", "receive_threads", 2, minval=1)
|
||||
switchinterval = OptionNumber("misc", "switchinterval", 0.005, minval=0.001)
|
||||
ssdp_broadcast_interval = OptionNumber("misc", "ssdp_broadcast_interval", 15, minval=1, maxval=600)
|
||||
ext_rename_ignore = OptionList("misc", "ext_rename_ignore", validation=lower_case_ext)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -34,7 +34,15 @@ from urllib.parse import urlparse
|
||||
import configobj
|
||||
|
||||
import sabnzbd
|
||||
from sabnzbd.constants import CONFIG_VERSION, NORMAL_PRIORITY, DEFAULT_PRIORITY, CONFIG_BACKUP_FILES, DEF_INI_FILE
|
||||
from sabnzbd.constants import (
|
||||
CONFIG_VERSION,
|
||||
NORMAL_PRIORITY,
|
||||
DEFAULT_PRIORITY,
|
||||
CONFIG_BACKUP_FILES,
|
||||
CONFIG_BACKUP_HTTPS,
|
||||
DEF_INI_FILE,
|
||||
DEF_SORTER_RENAME_SIZE,
|
||||
)
|
||||
from sabnzbd.decorators import synchronized
|
||||
from sabnzbd.filesystem import clip_path, real_path, create_real_path, renamer, remove_file, is_writable
|
||||
|
||||
@@ -55,19 +63,29 @@ RE_PARAMFINDER = re.compile(r"""(?:'.*?')|(?:".*?")|(?:[^'",\s][^,]*)""")
|
||||
class Option:
|
||||
"""Basic option class, basic fields"""
|
||||
|
||||
def __init__(self, section: str, keyword: str, default_val: Any = None, add: bool = True, protect: bool = False):
|
||||
def __init__(
|
||||
self,
|
||||
section: str,
|
||||
keyword: str,
|
||||
default_val: Any = None,
|
||||
add: bool = True,
|
||||
public: bool = True,
|
||||
protect: bool = False,
|
||||
):
|
||||
"""Basic option
|
||||
`section` : single section for this option
|
||||
`keyword` : keyword in the section
|
||||
`default_val` : value returned when no value has been set
|
||||
`callback` : procedure to call when value is successfully changed
|
||||
`protect` : Do not allow setting via the API (specifically set_dict)
|
||||
`public` : if this value should be shown in API calls
|
||||
`protect` : do not allow setting via the API (specifically set_dict)
|
||||
"""
|
||||
self.__section = section
|
||||
self.__keyword: str = keyword
|
||||
self.__default_val: Any = default_val
|
||||
self.__value: Any = None
|
||||
self.__callback: Optional[Callable] = None
|
||||
self.__public: bool = public
|
||||
self.__protect = protect
|
||||
|
||||
# Add myself to the config dictionary
|
||||
@@ -84,8 +102,11 @@ class Option:
|
||||
def get_string(self) -> str:
|
||||
return str(self.get())
|
||||
|
||||
def get_dict(self, safe: bool = False) -> Dict[str, Any]:
|
||||
"""Return value a dictionary"""
|
||||
def get_dict(self, for_public_api: bool = False) -> Dict[str, Any]:
|
||||
"""Return value as a dictionary.
|
||||
Will not show non-public options if needed for the API"""
|
||||
if not self.__public and for_public_api:
|
||||
return {}
|
||||
return {self.__keyword: self.get()}
|
||||
|
||||
def set_dict(self, values: Dict[str, Any]):
|
||||
@@ -130,18 +151,19 @@ class OptionNumber(Option):
|
||||
self,
|
||||
section: str,
|
||||
keyword: str,
|
||||
default_val: Union[int, float] = 0,
|
||||
minval: Optional[int] = None,
|
||||
maxval: Optional[int] = None,
|
||||
default_val: float = 0,
|
||||
minval: Optional[float] = None,
|
||||
maxval: Optional[float] = None,
|
||||
validation: Optional[Callable] = None,
|
||||
add: bool = True,
|
||||
public: bool = True,
|
||||
protect: bool = False,
|
||||
):
|
||||
self.__minval: Optional[int] = minval
|
||||
self.__maxval: Optional[int] = maxval
|
||||
self.__minval: Optional[float] = minval
|
||||
self.__maxval: Optional[float] = maxval
|
||||
self.__validation: Optional[Callable] = validation
|
||||
self.__int: bool = isinstance(default_val, int)
|
||||
super().__init__(section, keyword, default_val, add=add, protect=protect)
|
||||
super().__init__(section, keyword, default_val, add=add, public=public, protect=protect)
|
||||
|
||||
def set(self, value: Any):
|
||||
"""set new value, limited by range"""
|
||||
@@ -171,8 +193,16 @@ class OptionNumber(Option):
|
||||
class OptionBool(Option):
|
||||
"""Boolean option class, always returns 0 or 1."""
|
||||
|
||||
def __init__(self, section: str, keyword: str, default_val: bool = False, add: bool = True, protect: bool = False):
|
||||
super().__init__(section, keyword, int(default_val), add=add, protect=protect)
|
||||
def __init__(
|
||||
self,
|
||||
section: str,
|
||||
keyword: str,
|
||||
default_val: bool = False,
|
||||
add: bool = True,
|
||||
public: bool = True,
|
||||
protect: bool = False,
|
||||
):
|
||||
super().__init__(section, keyword, int(default_val), add=add, public=public, protect=protect)
|
||||
|
||||
def set(self, value: Any):
|
||||
# Store the value as integer, easier to parse when reading the config.
|
||||
@@ -196,13 +226,15 @@ class OptionDir(Option):
|
||||
validation: Optional[Callable] = None,
|
||||
writable: bool = True,
|
||||
add: bool = True,
|
||||
public: bool = True,
|
||||
protect: bool = False,
|
||||
):
|
||||
self.__validation: Optional[Callable] = validation
|
||||
self.__root: str = "" # Base directory for relative paths
|
||||
self.__apply_permissions: bool = apply_permissions
|
||||
self.__create: bool = create
|
||||
self.__writable: bool = writable
|
||||
super().__init__(section, keyword, default_val, add=add)
|
||||
super().__init__(section, keyword, default_val, add=add, public=public, protect=protect)
|
||||
|
||||
def get(self) -> str:
|
||||
"""Return value, corrected for platform"""
|
||||
@@ -279,12 +311,13 @@ class OptionList(Option):
|
||||
default_val: Union[str, List, None] = None,
|
||||
validation: Optional[Callable] = None,
|
||||
add: bool = True,
|
||||
public: bool = True,
|
||||
protect: bool = False,
|
||||
):
|
||||
self.__validation: Optional[Callable] = validation
|
||||
if default_val is None:
|
||||
default_val = []
|
||||
super().__init__(section, keyword, default_val, add=add, protect=protect)
|
||||
super().__init__(section, keyword, default_val, add=add, public=public, protect=protect)
|
||||
|
||||
def set(self, value: Union[str, List]) -> Optional[str]:
|
||||
"""Set the list given a comma-separated string or a list"""
|
||||
@@ -325,11 +358,12 @@ class OptionStr(Option):
|
||||
validation: Optional[Callable] = None,
|
||||
add: bool = True,
|
||||
strip: bool = True,
|
||||
public: bool = True,
|
||||
protect: bool = False,
|
||||
):
|
||||
self.__validation: Optional[Callable] = validation
|
||||
self.__strip: bool = strip
|
||||
super().__init__(section, keyword, default_val, add=add, protect=protect)
|
||||
super().__init__(section, keyword, default_val, add=add, public=public, protect=protect)
|
||||
|
||||
def get_float(self) -> float:
|
||||
"""Return value converted to a float, allowing KMGT notation"""
|
||||
@@ -373,9 +407,9 @@ class OptionPassword(Option):
|
||||
return "*" * 10
|
||||
return ""
|
||||
|
||||
def get_dict(self, safe: bool = False) -> Dict[str, str]:
|
||||
def get_dict(self, for_public_api: bool = False) -> Dict[str, str]:
|
||||
"""Return value a dictionary"""
|
||||
if safe:
|
||||
if for_public_api:
|
||||
return {self.keyword: self.get_stars()}
|
||||
else:
|
||||
return {self.keyword: self.get()}
|
||||
@@ -394,7 +428,6 @@ class ConfigServer:
|
||||
"""Class defining a single server"""
|
||||
|
||||
def __init__(self, name, values):
|
||||
|
||||
self.__name = clean_section_name(name)
|
||||
name = "servers," + self.__name
|
||||
|
||||
@@ -461,7 +494,7 @@ class ConfigServer:
|
||||
if not self.displayname():
|
||||
self.displayname.set(self.__name)
|
||||
|
||||
def get_dict(self, safe: bool = False) -> Dict[str, Any]:
|
||||
def get_dict(self, for_public_api: bool = False) -> Dict[str, Any]:
|
||||
"""Return a dictionary with all attributes"""
|
||||
output_dict = {}
|
||||
output_dict["name"] = self.__name
|
||||
@@ -470,7 +503,7 @@ class ConfigServer:
|
||||
output_dict["port"] = self.port()
|
||||
output_dict["timeout"] = self.timeout()
|
||||
output_dict["username"] = self.username()
|
||||
if safe:
|
||||
if for_public_api:
|
||||
output_dict["password"] = self.password.get_stars()
|
||||
else:
|
||||
output_dict["password"] = self.password()
|
||||
@@ -525,7 +558,7 @@ class ConfigCat:
|
||||
except KeyError:
|
||||
continue
|
||||
|
||||
def get_dict(self, safe: bool = False) -> Dict[str, Any]:
|
||||
def get_dict(self, for_public_api: bool = False) -> Dict[str, Any]:
|
||||
"""Return a dictionary with all attributes"""
|
||||
output_dict = {}
|
||||
output_dict["name"] = self.__name
|
||||
@@ -542,6 +575,57 @@ class ConfigCat:
|
||||
delete_from_database("categories", self.__name)
|
||||
|
||||
|
||||
class ConfigSorter:
|
||||
"""Class defining a single Sorter"""
|
||||
|
||||
def __init__(self, name, values):
|
||||
self.__name = clean_section_name(name)
|
||||
name = "sorters," + self.__name
|
||||
|
||||
self.order = OptionNumber(name, "order", len(get_sorters()), 0, 100, add=False)
|
||||
self.min_size = OptionStr(name, "min_size", DEF_SORTER_RENAME_SIZE, add=False)
|
||||
self.multipart_label = OptionStr(name, "multipart_label", add=False)
|
||||
self.sort_string = OptionStr(name, "sort_string", add=False)
|
||||
self.sort_cats = OptionList(name, "sort_cats", add=False)
|
||||
self.sort_type = OptionList(name, "sort_type", add=False)
|
||||
self.is_active = OptionBool(name, "is_active", add=False)
|
||||
|
||||
self.set_dict(values)
|
||||
add_to_database("sorters", self.__name, self)
|
||||
|
||||
def set_dict(self, values: Dict[str, Any]):
|
||||
"""Set one or more fields, passed as dictionary"""
|
||||
for kw in ("order", "min_size", "multipart_label", "sort_string", "sort_cats", "sort_type", "is_active"):
|
||||
try:
|
||||
value = values[kw]
|
||||
getattr(self, kw).set(value)
|
||||
except KeyError:
|
||||
continue
|
||||
|
||||
def get_dict(self, for_public_api: bool = False) -> Dict[str, Any]:
|
||||
"""Return a dictionary with all attributes"""
|
||||
output_dict = {}
|
||||
output_dict["name"] = self.__name
|
||||
output_dict["order"] = self.order()
|
||||
output_dict["min_size"] = self.min_size()
|
||||
output_dict["multipart_label"] = self.multipart_label()
|
||||
output_dict["sort_string"] = self.sort_string()
|
||||
output_dict["sort_cats"] = self.sort_cats()
|
||||
output_dict["sort_type"] = [int(num) for num in self.sort_type()]
|
||||
output_dict["is_active"] = self.is_active()
|
||||
return output_dict
|
||||
|
||||
def delete(self):
|
||||
"""Remove from database"""
|
||||
delete_from_database("sorters", self.__name)
|
||||
|
||||
def rename(self, new_name: str):
|
||||
"""Update the name and the saved entries"""
|
||||
delete_from_database("sorters", self.__name)
|
||||
self.__name = new_name
|
||||
add_to_database("sorters", self.__name, self)
|
||||
|
||||
|
||||
class OptionFilters(Option):
|
||||
"""Filter list class"""
|
||||
|
||||
@@ -579,7 +663,7 @@ class OptionFilters(Option):
|
||||
return
|
||||
self.set(lst)
|
||||
|
||||
def get_dict(self, safe: bool = False) -> Dict[str, str]:
|
||||
def get_dict(self, for_public_api: bool = False) -> Dict[str, str]:
|
||||
"""Return filter list as a dictionary with keys 'filter[0-9]+'"""
|
||||
output_dict = {}
|
||||
for n, rss_filter in enumerate(self.get()):
|
||||
@@ -631,7 +715,7 @@ class ConfigRSS:
|
||||
continue
|
||||
self.filters.set_dict(values)
|
||||
|
||||
def get_dict(self, safe: bool = False) -> Dict[str, Any]:
|
||||
def get_dict(self, for_public_api: bool = False) -> Dict[str, Any]:
|
||||
"""Return a dictionary with all attributes"""
|
||||
output_dict = {}
|
||||
output_dict["name"] = self.__name
|
||||
@@ -671,6 +755,7 @@ AllConfigTypes = Union[
|
||||
OptionList,
|
||||
OptionDir,
|
||||
ConfigCat,
|
||||
ConfigSorter,
|
||||
ConfigRSS,
|
||||
ConfigServer,
|
||||
]
|
||||
@@ -713,7 +798,12 @@ def get_dconfig(section, keyword, nested=False):
|
||||
sect = CFG_DATABASE[section]
|
||||
except KeyError:
|
||||
return False, {}
|
||||
if section in ("servers", "categories", "rss"):
|
||||
|
||||
if section == "categories":
|
||||
data[section] = get_ordered_categories()
|
||||
elif section == "sorters":
|
||||
data[section] = get_ordered_sorters()
|
||||
elif section in ("servers", "rss"):
|
||||
data[section] = []
|
||||
for keyword in sect.keys():
|
||||
res, conf = get_dconfig(section, keyword, True)
|
||||
@@ -729,9 +819,9 @@ def get_dconfig(section, keyword, nested=False):
|
||||
item = CFG_DATABASE[section][keyword]
|
||||
except KeyError:
|
||||
return False, {}
|
||||
data = item.get_dict(safe=True)
|
||||
data = item.get_dict(for_public_api=True)
|
||||
if not nested:
|
||||
if section in ("servers", "categories", "rss"):
|
||||
if section in ("sorters", "servers", "categories", "rss"):
|
||||
data = {section: [data]}
|
||||
else:
|
||||
data = {section: data}
|
||||
@@ -831,7 +921,7 @@ def _read_config(path, try_backup=False):
|
||||
|
||||
# Use CFG data to set values for all static options
|
||||
for section in CFG_DATABASE:
|
||||
if section not in ("servers", "categories", "rss"):
|
||||
if section not in ("sorters", "servers", "categories", "rss"):
|
||||
for option in CFG_DATABASE[section]:
|
||||
config_option = CFG_DATABASE[section][option]
|
||||
try:
|
||||
@@ -849,6 +939,9 @@ def _read_config(path, try_backup=False):
|
||||
if "servers" in CFG_OBJ:
|
||||
for server in CFG_OBJ["servers"]:
|
||||
ConfigServer(server, CFG_OBJ["servers"][server])
|
||||
if "sorters" in CFG_OBJ:
|
||||
for sorter in CFG_OBJ["sorters"]:
|
||||
ConfigSorter(sorter, CFG_OBJ["sorters"][sorter])
|
||||
|
||||
CFG_MODIFIED = False
|
||||
return True, ""
|
||||
@@ -867,7 +960,7 @@ def save_config(force=False):
|
||||
return False
|
||||
|
||||
for section in CFG_DATABASE:
|
||||
if section in ("servers", "categories", "rss"):
|
||||
if section in ("sorters", "servers", "categories", "rss"):
|
||||
if section not in CFG_OBJ:
|
||||
CFG_OBJ[section] = {}
|
||||
|
||||
@@ -942,6 +1035,17 @@ def create_config_backup() -> Union[str, bool]:
|
||||
if os.path.isfile(full_path):
|
||||
with open(full_path, "rb") as data:
|
||||
zip_ref.writestr(filename, data.read())
|
||||
for filename, setting in CONFIG_BACKUP_HTTPS.items():
|
||||
full_path = getattr(sabnzbd.cfg, setting).get_path()
|
||||
# Only accept HTTPS config files that were successfully loaded by cherrypy on
|
||||
# startup to protect against last-minute breaking config changes as well as
|
||||
# inclusion of unrelated files in the backup through manipulated settings.
|
||||
if full_path and os.path.isfile(full_path) and full_path in sabnzbd.CONFIG_BACKUP_HTTPS_OK:
|
||||
logging.debug("Adding %s file %s to backup", setting, full_path)
|
||||
with open(full_path, "rb") as data:
|
||||
# Add the https cert/key/chain files with a fixed relative filename,
|
||||
# regardless of where they are actually stored on the filesystem
|
||||
zip_ref.writestr(filename, data.read())
|
||||
with open(CFG_OBJ.filename, "rb") as data:
|
||||
zip_ref.writestr(DEF_INI_FILE, data.read())
|
||||
return clip_path(complete_path)
|
||||
@@ -964,6 +1068,7 @@ def validate_config_backup(config_backup_data: bytes) -> bool:
|
||||
|
||||
def restore_config_backup(config_backup_data: bytes):
|
||||
"""Restore configuration files from zip file"""
|
||||
global CFG_MODIFIED
|
||||
try:
|
||||
with io.BytesIO(config_backup_data) as backup_ref:
|
||||
with zipfile.ZipFile(backup_ref, "r") as zip_ref:
|
||||
@@ -976,16 +1081,22 @@ def restore_config_backup(config_backup_data: bytes):
|
||||
|
||||
# Write the rest of the admin files that we want to recover
|
||||
adminpath = sabnzbd.cfg.admin_dir.get_path()
|
||||
for filename in CONFIG_BACKUP_FILES:
|
||||
for filename in CONFIG_BACKUP_FILES + list(CONFIG_BACKUP_HTTPS.keys()):
|
||||
try:
|
||||
zip_ref.getinfo(filename)
|
||||
destination_file = os.path.join(adminpath, filename)
|
||||
logging.debug("Writing backup of %s to %s", filename, destination_file)
|
||||
with open(destination_file, "wb") as destination_ref:
|
||||
destination_ref.write(zip_ref.read(filename))
|
||||
# For HTTPS config files, point the associated setting to the restored file
|
||||
if setting := CONFIG_BACKUP_HTTPS.get(filename):
|
||||
logging.debug("Setting value of %s to restored file %s", setting, filename)
|
||||
getattr(sabnzbd.cfg, setting).set(filename)
|
||||
CFG_MODIFIED = True
|
||||
except KeyError:
|
||||
# File not in archive
|
||||
pass
|
||||
save_config()
|
||||
except:
|
||||
logging.warning(T("Could not restore backup"))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
@@ -999,6 +1110,24 @@ def get_servers() -> Dict[str, ConfigServer]:
|
||||
return {}
|
||||
|
||||
|
||||
def get_sorters() -> Dict[str, ConfigSorter]:
|
||||
global CFG_DATABASE
|
||||
try:
|
||||
return CFG_DATABASE["sorters"]
|
||||
except KeyError:
|
||||
return {}
|
||||
|
||||
|
||||
def get_ordered_sorters() -> List[Dict]:
|
||||
"""Return sorters as an ordered list"""
|
||||
database_sorters = get_sorters()
|
||||
|
||||
sorters = [database_sorters[sorter].get_dict() for sorter in database_sorters.keys()]
|
||||
sorters.sort(key=lambda sorter: sorter["order"])
|
||||
|
||||
return sorters
|
||||
|
||||
|
||||
def get_categories() -> Dict[str, ConfigCat]:
|
||||
"""Return link to categories section.
|
||||
This section will always contain special category '*'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -49,17 +49,11 @@ RENAMES_FILE = "__renames__"
|
||||
ATTRIB_FILE = "SABnzbd_attrib"
|
||||
REPAIR_REQUEST = "repair-all.sab"
|
||||
|
||||
SABYENC_VERSION_REQUIRED = "5.4.4"
|
||||
SABCTOOLS_VERSION_REQUIRED = "7.0.1"
|
||||
|
||||
DB_HISTORY_VERSION = 1
|
||||
DB_HISTORY_NAME = "history%s.db" % DB_HISTORY_VERSION
|
||||
|
||||
CONFIG_BACKUP_FILES = [
|
||||
BYTES_FILE_NAME,
|
||||
RSS_FILE_NAME,
|
||||
DB_HISTORY_NAME,
|
||||
]
|
||||
|
||||
DEF_DOWNLOAD_DIR = os.path.normpath("Downloads/incomplete")
|
||||
DEF_COMPLETE_DIR = os.path.normpath("Downloads/complete")
|
||||
DEF_ADMIN_DIR = "admin"
|
||||
@@ -82,14 +76,29 @@ DEF_ARTICLE_CACHE_DEFAULT = "500M"
|
||||
DEF_ARTICLE_CACHE_MAX = "1G"
|
||||
DEF_TIMEOUT = 60
|
||||
DEF_SCANRATE = 5
|
||||
DEF_HTTPS_CERT_FILE = "server.cert"
|
||||
DEF_HTTPS_KEY_FILE = "server.key"
|
||||
DEF_SORTER_RENAME_SIZE = "50M"
|
||||
MAX_WARNINGS = 20
|
||||
MAX_BAD_ARTICLES = 5
|
||||
|
||||
CONFIG_BACKUP_FILES = [
|
||||
BYTES_FILE_NAME,
|
||||
RSS_FILE_NAME,
|
||||
DB_HISTORY_NAME,
|
||||
]
|
||||
CONFIG_BACKUP_HTTPS = { # "basename": "associated setting"
|
||||
DEF_HTTPS_CERT_FILE: "https_cert",
|
||||
DEF_HTTPS_KEY_FILE: "https_key",
|
||||
"server.chain": "https_chain",
|
||||
}
|
||||
|
||||
# Constants affecting download performance
|
||||
MIN_DECODE_QUEUE = 10
|
||||
LIMIT_DECODE_QUEUE = 100
|
||||
DIRECT_WRITE_TRIGGER = 35
|
||||
MAX_ASSEMBLER_QUEUE = 5
|
||||
MAX_ASSEMBLER_QUEUE = 12
|
||||
SOFT_QUEUE_LIMIT = 0.5
|
||||
# Percentage of cache to use before adding file to assembler
|
||||
ASSEMBLER_WRITE_THRESHOLD = 5
|
||||
NNTP_BUFFER_SIZE = int(800 * KIBI)
|
||||
|
||||
REPAIR_PRIORITY = 3
|
||||
FORCE_PRIORITY = 2
|
||||
@@ -131,6 +140,8 @@ IGNORED_MOVIE_FOLDERS = ("video_ts", "audio_ts", "bdmv")
|
||||
EXCLUDED_GUESSIT_PROPERTIES = [
|
||||
"part",
|
||||
]
|
||||
GUESSIT_PART_INDICATORS = ("cd", "part")
|
||||
GUESSIT_SORT_TYPES = {0: "all", 1: "tv", 2: "date", 3: "movie", 4: "unknown"}
|
||||
|
||||
|
||||
class Status:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -474,8 +474,8 @@ def build_history_info(nzo, workdir_complete="", postproc_time=0, script_output=
|
||||
|
||||
# Analyze series info only when job is finished
|
||||
series = ""
|
||||
if series_info:
|
||||
seriesname, season, episode = sabnzbd.newsunpack.analyse_show(nzo.final_name)[:3]
|
||||
if series_info and (show_analysis := sabnzbd.newsunpack.analyse_show(nzo.final_name))["job_type"] == "tv":
|
||||
seriesname, season, episode = (show_analysis[key] for key in ("title", "season", "episode"))
|
||||
if seriesname and season and episode:
|
||||
series = "%s/%s/%s" % (seriesname.lower(), season, episode)
|
||||
|
||||
@@ -554,7 +554,7 @@ def unpack_history_info(item: Union[Dict, sqlite3.Row]):
|
||||
return item
|
||||
|
||||
|
||||
def midnight_history_purge():
|
||||
def scheduled_history_purge():
|
||||
logging.info("Scheduled history purge")
|
||||
with HistoryDB() as history_db:
|
||||
history_db.auto_history_purge()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@@ -21,33 +21,32 @@ sabnzbd.decoder - article decoder
|
||||
|
||||
import logging
|
||||
import hashlib
|
||||
import queue
|
||||
import binascii
|
||||
from io import BytesIO
|
||||
from threading import Thread
|
||||
from typing import Tuple, List, Optional
|
||||
from zlib import crc32
|
||||
|
||||
import sabnzbd
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.constants import SABYENC_VERSION_REQUIRED
|
||||
from sabnzbd.constants import SABCTOOLS_VERSION_REQUIRED
|
||||
from sabnzbd.encoding import ubtou
|
||||
from sabnzbd.nzbstuff import Article
|
||||
from sabnzbd.misc import match_str
|
||||
|
||||
# Check for correct SABYenc version
|
||||
SABYENC_VERSION = None
|
||||
SABYENC_SIMD = None
|
||||
# Check for correct SABCTools version
|
||||
SABCTOOLS_VERSION = None
|
||||
SABCTOOLS_SIMD = None
|
||||
SABCTOOLS_OPENSSL_LINKED = None
|
||||
try:
|
||||
import sabyenc3
|
||||
import sabctools
|
||||
|
||||
SABYENC_ENABLED = True
|
||||
SABYENC_VERSION = sabyenc3.__version__
|
||||
SABYENC_SIMD = sabyenc3.simd
|
||||
SABCTOOLS_ENABLED = True
|
||||
SABCTOOLS_VERSION = sabctools.__version__
|
||||
SABCTOOLS_SIMD = sabctools.simd
|
||||
SABCTOOLS_OPENSSL_LINKED = sabctools.openssl_linked
|
||||
# Verify version to at least match minor version
|
||||
if SABYENC_VERSION[:3] != SABYENC_VERSION_REQUIRED[:3]:
|
||||
if SABCTOOLS_VERSION[:3] != SABCTOOLS_VERSION_REQUIRED[:3]:
|
||||
raise ImportError
|
||||
except:
|
||||
SABYENC_ENABLED = False
|
||||
SABCTOOLS_ENABLED = False
|
||||
|
||||
|
||||
class BadData(Exception):
|
||||
@@ -64,208 +63,142 @@ class BadUu(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class Decoder:
|
||||
"""Implement thread-like coordinator for the decoders"""
|
||||
def decode(article: Article, raw_data: bytearray):
|
||||
decoded_data = None
|
||||
nzo = article.nzf.nzo
|
||||
art_id = article.article
|
||||
|
||||
def __init__(self):
|
||||
# Keeping track
|
||||
article_success = False
|
||||
|
||||
# Initialize queue and servers
|
||||
self.decoder_queue = queue.Queue()
|
||||
try:
|
||||
if nzo.precheck:
|
||||
raise BadYenc
|
||||
|
||||
# Initialize decoders
|
||||
decoders = cfg.num_simd_decoders()
|
||||
logging.debug("Initializing %d decoder(s)", decoders)
|
||||
self.decoder_workers = []
|
||||
for _ in range(decoders):
|
||||
self.decoder_workers.append(DecoderWorker(self.decoder_queue))
|
||||
if sabnzbd.LOG_ALL:
|
||||
logging.debug("Decoding %s", art_id)
|
||||
|
||||
def start(self):
|
||||
for decoder_worker in self.decoder_workers:
|
||||
decoder_worker.start()
|
||||
if article.nzf.type == "uu":
|
||||
decoded_data = decode_uu(article, raw_data)
|
||||
else:
|
||||
decoded_data = decode_yenc(article, raw_data)
|
||||
|
||||
def is_alive(self) -> bool:
|
||||
# Check all workers
|
||||
for decoder_worker in self.decoder_workers:
|
||||
if not decoder_worker.is_alive():
|
||||
return False
|
||||
return True
|
||||
article_success = True
|
||||
|
||||
def stop(self):
|
||||
# Put multiple to stop all decoders
|
||||
for _ in self.decoder_workers:
|
||||
self.decoder_queue.put((None, None, None))
|
||||
except MemoryError:
|
||||
logging.warning(T("Decoder failure: Out of memory"))
|
||||
logging.info("Cache: %d, %d, %d", *sabnzbd.ArticleCache.cache_info())
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
sabnzbd.Downloader.pause()
|
||||
|
||||
def join(self):
|
||||
# Wait for all decoders to finish
|
||||
for decoder_worker in self.decoder_workers:
|
||||
try:
|
||||
decoder_worker.join()
|
||||
except:
|
||||
pass
|
||||
# This article should be fetched again
|
||||
sabnzbd.NzbQueue.reset_try_lists(article)
|
||||
return
|
||||
|
||||
def process(self, article: Article, raw_data: List[bytes], data_size: int):
|
||||
sabnzbd.ArticleCache.reserve_space(data_size)
|
||||
self.decoder_queue.put((article, raw_data, data_size))
|
||||
except BadData as error:
|
||||
# Continue to the next one if we found new server
|
||||
if search_new_server(article):
|
||||
return
|
||||
|
||||
def queue_full(self) -> bool:
|
||||
# Check if the queue size exceeds the limits
|
||||
return self.decoder_queue.qsize() >= sabnzbd.ArticleCache.decoder_cache_article_limit
|
||||
# Store data, maybe par2 can still fix it
|
||||
decoded_data = error.data
|
||||
|
||||
except BadUu:
|
||||
logging.info("Badly formed uu article in %s", art_id)
|
||||
|
||||
class DecoderWorker(Thread):
|
||||
"""The actual workhorse that handles decoding!"""
|
||||
# Try the next server
|
||||
if search_new_server(article):
|
||||
return
|
||||
|
||||
def __init__(self, decoder_queue):
|
||||
super().__init__()
|
||||
logging.debug("Initializing decoder %s", self.name)
|
||||
self.decoder_queue: queue.Queue[Tuple[Optional[Article], Optional[List[bytes]], Optional[int]]] = decoder_queue
|
||||
|
||||
def run(self):
|
||||
while 1:
|
||||
# Set Article and NzbObject objects to None so references from this
|
||||
# thread do not keep the parent objects alive (see #1628)
|
||||
decoded_data = raw_data = article = nzo = None
|
||||
article, raw_data, data_size = self.decoder_queue.get()
|
||||
if not article:
|
||||
logging.debug("Shutting down decoder %s", self.name)
|
||||
break
|
||||
|
||||
nzo = article.nzf.nzo
|
||||
art_id = article.article
|
||||
|
||||
# Free space in the decoder-queue
|
||||
sabnzbd.ArticleCache.free_reserved_space(data_size)
|
||||
|
||||
# Keeping track
|
||||
article_success = False
|
||||
|
||||
try:
|
||||
if nzo.precheck:
|
||||
raise BadYenc
|
||||
|
||||
if sabnzbd.LOG_ALL:
|
||||
logging.debug("Decoding %s", art_id)
|
||||
|
||||
if article.nzf.type == "uu":
|
||||
except (BadYenc, ValueError):
|
||||
# Handles precheck and badly formed articles
|
||||
if nzo.precheck and raw_data and raw_data.startswith(b"223 "):
|
||||
# STAT was used, so we only get a status code
|
||||
article_success = True
|
||||
else:
|
||||
# Try uu-decoding
|
||||
if (not nzo.precheck) and article.nzf.type != "yenc":
|
||||
try:
|
||||
decoded_data = decode_uu(article, raw_data)
|
||||
else:
|
||||
decoded_data = decode_yenc(article, raw_data)
|
||||
|
||||
article_success = True
|
||||
|
||||
except MemoryError:
|
||||
logging.warning(T("Decoder failure: Out of memory"))
|
||||
logging.info("Decoder-Queue: %d", self.decoder_queue.qsize())
|
||||
logging.info("Cache: %d, %d, %d", *sabnzbd.ArticleCache.cache_info())
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
sabnzbd.Downloader.pause()
|
||||
|
||||
# This article should be fetched again
|
||||
sabnzbd.NzbQueue.reset_try_lists(article)
|
||||
continue
|
||||
|
||||
except BadData as error:
|
||||
# Continue to the next one if we found new server
|
||||
if search_new_server(article):
|
||||
continue
|
||||
|
||||
# Store data, maybe par2 can still fix it
|
||||
decoded_data = error.data
|
||||
|
||||
except BadUu:
|
||||
logging.info("Badly formed uu article in %s", art_id)
|
||||
|
||||
# Try the next server
|
||||
if search_new_server(article):
|
||||
continue
|
||||
|
||||
except (BadYenc, ValueError):
|
||||
# Handles precheck and badly formed articles
|
||||
if nzo.precheck and raw_data and raw_data[0].startswith(b"223 "):
|
||||
# STAT was used, so we only get a status code
|
||||
logging.debug("Found uu-encoded article %s in job %s", art_id, nzo.final_name)
|
||||
article_success = True
|
||||
else:
|
||||
# Try uu-decoding
|
||||
if (not nzo.precheck) and article.nzf.type != "yenc":
|
||||
try:
|
||||
decoded_data = decode_uu(article, raw_data)
|
||||
logging.debug("Found uu-encoded article %s in job %s", art_id, nzo.final_name)
|
||||
article_success = True
|
||||
except Exception:
|
||||
pass
|
||||
# Only bother with further checks if uu-decoding didn't work out
|
||||
if not article_success:
|
||||
# Convert the initial chunks of raw socket data to article lines,
|
||||
# and examine the headers (for precheck) or body (for download).
|
||||
for line in b"".join(raw_data[:2]).split(b"\r\n"):
|
||||
lline = line.lower()
|
||||
if lline.startswith(b"message-id:"):
|
||||
article_success = True
|
||||
# Look for DMCA clues (while skipping "X-" headers)
|
||||
if not lline.startswith(b"x-") and match_str(
|
||||
lline, (b"dmca", b"removed", b"cancel", b"blocked")
|
||||
):
|
||||
article_success = False
|
||||
logging.info("Article removed from server (%s)", art_id)
|
||||
break
|
||||
except Exception:
|
||||
pass
|
||||
# Only bother with further checks if uu-decoding didn't work out
|
||||
if not article_success:
|
||||
# Convert the first 2000 bytes of raw socket data to article lines,
|
||||
# and examine the headers (for precheck) or body (for download).
|
||||
for line in raw_data[:2000].split(b"\r\n"):
|
||||
lline = line.lower()
|
||||
if lline.startswith(b"message-id:"):
|
||||
article_success = True
|
||||
# Look for DMCA clues (while skipping "X-" headers)
|
||||
if not lline.startswith(b"x-") and match_str(lline, (b"dmca", b"removed", b"cancel", b"blocked")):
|
||||
article_success = False
|
||||
logging.info("Article removed from server (%s)", art_id)
|
||||
break
|
||||
|
||||
# Pre-check, proper article found so just register
|
||||
if nzo.precheck and article_success and sabnzbd.LOG_ALL:
|
||||
logging.debug("Server %s has article %s", article.fetcher, art_id)
|
||||
elif not article_success:
|
||||
# If not pre-check, this must be a bad article
|
||||
if not nzo.precheck:
|
||||
logging.info("Badly formed yEnc article %s", art_id)
|
||||
# Pre-check, proper article found so just register
|
||||
if nzo.precheck and article_success and sabnzbd.LOG_ALL:
|
||||
logging.debug("Server %s has article %s", article.fetcher, art_id)
|
||||
elif not article_success:
|
||||
# If not pre-check, this must be a bad article
|
||||
if not nzo.precheck:
|
||||
logging.info("Badly formed yEnc article %s", art_id)
|
||||
|
||||
# Continue to the next one if we found new server
|
||||
if search_new_server(article):
|
||||
continue
|
||||
# Continue to the next one if we found new server
|
||||
if search_new_server(article):
|
||||
return
|
||||
|
||||
except:
|
||||
logging.warning(T("Unknown Error while decoding %s"), art_id)
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
except:
|
||||
logging.warning(T("Unknown Error while decoding %s"), art_id)
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
|
||||
# Continue to the next one if we found new server
|
||||
if search_new_server(article):
|
||||
continue
|
||||
# Continue to the next one if we found new server
|
||||
if search_new_server(article):
|
||||
return
|
||||
|
||||
if decoded_data:
|
||||
# If the data needs to be written to disk due to full cache, this will be slow
|
||||
# Causing the decoder-queue to fill up and delay the downloader
|
||||
sabnzbd.ArticleCache.save_article(article, decoded_data)
|
||||
if decoded_data:
|
||||
# If the data needs to be written to disk due to full cache, this will be slow
|
||||
# Causing the decoder-queue to fill up and delay the downloader
|
||||
sabnzbd.ArticleCache.save_article(article, decoded_data)
|
||||
article.decoded = True
|
||||
elif not nzo.precheck:
|
||||
# Nothing to save
|
||||
article.on_disk = True
|
||||
|
||||
sabnzbd.NzbQueue.register_article(article, article_success)
|
||||
sabnzbd.NzbQueue.register_article(article, article_success)
|
||||
|
||||
|
||||
def decode_yenc(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
# Let SABYenc do all the heavy lifting
|
||||
decoded_data, yenc_filename, crc_correct = sabyenc3.decode_usenet_chunks(raw_data)
|
||||
|
||||
# Mark as decoded
|
||||
article.decoded = True
|
||||
def decode_yenc(article: Article, data: bytearray) -> bytearray:
|
||||
# Let SABCTools do all the heavy lifting
|
||||
yenc_filename, article.data_begin, article.data_size, crc_correct = sabctools.yenc_decode(data)
|
||||
|
||||
nzf = article.nzf
|
||||
# Assume it is yenc
|
||||
article.nzf.type = "yenc"
|
||||
nzf.type = "yenc"
|
||||
|
||||
# Only set the name if it was found and not obfuscated
|
||||
if not article.nzf.filename_checked and yenc_filename:
|
||||
if not nzf.filename_checked and yenc_filename:
|
||||
# Set the md5-of-16k if this is the first article
|
||||
if article.lowest_partnum:
|
||||
article.nzf.md5of16k = hashlib.md5(decoded_data[:16384]).digest()
|
||||
nzf.md5of16k = hashlib.md5(data[:16384]).digest()
|
||||
|
||||
# Try the rename, even if it's not the first article
|
||||
# For example when the first article was missing
|
||||
article.nzf.nzo.verify_nzf_filename(article.nzf, yenc_filename)
|
||||
nzf.nzo.verify_nzf_filename(nzf, yenc_filename)
|
||||
|
||||
# CRC check
|
||||
if not crc_correct:
|
||||
if crc_correct is None:
|
||||
logging.info("CRC Error in %s", article.article)
|
||||
raise BadData(decoded_data)
|
||||
raise BadData(data)
|
||||
|
||||
return decoded_data
|
||||
article.crc32 = crc_correct
|
||||
|
||||
return data
|
||||
|
||||
|
||||
def decode_uu(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
def decode_uu(article: Article, raw_data: bytearray) -> bytes:
|
||||
"""Try to uu-decode an article. The raw_data may or may not contain headers.
|
||||
If there are headers, they will be separated from the body by at least one
|
||||
empty line. In case of no headers, the first line seems to always be the nntp
|
||||
@@ -275,10 +208,7 @@ def decode_uu(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
raise BadUu
|
||||
|
||||
# Line up the raw_data
|
||||
with BytesIO() as encoded_data:
|
||||
for data in raw_data:
|
||||
encoded_data.write(data)
|
||||
raw_data = encoded_data.getvalue().split(b"\r\n")
|
||||
raw_data = raw_data.split(b"\r\n")
|
||||
|
||||
# Index of the uu payload start in raw_data
|
||||
uu_start = 0
|
||||
@@ -292,7 +222,7 @@ def decode_uu(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
# Try to find an empty line separating the body from headers or response
|
||||
# code and set the expected payload start to the next line.
|
||||
try:
|
||||
uu_start = raw_data[:limit].index(b"") + 1
|
||||
uu_start = raw_data[:limit].index(bytearray(b"")) + 1
|
||||
except ValueError:
|
||||
# No empty line, look for a response code instead
|
||||
if raw_data[0].startswith(b"222 "):
|
||||
@@ -373,9 +303,8 @@ def decode_uu(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
# Store the decoded data
|
||||
decoded_data.write(decoded_line)
|
||||
|
||||
# Mark as decoded and set the type to uu; the latter is still needed in
|
||||
# Set the type to uu; the latter is still needed in
|
||||
# case the lowest_partnum article was damaged or slow to download.
|
||||
article.decoded = True
|
||||
article.nzf.type = "uu"
|
||||
|
||||
if article.lowest_partnum:
|
||||
@@ -385,7 +314,9 @@ def decode_uu(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
if not article.nzf.filename_checked and uu_filename:
|
||||
article.nzf.nzo.verify_nzf_filename(article.nzf, uu_filename)
|
||||
|
||||
return decoded_data.getvalue()
|
||||
data = decoded_data.getvalue()
|
||||
article.crc32 = crc32(data)
|
||||
return data
|
||||
|
||||
|
||||
def search_new_server(article: Article) -> bool:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/python3 -OO
|
||||
# Copyright 2007-2022 The SABnzbd-Team <team@sabnzbd.org>
|
||||
# Copyright 2007-2023 The SABnzbd-Team <team@sabnzbd.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user