mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-01-05 22:20:21 -05:00
Compare commits
98 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e24aedc6ac | ||
|
|
d10d69e44b | ||
|
|
af5c01ee3a | ||
|
|
bf350cddc8 | ||
|
|
9bc4d909b5 | ||
|
|
42236de5bd | ||
|
|
02e2fe2cc8 | ||
|
|
b75bcb90f4 | ||
|
|
56b88eb406 | ||
|
|
93741ea9ab | ||
|
|
f7509132fc | ||
|
|
2d0d62ec00 | ||
|
|
4e07a84102 | ||
|
|
32a048a879 | ||
|
|
caac28fcbc | ||
|
|
5b0bbf57c6 | ||
|
|
072af938c2 | ||
|
|
9e8202371e | ||
|
|
27dd253c5d | ||
|
|
8d651af2f8 | ||
|
|
6358312272 | ||
|
|
42c8367e13 | ||
|
|
c1e38b5e81 | ||
|
|
1b4ce24037 | ||
|
|
cf440750b6 | ||
|
|
30c480df36 | ||
|
|
9c3dbd39ef | ||
|
|
1af2f92828 | ||
|
|
45277bb00f | ||
|
|
10e21a3af9 | ||
|
|
19cbadd420 | ||
|
|
a28cbe52b9 | ||
|
|
37f1d64e46 | ||
|
|
7170325df5 | ||
|
|
c44d98da66 | ||
|
|
018410afb0 | ||
|
|
fc47238a7a | ||
|
|
9561b8a64e | ||
|
|
7b0e56b55f | ||
|
|
c6d5a79776 | ||
|
|
faa4cacd3e | ||
|
|
56e417eea1 | ||
|
|
5f02ec00f9 | ||
|
|
5ea35db922 | ||
|
|
5dcf26a56c | ||
|
|
35b598d10e | ||
|
|
5e7b27c4ef | ||
|
|
9ed408d35b | ||
|
|
6c782fe255 | ||
|
|
1689323dc3 | ||
|
|
a3c50a907a | ||
|
|
36a3792846 | ||
|
|
4cd0c0691a | ||
|
|
6ac98dcacd | ||
|
|
0a0d00930a | ||
|
|
28a0d041f9 | ||
|
|
85bb91a7ea | ||
|
|
6561e0abfa | ||
|
|
6715e61a68 | ||
|
|
a886b284b6 | ||
|
|
a349c82b6f | ||
|
|
1f4df0ebf4 | ||
|
|
0221e7bf93 | ||
|
|
f9cf14e7d8 | ||
|
|
7258e56a20 | ||
|
|
90bd495d44 | ||
|
|
6c216d6dfe | ||
|
|
e1f3fae6c7 | ||
|
|
29f126ca47 | ||
|
|
8b4b742466 | ||
|
|
57a9d362bc | ||
|
|
b7d54c2bea | ||
|
|
59f9833076 | ||
|
|
8e360fe53e | ||
|
|
afc5005382 | ||
|
|
3a531c6d2b | ||
|
|
f056ad6347 | ||
|
|
5c1342a663 | ||
|
|
dfe8a47a2a | ||
|
|
e293a439dd | ||
|
|
7e0027922a | ||
|
|
00b5302ba9 | ||
|
|
79488c4785 | ||
|
|
c3d0438250 | ||
|
|
2909d4636b | ||
|
|
a1ee8b6af4 | ||
|
|
cfe3b58f7f | ||
|
|
ff6b87ef5b | ||
|
|
8fbcfd0d5a | ||
|
|
347ba999b4 | ||
|
|
503bcf64c9 | ||
|
|
2a667470a1 | ||
|
|
c61165b840 | ||
|
|
3672189bc8 | ||
|
|
5b38c772fb | ||
|
|
f28bc4dd9c | ||
|
|
e16cc49a17 | ||
|
|
f686cc94fd |
@@ -1,5 +1,5 @@
|
||||
*******************************************
|
||||
*** This is SABnzbd 0.7.0 ***
|
||||
*** This is SABnzbd 0.7.3 ***
|
||||
*******************************************
|
||||
SABnzbd is an open-source cross-platform binary newsreader.
|
||||
It simplifies the process of downloading from Usenet dramatically,
|
||||
|
||||
@@ -1,3 +1,97 @@
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.3Final by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Rename Special "random_server_ip" to "randomize_server_ip" so that we
|
||||
can force the default to "Off". "On" kills speed on some servers.
|
||||
- Ignore pseudo NZB files that start with a period in the name
|
||||
- SFV failure now listed in History instead of issuing warnings
|
||||
- Translation updates
|
||||
- "502" errors about payments/credits will now block a server
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.3Beta2 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Try to keep OSX Mountain Lion awake as long as downloading/postprocessing runs
|
||||
- Prevent queue deadlock in case of fatally damaged par2 files
|
||||
- Add RSS filter-enable checkboxes to Plush, Smpl and Classic skins
|
||||
- Fix problem with saving modified paramters of an already enabled server
|
||||
- Extend "check new release" option with test releases
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.3Beta1 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Correct several errors in Sort function
|
||||
- Improve organization of Config->Servers
|
||||
- Support for nzbxxx.com
|
||||
- Make detection of samples less aggressive
|
||||
- Some minor corrections
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.2Final by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Fix for NZB-icon issue when 0.7.0 was previously installed
|
||||
- Check validity of totals9.sab file
|
||||
- Fix startup problem when localhost has unexpected order of IP addresses
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.2RC2 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Improve support for nzbsrus.com
|
||||
- Don't try to show NZB age when not known yet
|
||||
- Prevent systems with unresolvable hostnames from always using 0.0.0.0
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.2RC1 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Fix fatal error in nzbsrus.com support
|
||||
- Initial "quota left" was not set correctly when enabling quota
|
||||
- Report incorrect RSS filter expressions (instead of aborting analysis)
|
||||
- Improve detection of invalid articles (so that backup server will be tried)
|
||||
- Windows installer: improve NZB association so that a reboot isn't needed
|
||||
- Windows installer: don't remove settimngs by default when uninstalling
|
||||
- Fix sorting of rar files in job so that .rar preceeds .r00
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.1Final by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Disable VC90 check in Windows Installer as long as we're still on Python 2.5
|
||||
- Windows: make sure \\server\share notation is never seen as a relative path
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.1RC5 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Fix signing of OSX DMG
|
||||
- Fix endless par2-fetch loop after retrying failed job
|
||||
- Don't send "bad fetch" email when emailing is off
|
||||
- Add some support for nzbrus.com's non-VIP limiting
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.1RC4 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Fix failure to grab NZBs from indexers that send compressed files.
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.1RC3 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Fixed stalling par2 fetches (after first verification run)
|
||||
- Fixed retry behaviour of NZB fetching from URL
|
||||
and add handling of nzbsrus.com error codes
|
||||
- Make sure that all malformed articles are retried on another server
|
||||
- Add no_ipv6 option that suppresses listing on ::1
|
||||
(to be used if your system cannot handle that)
|
||||
- Prevent crash in QuickCheck when expected par2 file wasn't downloaded
|
||||
- Verification/repair would not be executed properly when one more RAR files
|
||||
missed their first article.
|
||||
- API calls "addurl" and "addid" (newzbin) can be used interchangeably
|
||||
(Fixes a problem in Qouch)
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.1RC2 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Improved backup of sabnzbd.ini file
|
||||
Will use backup when original is gone or become corrupt
|
||||
- Windows: Using ::1 as single webhost address would start IE instead of default browser
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.1RC1 by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
- Plush skin: fix problems with pull-down menus in Mobile Safari
|
||||
- On some Linux and OSX systems using localhost would still make SABnzbd
|
||||
give access to other computers
|
||||
- Windows: the installer did not set an icon when associating NZB files with SABnzbd
|
||||
- Fix problem that the Opera browser had with Config->Servers
|
||||
- Retry a few times when accessing a mounted drive to create the
|
||||
final destination folder
|
||||
- Reduce load caused by WinTray and OSX topmenu
|
||||
-------------------------------------------------------------------------------
|
||||
0.7.0Final by The SABnzbd-Team
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SABnzbd 0.7.0
|
||||
SABnzbd 0.7.3
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
0) LICENSE
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
!include "MUI2.nsh"
|
||||
!include "registerExtension.nsh"
|
||||
!include "FileFunc.nsh"
|
||||
!include "LogicLib.nsh"
|
||||
!include "WinVer.nsh"
|
||||
!include "WinSxSQuery.nsh"
|
||||
@@ -245,6 +246,7 @@ Function .onInit
|
||||
;--------------------------------
|
||||
;make sure that the requires MS Runtimes are installed
|
||||
;
|
||||
goto nodownload ; Not needed while still using Python25
|
||||
runtime_loop:
|
||||
push 'msvcr90.dll'
|
||||
push 'Microsoft.VC90.CRT,version="9.0.21022.8",type="win32",processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b"'
|
||||
@@ -297,7 +299,7 @@ SetOutPath "$INSTDIR"
|
||||
;------------------------------------------------------------------
|
||||
; Make sure old versions are gone
|
||||
IfFileExists $INSTDIR\sabnzbd.exe 0 endWarnExist
|
||||
IfFileExists $INSTDIR\python25.dll 0 endWarnExist
|
||||
IfFileExists $INSTDIR\python27.dll 0 endWarnExist
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "$(MsgRemoveOld)$\n$\n$(MsgRemoveOld2)" IDOK uninst
|
||||
Abort
|
||||
uninst:
|
||||
@@ -318,7 +320,7 @@ WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninst
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "URLUpdateInfo" 'http://sabnzbd.org/'
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "Comments" 'The automated Usenet download tool'
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "DisplayIcon" '$INSTDIR\interfaces\Classic\templates\static\images\favicon.ico'
|
||||
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "EstimatedSize" 18400
|
||||
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "EstimatedSize" 29622
|
||||
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "NoRepair" -1
|
||||
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\SABnzbd" "NoModify" -1
|
||||
; write out uninstaller
|
||||
@@ -349,8 +351,8 @@ Section $(MsgIcon) desktop
|
||||
SectionEnd ; end of desktop icon section
|
||||
|
||||
Section /o $(MsgAssoc) assoc
|
||||
${registerExtension} "$INSTDIR\nzb.ico" "$INSTDIR\SABnzbd.exe" ".nzb" "NZB File"
|
||||
;${registerExtension} "$INSTDIR\SABnzbd.exe" ".nzb" "NZB File"
|
||||
${registerExtension} "$INSTDIR\icons\nzb.ico" "$INSTDIR\SABnzbd.exe" ".nzb" "NZB File"
|
||||
${RefreshShellIcons}
|
||||
SectionEnd ; end of file association section
|
||||
|
||||
; begin uninstall settings/section
|
||||
@@ -406,11 +408,11 @@ Section "un.$(MsgDelProgram)" Uninstall
|
||||
DeleteRegKey HKEY_CURRENT_USER "Software\SABnzbd"
|
||||
|
||||
${unregisterExtension} ".nzb" "NZB File"
|
||||
|
||||
${RefreshShellIcons}
|
||||
|
||||
SectionEnd ; end of uninstall section
|
||||
|
||||
Section "un.$(MsgDelSettings)" DelSettings
|
||||
Section /o "un.$(MsgDelSettings)" DelSettings
|
||||
DetailPrint "Uninstall settings $LOCALAPPDATA"
|
||||
Delete "$LOCALAPPDATA\sabnzbd\sabnzbd.ini"
|
||||
RMDir /r "$LOCALAPPDATA\sabnzbd"
|
||||
|
||||
6
PKG-INFO
6
PKG-INFO
@@ -1,8 +1,8 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: SABnzbd
|
||||
Version: 0.7.0
|
||||
Summary: SABnzbd-0.7.0
|
||||
Home-page: http://sourceforge.net/projects/sabnzbdplus
|
||||
Version: 0.7.3
|
||||
Summary: SABnzbd-0.7.3
|
||||
Home-page: http://sabnzbd.org
|
||||
Author: The SABnzbd Team
|
||||
Author-email: team@sabnzbd.org
|
||||
License: GNU General Public License 2 (GPL2 or later)
|
||||
|
||||
76
README.mkd
Normal file
76
README.mkd
Normal file
@@ -0,0 +1,76 @@
|
||||
Release Notes - SABnzbd 0.7.3
|
||||
===============================
|
||||
|
||||
## Fixes in 0.7.3
|
||||
|
||||
- Prevent queue deadlock in case of fatally damaged par2 files
|
||||
- Try to keep OSX Mountain Lion awake as long as downloading and postprocessing run
|
||||
- Add RSS filter-enable checkboxes to Plush, Smpl and Classic skins
|
||||
- Fix problem with saving modified parameters of an already enabled server
|
||||
- Extend "check new release" option with test releases
|
||||
- Correct several errors in Sort function
|
||||
- Improve organization of Config->Servers
|
||||
- Make detection of samples less aggressive
|
||||
- Ignore pseudo NZB files that start with a period in the name
|
||||
|
||||
The Special option "random_server_ip" has been renamed to "randomize_server_ip"
|
||||
and the default is now "Off".
|
||||
The reason is that this option kills the speed of some Usenet providers.
|
||||
If you really need this feature, you have to re-enable it.
|
||||
|
||||
|
||||
## What's new in 0.7.0
|
||||
|
||||
- Download quota management
|
||||
- Windows: simple system tray menu
|
||||
- Multi-platform Growl support
|
||||
- NotifyOSD support for Linux distros that have it
|
||||
- Option to set maximum number of retries for servers (prevents deadlock)
|
||||
- Pre-download check to estimate completeness (reliability is limited)
|
||||
- Prevent partial downloading of par2 files that are not needed yet
|
||||
- Config->Special for settings previously only available in the sabnzbd.ini file
|
||||
- For Usenet servers with multiple IP addresses, pick a random one per connection
|
||||
- Add pseudo-priority "Stop" that will send the job immediately to the post-processing queue
|
||||
- Allow jobs still waiting for post-processing to be deleted too
|
||||
- More persistent retries for unreliable indexers
|
||||
- Single Configuration skin for all others skins (there is an option for the old style)
|
||||
- Config->Special for settings that were previously only changeable in the sabnzbd.ini file
|
||||
- Add Spanish, Portuguese (Brazil) and Polish translations
|
||||
- Individual RSS filter toggle
|
||||
- Unified OSX DMG
|
||||
|
||||
|
||||
## About
|
||||
SABnzbd is an open-source cross-platform binary newsreader.
|
||||
It simplifies the process of downloading from Usenet dramatically,
|
||||
thanks to its web-based user interface and advanced
|
||||
built-in post-processing options that automatically verify, repair,
|
||||
extract and clean up posts downloaded from Usenet.
|
||||
|
||||
(c) Copyright 2007-2012 by "The SABnzbd-team" \<team@sabnzbd.org\>
|
||||
|
||||
|
||||
### IMPORTANT INFORMATION about release 0.7.x
|
||||
<http://wiki.sabnzbd.org/introducing-0-7-0>
|
||||
|
||||
### Known problems and solutions
|
||||
- Read the file "ISSUES.txt"
|
||||
|
||||
### Upgrading from 0.6.x
|
||||
- Stop SABnzbd
|
||||
- Install new version
|
||||
- Start SABnzbd
|
||||
|
||||
### Upgrading from 0.5.x
|
||||
- Stop SABnzbd
|
||||
- Install new version
|
||||
- Start SABnzbd.
|
||||
|
||||
The organization of the download queue is different from 0.5.x.
|
||||
0.7.x will finish downloading an existing queue, but you
|
||||
cannot go back to an older version without losing your queue.
|
||||
Also, your sabnzbd.ini file will be upgraded, making it
|
||||
incompatible with release 0.5.x
|
||||
|
||||
### Upgrading from 0.4.x
|
||||
Download your current queue before upgrading.
|
||||
97
README.rtf
97
README.rtf
@@ -1,97 +0,0 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\paperw11900\paperh16840\vieww16360\viewh15680\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
||||
|
||||
\f0\b\fs48 \cf0 SABnzbd 0.7.0\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
|
||||
|
||||
\b0\fs26 \cf0 \
|
||||
|
||||
\b What's new
|
||||
\b0 \
|
||||
- Download quota management\
|
||||
- Windows: simple system tray menu\
|
||||
- Multi-platform Growl support\
|
||||
- NotifyOSD support for Linux distros that have it\
|
||||
- Option to set maximum number of retries for servers (prevents deadlock)\
|
||||
- Pre-download check to estimate completeness (reliability is limited)\
|
||||
- Prevent partial downloading of par2 files that are not needed yet\
|
||||
- Config->Special for settings previously only available in the sabnzbd.ini file\
|
||||
- For Usenet servers with multiple IP addresses, pick a random one per connection\
|
||||
- Add pseudo-priority "Stop" that will send the job immediately to the post-processing queue\
|
||||
- Allow jobs still waiting for post-processing to be deleted too\
|
||||
- More persistent retries for unreliable indexers\
|
||||
- Single Configuration skin for all others skins (there is an option for the old style)\
|
||||
- Config->Special for settings that were previously only changeable in the sabnzbd.ini file\
|
||||
- Add Spanish, Portuguese (Brazil) and Polish translations\
|
||||
- Individual RSS filter toggle\
|
||||
- Unified OSX DMG\
|
||||
\
|
||||
|
||||
\b About
|
||||
\b0 \
|
||||
SABnzbd is an open-source cross-platform binary newsreader.\
|
||||
It simplifies the process of downloading from Usenet dramatically,\
|
||||
thanks to its web-based user interface and advanced\
|
||||
built-in post-processing options that automatically verify, repair,\
|
||||
extract and clean up posts downloaded from Usenet.\
|
||||
SABnzbd also has a fully customizable user interface,\
|
||||
and offers a complete API for third-party applications to hook into.\
|
||||
\
|
||||
(c) Copyright 2007-2012 by "The SABnzbd-team" <team@sabnzbd.org>\
|
||||
\
|
||||
There is an extensive Wiki on the use of SABnzbd.\
|
||||
{\field{\*\fldinst{HYPERLINK "http://wiki.sabnzbd.org/"}}{\fldrslt http://wiki.sabnzbd.org/}}\
|
||||
\
|
||||
|
||||
\b IMPORTANT INFORMATION
|
||||
\b0 about release 0.7.0:\
|
||||
{\field{\*\fldinst{HYPERLINK "http://wiki.sabnzbd.org/introducing-0-7-0"}}{\fldrslt http://wiki.sabnzbd.org/introducing-0-7-0}}\
|
||||
\
|
||||
|
||||
\b Known problems and solutions\
|
||||
|
||||
\b0 Read the file "ISSUES.txt"
|
||||
\b \
|
||||
|
||||
\b0 \
|
||||
\
|
||||
|
||||
\b\fs40 Upgrading from 0.6.x
|
||||
\b0\fs26 \
|
||||
Stop SABnzbd.\
|
||||
Install new version\
|
||||
Start SABnzbd.\
|
||||
\
|
||||
|
||||
\b\fs40 Upgrading from 0.5.x
|
||||
\b0\fs26 \
|
||||
Stop SABnzbd.\
|
||||
Uninstall current version, keeping the data.\
|
||||
Install new version\
|
||||
Start SABnzbd.\
|
||||
\
|
||||
The organization of the download queue is different from 0.5.x.\
|
||||
0.6.x will finish downloading an existing queue, but you\
|
||||
cannot go back to an older version without losing your queue.\
|
||||
Also, your sabnzbd.ini file will be upgraded, making it\
|
||||
incompatible with release 0.5.x\
|
||||
\
|
||||
|
||||
\b\fs40 \
|
||||
Upgrading from 0.4.x
|
||||
\b0\fs26 \
|
||||
\
|
||||
|
||||
\b PLEASE DOWNLOAD YOUR CURRENT QUEUE BEFORE UPGRADING
|
||||
\b0 \
|
||||
\
|
||||
When upgrading from a 0.4.x release such as 0.4.12 your old settings will be kept.\
|
||||
You will however be given a fresh queue and history. If you have items in your queue\
|
||||
from the older version of SABnzbd, you can either re-import the nzb files if you kept\
|
||||
an nzb backup folder, or temporarily go back to 0.4.x until your queue is complete.\
|
||||
The history is now stored in a better format meaning future upgrades should be backwards\
|
||||
compatible.\
|
||||
}
|
||||
31
README.txt
31
README.txt
@@ -1,31 +0,0 @@
|
||||
************************ SABnzbd 0.7.0 ************************
|
||||
|
||||
What's new:
|
||||
|
||||
- Download quota management
|
||||
- Windows: simple system tray menu
|
||||
- Multi-platform Growl support
|
||||
- NotifyOSD support for Linux distros that have it
|
||||
- Option to set maximum number of retries for servers (prevents deadlock)
|
||||
- Pre-download check to estimate completeness (reliability is limited)
|
||||
- Prevent partial downloading of par2 files that are not needed yet
|
||||
- Config->Special for settings previously only available in the sabnzbd.ini file
|
||||
- For Usenet servers with multiple IP addresses, pick a random one per connection
|
||||
- Add pseudo-priority "Stop" that will send the job immediately to the post-processing queue
|
||||
- Allow jobs still waiting for post-processing to be deleted too
|
||||
- More persistent retries for unreliable indexers
|
||||
- Single Configuration skin for all others skins (there is an option for the old style)
|
||||
- Config->Special for settings that were previously only changeable in the sabnzbd.ini file
|
||||
- Add Spanish, Portuguese (Brazil) and Polish translations
|
||||
- Individual RSS filter toggle
|
||||
- Unified OSX DMG
|
||||
|
||||
|
||||
About:
|
||||
SABnzbd is an open-source cross-platform binary newsreader.
|
||||
It simplifies the process of downloading from Usenet dramatically,
|
||||
thanks to its web-based user interface and advanced
|
||||
built-in post-processing options that automatically verify, repair,
|
||||
extract and clean up posts downloaded from Usenet.
|
||||
|
||||
(c) Copyright 2007-2012 by "The SABnzbd-team" <team@sabnzbd.org>
|
||||
77
SABnzbd.py
77
SABnzbd.py
@@ -16,8 +16,8 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
import sys
|
||||
if sys.version_info < (2,5):
|
||||
print "Sorry, requires Python 2.5 or higher."
|
||||
if sys.version_info < (2, 5):
|
||||
print "Sorry, requires Python 2.5, 2.6 or 2.7."
|
||||
sys.exit(1)
|
||||
|
||||
import logging
|
||||
@@ -253,6 +253,7 @@ def print_help():
|
||||
print " --log-all Log all article handling (for developers)"
|
||||
print " --console Force console logging for OSX app"
|
||||
print " --new Run a new instance of SABnzbd"
|
||||
print " --no_ipv6 Do not listen on IPv6 address [::1]"
|
||||
|
||||
def print_version():
|
||||
print """
|
||||
@@ -524,30 +525,24 @@ def all_localhosts():
|
||||
return ips
|
||||
|
||||
|
||||
def ipv_localhost(v):
|
||||
""" Return True if localhost resolves to some IPV4 ('4') or IPV6 ('6') address
|
||||
def check_resolve(host):
|
||||
""" Return True if 'host' resolves
|
||||
"""
|
||||
try:
|
||||
info = socket.getaddrinfo('localhost', None)
|
||||
info = socket.getaddrinfo(host, None)
|
||||
except:
|
||||
# localhost does not resolve
|
||||
# Does not resolve
|
||||
return False
|
||||
for item in info:
|
||||
item = item[4][0]
|
||||
if v == '4' and ':' not in item:
|
||||
return True
|
||||
elif v == '6' and ':' in item:
|
||||
return True
|
||||
return False
|
||||
return True
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
def get_webhost(cherryhost, cherryport, https_port):
|
||||
""" Determine the webhost address and port,
|
||||
return (host, port, browserhost)
|
||||
"""
|
||||
if cherryhost == '0.0.0.0' and not ipv_localhost('4'):
|
||||
if cherryhost == '0.0.0.0' and not check_resolve('127.0.0.1'):
|
||||
cherryhost = ''
|
||||
elif cherryhost == '::' and not ipv_localhost('6'):
|
||||
elif cherryhost == '::' and not check_resolve('::1'):
|
||||
cherryhost = ''
|
||||
|
||||
if cherryhost is None:
|
||||
@@ -562,9 +557,18 @@ def get_webhost(cherryhost, cherryport, https_port):
|
||||
try:
|
||||
info = socket.getaddrinfo(socket.gethostname(), None)
|
||||
except:
|
||||
# Hostname does not resolve, use 0.0.0.0
|
||||
cherryhost = '0.0.0.0'
|
||||
info = socket.getaddrinfo(localhost, None)
|
||||
# Hostname does not resolve
|
||||
try:
|
||||
# Valid user defined name?
|
||||
info = socket.getaddrinfo(cherryhost, None)
|
||||
except:
|
||||
if cherryhost not in ('localhost', '127.0.0.1', '::1'):
|
||||
cherryhost = '0.0.0.0'
|
||||
try:
|
||||
info = socket.getaddrinfo(localhost, None)
|
||||
except:
|
||||
info = socket.getaddrinfo('127.0.0.1', None)
|
||||
localhost = '127.0.0.1'
|
||||
for item in info:
|
||||
ip = str(item[4][0])
|
||||
if ip.startswith('169.254.'):
|
||||
@@ -670,13 +674,14 @@ def get_webhost(cherryhost, cherryport, https_port):
|
||||
def attach_server(host, port, cert=None, key=None):
|
||||
""" Define and attach server, optionally HTTPS
|
||||
"""
|
||||
http_server = _cpwsgi_server.CPWSGIServer()
|
||||
http_server.bind_addr = (host, port)
|
||||
if cert and key:
|
||||
http_server.ssl_certificate = cert
|
||||
http_server.ssl_private_key = key
|
||||
adapter = _cpserver.ServerAdapter(cherrypy.engine, http_server, http_server.bind_addr)
|
||||
adapter.subscribe()
|
||||
if not (sabnzbd.cfg.no_ipv6() and '::1' in host):
|
||||
http_server = _cpwsgi_server.CPWSGIServer()
|
||||
http_server.bind_addr = (host, port)
|
||||
if cert and key:
|
||||
http_server.ssl_certificate = cert
|
||||
http_server.ssl_private_key = key
|
||||
adapter = _cpserver.ServerAdapter(cherrypy.engine, http_server, http_server.bind_addr)
|
||||
adapter.subscribe()
|
||||
|
||||
|
||||
def is_sabnzbd_running(url):
|
||||
@@ -773,7 +778,7 @@ def evaluate_inipath(path):
|
||||
inipath = os.path.join(path, DEF_INI_FILE)
|
||||
if os.path.isdir(path):
|
||||
return inipath
|
||||
elif os.path.isfile(path):
|
||||
elif os.path.isfile(path) or os.path.isfile(path + '.bak'):
|
||||
return path
|
||||
else:
|
||||
dirpart, name = os.path.split(path)
|
||||
@@ -836,7 +841,7 @@ def commandline_handler(frozen=True):
|
||||
try:
|
||||
opts, args = getopt.getopt(info, "phdvncw:l:s:f:t:b:2:",
|
||||
['pause', 'help', 'daemon', 'nobrowser', 'clean', 'logging=',
|
||||
'weblogging=', 'server=', 'templates',
|
||||
'weblogging=', 'server=', 'templates', 'no_ipv6',
|
||||
'template2', 'browser=', 'config-file=', 'force',
|
||||
'version', 'https=', 'autorestarted', 'repair', 'repair-all',
|
||||
'log-all', 'no-login', 'pid=', 'new', 'sessions', 'console',
|
||||
@@ -914,6 +919,7 @@ def main():
|
||||
new_instance = False
|
||||
force_sessions = False
|
||||
osx_console = False
|
||||
no_ipv6 = False
|
||||
|
||||
service, sab_opts, serv_opts, upload_nzbs = commandline_handler()
|
||||
|
||||
@@ -1000,6 +1006,8 @@ def main():
|
||||
elif opt in ('--console',):
|
||||
re_argv.append(opt)
|
||||
osx_console = True
|
||||
elif opt in ('--no_ipv6',):
|
||||
no_ipv6 = True
|
||||
|
||||
sabnzbd.MY_FULLNAME = os.path.normpath(os.path.abspath(sabnzbd.MY_FULLNAME))
|
||||
sabnzbd.MY_NAME = os.path.basename(sabnzbd.MY_FULLNAME)
|
||||
@@ -1053,7 +1061,7 @@ def main():
|
||||
GetProfileInfo(vista_plus)
|
||||
# Find out where INI file is
|
||||
inifile = os.path.abspath(sabnzbd.DIR_PROG + '/' + DEF_INI_FILE)
|
||||
if not os.path.exists(inifile):
|
||||
if not os.path.exists(inifile) and not os.path.exists(inifile + '.bak'):
|
||||
inifile = os.path.abspath(sabnzbd.DIR_LCLDATA + '/' + DEF_INI_FILE)
|
||||
if sabnzbd.DARWIN:
|
||||
copy_old_files(sabnzbd.DIR_LCLDATA)
|
||||
@@ -1065,7 +1073,7 @@ def main():
|
||||
# All system data dirs are relative to the place we found the INI file
|
||||
sabnzbd.DIR_LCLDATA = os.path.dirname(inifile)
|
||||
|
||||
if not os.path.exists(inifile) and not os.path.exists(sabnzbd.DIR_LCLDATA):
|
||||
if not os.path.exists(inifile) and not os.path.exists(inifile + '.bak') and not os.path.exists(sabnzbd.DIR_LCLDATA):
|
||||
try:
|
||||
os.makedirs(sabnzbd.DIR_LCLDATA)
|
||||
except IOError:
|
||||
@@ -1082,6 +1090,9 @@ def main():
|
||||
# Set root folders for HTTPS server file paths
|
||||
sabnzbd.cfg.set_root_folders2()
|
||||
|
||||
if no_ipv6:
|
||||
sabnzbd.cfg.no_ipv6.set(True)
|
||||
|
||||
# Determine web host address
|
||||
cherryhost, cherryport, browserhost, https_port = get_webhost(cherryhost, cherryport, https_port)
|
||||
enable_https = sabnzbd.cfg.enable_https()
|
||||
@@ -1200,8 +1211,6 @@ def main():
|
||||
sabnzbd.cfg.log_backups())
|
||||
|
||||
format = '%(asctime)s::%(levelname)s::[%(module)s:%(lineno)d] %(message)s'
|
||||
if sabnzbd.WIN32:
|
||||
format += '\r'
|
||||
rollover_log.setFormatter(logging.Formatter(format))
|
||||
rollover_log.addFilter(FilterCP3())
|
||||
sabnzbd.LOGHANDLER = rollover_log
|
||||
@@ -1359,8 +1368,8 @@ def main():
|
||||
hosts[1] = '::1'
|
||||
|
||||
# The Windows binary requires numeric localhost as primary address
|
||||
if multilocal and cherryhost == 'localhost' and hosts[1] == '127.0.0.1':
|
||||
cherryhost = '::1'
|
||||
if multilocal and cherryhost == 'localhost':
|
||||
cherryhost = hosts[0]
|
||||
|
||||
if enable_https:
|
||||
if https_port:
|
||||
@@ -1804,4 +1813,4 @@ if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
else:
|
||||
main()
|
||||
main()
|
||||
@@ -73,6 +73,7 @@
|
||||
<table>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th>$T('rss-order')</th>
|
||||
<th>$T('rss-type')</th>
|
||||
<th>$T('rss-filter')</th>
|
||||
@@ -86,6 +87,7 @@
|
||||
<form action="upd_rss_filter" method="get">
|
||||
<tr class="odd">
|
||||
<td></td>
|
||||
<td><input type="checkbox" name="enabled" value="1" checked="checked" /></td>
|
||||
<td></td>
|
||||
<td>
|
||||
<select name="filter_type">
|
||||
@@ -152,6 +154,10 @@
|
||||
</td>
|
||||
|
||||
<form action="upd_rss_filter" method="get">
|
||||
<td>
|
||||
<input type="checkbox" name="enabled" value="1" <!--#if $filter[6] == '1' then 'checked="checked"' else ""#--> />
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<input type="text" size="3" name="new_index" value=$fnum>
|
||||
</td>
|
||||
@@ -208,6 +214,7 @@
|
||||
<input type="hidden" name="feed" value="$feed"/>
|
||||
<input type="hidden" name="session" value="$session">
|
||||
<input type="submit" value="$T('button-save')"/>
|
||||
<!--#if not $rss[$feed].filter_states[$fnum]#--> $T('Incorrect filter')<!--#end if#-->
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
|
||||
@@ -50,7 +50,9 @@
|
||||
|
||||
\$(document).ready(function () {
|
||||
|
||||
\$('.col2 H3').click(function () { \$(this).parent().next().toggle() });
|
||||
#if $pane != "Servers"#
|
||||
\$('.col2 H3').click(function () { \$(this).parent().next().toggle() });
|
||||
#end if#
|
||||
|
||||
\$('.sabnzbd_restart').click(function () {
|
||||
\$('.sabnzbd_restart').each(function () {
|
||||
@@ -97,7 +99,7 @@
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
</fieldset>
|
||||
</div><!-- /col1 -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--#end if#-->
|
||||
|
||||
@@ -341,6 +341,7 @@
|
||||
<td>
|
||||
<input type="submit" class="Save" value="$T('button-save')" />
|
||||
<input type="button" class="delFilter" value="$T('button-x')" />
|
||||
<!--#if not $rss[$feed].filter_states[$fnum]#--> $T('Incorrect filter')<!--#end if#-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -510,7 +511,7 @@
|
||||
}).done(function( msg ) {
|
||||
location.reload();
|
||||
});
|
||||
} else {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="host">$T('srv-host')</label>
|
||||
<input type="url" name="host" id="host" size="40" />
|
||||
<input type="text" name="host" id="host" size="40" />
|
||||
</div>
|
||||
<div class="field-pair alt">
|
||||
<label class="config" for="port">$T('srv-port')</label>
|
||||
@@ -86,18 +86,16 @@
|
||||
<div class="section">
|
||||
<div class="col2">
|
||||
<h3>$servers[$server]['name']</h3>
|
||||
<!--#if 'amounts' in $servers[$server]#-->
|
||||
<p>
|
||||
<b>$T('srv-bandwidth'):</b><br/>
|
||||
$T('total'): $servers[$server]['amounts'][0]<br/>
|
||||
$T('today'): $servers[$server]['amounts'][3]<br/>
|
||||
$T('thisWeek'): $servers[$server]['amounts'][2]<br/>
|
||||
$T('thisMonth'): $servers[$server]['amounts'][1]
|
||||
<table><tr>
|
||||
<td><input type="checkbox" class="toggleServerCheckbox" name="q_enable" value="1" <!--#if int($servers[$server]['enable']) != 0 then 'checked="checked"' else ""#--> rel="$server" /></td>
|
||||
<td> $T('enabled')</td>
|
||||
</tr></table>
|
||||
</p>
|
||||
<input type="button" value="$T('button-clrServer')" class="clrServer" />
|
||||
<!--#end if#-->
|
||||
<input type="button" value="$T('showDetails')" class="showserver" />
|
||||
</div><!-- /col2 -->
|
||||
<div class="col1">
|
||||
<div class="col1" style="display:none;">
|
||||
<fieldset>
|
||||
<div class="field-pair alt">
|
||||
<label class="config" for="enable$cur">$T('srv-enable')</label>
|
||||
@@ -106,7 +104,7 @@
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="host$cur">$T('srv-host')</label>
|
||||
<input type="url" name="host" id="host$cur" value="$servers[$server]['host']" size="40" />
|
||||
<input type="text" name="host" id="host$cur" value="$servers[$server]['host']" size="40" />
|
||||
</div>
|
||||
<div class="field-pair alt">
|
||||
<label class="config" for="port$cur">$T('srv-port')</label>
|
||||
@@ -154,6 +152,15 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
</div><!-- /col1 -->
|
||||
<div class="col2" style="display:block;">
|
||||
<!--#if 'amounts' in $servers[$server]#-->
|
||||
<b>$T('srv-bandwidth'):</b><br/>
|
||||
$T('total'): $servers[$server]['amounts'][0]<br/>
|
||||
$T('today'): $servers[$server]['amounts'][3]<br/>
|
||||
$T('thisWeek'): $servers[$server]['amounts'][2]<br/>
|
||||
$T('thisMonth'): $servers[$server]['amounts'][1]
|
||||
<!--#end if#-->
|
||||
</div>
|
||||
</div><!-- /section -->
|
||||
</form>
|
||||
<!--#end for#-->
|
||||
@@ -162,6 +169,15 @@
|
||||
|
||||
<script>
|
||||
\$(document).ready(function(){
|
||||
\$('.showserver').click(function () {
|
||||
\$(this).parent().next().toggle();
|
||||
\$(this).parent().next().next().toggle();
|
||||
if (\$(this).attr("value") == "$T('showDetails')") {
|
||||
\$(this).attr("value", "$T('hideDetails')");
|
||||
} else {
|
||||
\$(this).attr("value", "$T('showDetails')");
|
||||
}
|
||||
});
|
||||
\$('#addServerButton').click(function(){
|
||||
\$('#addServer').hide();
|
||||
\$('#addServerContent').show();
|
||||
@@ -188,6 +204,16 @@
|
||||
\$(this).parents('form:first').attr('action','clrServer').submit();
|
||||
return false;
|
||||
});
|
||||
\$('.toggleServerCheckbox').click(function(){
|
||||
var whichServer = \$(this).attr("rel");
|
||||
\$.ajax({
|
||||
type: "POST",
|
||||
url: "toggleServer",
|
||||
data: {server: whichServer, session: "$session" }
|
||||
}).done(function() {
|
||||
location.reload();
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -13,7 +13,11 @@
|
||||
<fieldset>
|
||||
<div class="field-pair alt">
|
||||
<label class="config" for="check_new_rel">$T('opt-check_new_rel')</label>
|
||||
<input type="checkbox" name="check_new_rel" id="check_new_rel" value="1" <!--#if int($check_new_rel) > 0 then 'checked="checked"' else ""#--> />
|
||||
<select name="check_new_rel" id="check_new_rel">
|
||||
<option value="0" <!--#if $check_new_rel == "1" then 'selected="selected" class="selected"' else ""#--> >$T('off')</option>
|
||||
<option value="1" <!--#if $check_new_rel == "2" then 'selected="selected" class="selected"' else ""#--> >$T('on')</option>
|
||||
<option value="2" <!--#if $check_new_rel == "3" then 'selected="selected" class="selected"' else ""#--> >$T('also-test')</option>
|
||||
</select>
|
||||
<span class="desc">$T('explain-check_new_rel')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
|
||||
@@ -174,6 +174,7 @@ $T('explain-RSS')
|
||||
<table class="rssTable">
|
||||
<tr>
|
||||
<th>$T('Plush-rss-delete')</th>
|
||||
<th> </th>
|
||||
<th>$T('rss-order')</th>
|
||||
<th>$T('rss-type')</th>
|
||||
<th>$T('rss-filter')</th>
|
||||
@@ -187,6 +188,7 @@ $T('explain-RSS')
|
||||
<form action="upd_rss_filter" method="get">
|
||||
<tr class="odd">
|
||||
<td></td>
|
||||
<td><input type="checkbox" name="enabled" value="1" checked="checked" /></td>
|
||||
<td></td>
|
||||
<td>
|
||||
<select name="filter_type">
|
||||
@@ -255,7 +257,10 @@ $T('explain-RSS')
|
||||
</td>
|
||||
|
||||
<form action="upd_rss_filter" method="get">
|
||||
<td>
|
||||
<td>
|
||||
<input type="checkbox" name="enabled" value="1" <!--#if $filter[6] == '1' then 'checked="checked"' else ""#--> />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" size="3" name="new_index" value=$fnum>
|
||||
</td>
|
||||
<td>
|
||||
@@ -310,6 +315,7 @@ $T('explain-RSS')
|
||||
<input type="hidden" name="feed" value="$feed"/>
|
||||
<input type="hidden" name="session" value="$session">
|
||||
<input type="submit" class="juiButton" value="$T('button-save')"/>
|
||||
<!--#if not $rss[$feed].filter_states[$fnum]#--> $T('Incorrect filter')<!--#end if#-->
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
</td>
|
||||
|
||||
<td class="download-title">
|
||||
<a href="nzb/$slot.nzo_id/" title="$T('status'): $T('post-'+$slot.status)<br/>$T('nzo-age'): $slot.avg_age<br/><!--#if $slot.missing#-->$T('missingArt'): $slot.missing<!--#end if#-->">$slot.filename</a>
|
||||
<a href="nzb/$slot.nzo_id/" title="$T('status'): $T('post-'+$slot.status)<br/>$T('nzo-age'): $slot.avg_age<br/><!--#if $slot.missing#-->$T('missingArt'): $slot.missing<!--#end if#-->">$slot.filename.replace('.', '.​').replace('_', '_​')</a>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
|
||||
@@ -118,15 +118,19 @@ jQuery(function($){
|
||||
|
||||
// fix for touch devices -- toggle visibility
|
||||
$('.sprite_q_menu_pausefor').bind('touchend', function(e) {
|
||||
e.preventDefault();
|
||||
if( $(this).hasClass('sprite_q_menu_pauseforsfHover') ) {
|
||||
$(this).find("ul").toggle();
|
||||
if (! $.browser.safari) {
|
||||
e.preventDefault();
|
||||
if( $(this).hasClass('sprite_q_menu_pauseforsfHover') ) {
|
||||
$(this).find("ul").toggle();
|
||||
}
|
||||
}
|
||||
});
|
||||
$('.sprite_q_queue').bind('touchend', function(e) {
|
||||
e.preventDefault();
|
||||
if( $(this).hasClass('sprite_q_queuesfHover') ) {
|
||||
$(this).find("ul").toggle();
|
||||
if (! $.browser.safari) {
|
||||
e.preventDefault();
|
||||
if( $(this).hasClass('sprite_q_queuesfHover') ) {
|
||||
$(this).find("ul").toggle();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<!--#for $warn in $warnings#-->
|
||||
<!--#set $odd = not $odd#-->
|
||||
<tr class="<!--#if $odd then "odd" else "even"#-->">
|
||||
<td>$warn.replace("\n","</td><td>")</td></tr>
|
||||
<td>$warn.replace("\n","</td><td>", 2)</td></tr>
|
||||
<!--#end for#-->
|
||||
</table>
|
||||
<!--#else#-->
|
||||
|
||||
@@ -79,6 +79,7 @@ MochiKit.DOM.addLoadEvent(location = "../../#config-rss");
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th>$T('rss-order')</th>
|
||||
<th>$T('rss-type')</th>
|
||||
<th>$T('rss-filter')</th>
|
||||
@@ -92,6 +93,7 @@ MochiKit.DOM.addLoadEvent(location = "../../#config-rss");
|
||||
<tbody>
|
||||
<tr id="$feed+new_filter">
|
||||
<td></td>
|
||||
<td><input type="checkbox" name="enabled" value="1" checked="checked" /></td>
|
||||
<td></td>
|
||||
<td>
|
||||
<select name="filter_type">
|
||||
@@ -157,7 +159,9 @@ MochiKit.DOM.addLoadEvent(location = "../../#config-rss");
|
||||
<td>
|
||||
<input type="submit" value="$T('rss-delFilter')" onclick="javascript:lr('config/rss/del_rss_filter','index=$fnum&feed=$feed')" />
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<input type="checkbox" name="enabled" value="1" <!--#if $filter[6] == '1' then 'checked="checked"' else ""#--> />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" size="3" name="new_index" value=$fnum>
|
||||
</td>
|
||||
@@ -213,6 +217,7 @@ MochiKit.DOM.addLoadEvent(location = "../../#config-rss");
|
||||
<input type="hidden" name="index" value="$fnum"/>
|
||||
<input type="hidden" name="feed" value="$feed"/>
|
||||
<input type="submit" value="$T('button-save')" onclick="javascript:submitconfig('config/rss/upd_rss_filter', this,'$feed+$fnum','1' )"/>
|
||||
<!--#if not $rss[$feed].filter_states[$fnum]#--> $T('Incorrect filter')<!--#end if#-->
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
<br/>
|
||||
<div id="tips" class="hidden">
|
||||
$T('wizard-tip1') <span class="bold">$T('wizard-tip2')</span><br/>
|
||||
<!--#if len($urls) > 1#--><!--#set $s = 's'#--><!--#else#--><!--#set $s = ''#--><!--#end if#-->
|
||||
<!--#set $tip3 = $T('wizard-tip3') % $s#-->
|
||||
$tip3:<br/><br/>
|
||||
<!--#set $tip3 = $T('wizard-tip3') % ''#-->
|
||||
$tip3<br/><br/>
|
||||
<div class="quoteBlock">
|
||||
<!--#set $i = 0#-->
|
||||
<!--#for $url in $urls#-->
|
||||
|
||||
49
package.py
49
package.py
@@ -95,7 +95,7 @@ def PatchVersion(name):
|
||||
try:
|
||||
pipe = subprocess.Popen(GitStatus, shell=True, stdout=subprocess.PIPE).stdout
|
||||
for line in pipe.read().split('\n'):
|
||||
if 'nothing to commit' in line:
|
||||
if 'nothing to commit' in line or 'nothing added to commit' in line:
|
||||
state = ''
|
||||
break
|
||||
pipe.close()
|
||||
@@ -207,7 +207,7 @@ def Dos2Unix(name):
|
||||
def Unix2Dos(name):
|
||||
""" Read file, remove \r, replace \n by \r\n and write back """
|
||||
base, ext = os.path.splitext(name)
|
||||
if ext.lower() not in ('.py', '.txt', '.css', '.js', '.tmpl', '.sh', '.cmd'):
|
||||
if ext.lower() not in ('.py', '.txt', '.css', '.js', '.tmpl', '.sh', '.cmd', '.mkd'):
|
||||
return
|
||||
|
||||
print name
|
||||
@@ -246,6 +246,11 @@ print sys.argv[0]
|
||||
Git = CheckPath('git')
|
||||
ZipCmd = CheckPath('zip')
|
||||
UnZipCmd = CheckPath('unzip')
|
||||
if os.name != 'nt':
|
||||
PanDoc = CheckPath('pandoc')
|
||||
else:
|
||||
PanDoc = None
|
||||
|
||||
if os.name == 'nt':
|
||||
msg = 'Requires the standard version of NSIS'
|
||||
NSIS = CheckPath('makensis')
|
||||
@@ -305,7 +310,7 @@ PatchVersion(release)
|
||||
# List of data elements, directories end with a '/'
|
||||
data_files = [
|
||||
'ABOUT.txt',
|
||||
'README.txt',
|
||||
'README.mkd',
|
||||
'INSTALL.txt',
|
||||
'GPL2.txt',
|
||||
'GPL3.txt',
|
||||
@@ -351,6 +356,11 @@ if target == 'app':
|
||||
os.system(GitRevertVersion)
|
||||
exit(1)
|
||||
|
||||
if not PanDoc:
|
||||
print "Sorry, requires pandoc in the $PATH"
|
||||
os.system(GitRevertVersion)
|
||||
exit(1)
|
||||
|
||||
# Check which Python flavour
|
||||
apple_py = 'ActiveState' not in sys.copyright
|
||||
|
||||
@@ -429,9 +439,16 @@ if target == 'app':
|
||||
else:
|
||||
os.system("cp -pR osx/unrar/unrar-leopard dist/SABnzbd.app/Contents/Resources/osx/unrar/unrar >/dev/null")
|
||||
os.system("cp icons/sabnzbd.ico dist/SABnzbd.app/Contents/Resources >/dev/null")
|
||||
os.system("cp README.rtf dist/SABnzbd.app/Contents/Resources/Credits.rtf >/dev/null")
|
||||
os.system("pandoc -f markdown -t rtf -s -o dist/SABnzbd.app/Contents/Resources/Credits.rtf README.mkd >/dev/null")
|
||||
os.system("find dist/SABnzbd.app -name .git | xargs rm -rf")
|
||||
|
||||
# Remove source files to prevent re-compilation, which would invalidate signing
|
||||
py_ver = '%s.%s' % (sys.version_info[0], sys.version_info[1])
|
||||
os.system("find dist/SABnzbd.app/Contents/Resources/lib/python%s/Cheetah -name '*.py' | xargs rm" % py_ver)
|
||||
os.system("find dist/SABnzbd.app/Contents/Resources/lib/python%s/xml -name '*.py' | xargs rm" % py_ver)
|
||||
os.remove('dist/SABnzbd.app/Contents/Resources/site.py')
|
||||
os.system("sleep 5")
|
||||
|
||||
if OSX_LION:
|
||||
# Sign the App if possible
|
||||
authority = os.environ.get('SIGNING_AUTH')
|
||||
@@ -447,15 +464,11 @@ if target == 'app':
|
||||
|
||||
print 'Create src %s' % fileOSr
|
||||
os.system('tar -czf %s --exclude ".git*" --exclude "sab*.zip" --exclude "SAB*.tar.gz" --exclude "*.cmd" --exclude "*.pyc" '
|
||||
'--exclude "*.sparseimage" --exclude "dist" --exclude "build" --exclude "*.nsi" --exclude "win" --exclude "*.dmg" '
|
||||
'--exclude "*.sparseimage*" --exclude "dist" --exclude "build" --exclude "*.nsi" --exclude "win" --exclude "*.dmg" '
|
||||
'./ >/dev/null' % (fileOSr) )
|
||||
|
||||
# Copy README.txt
|
||||
os.system("cp README.rtf /Volumes/%s/" % volume)
|
||||
|
||||
# Remove site.py to prevent re-compilation (otherwise the OSX Firewall may complain)
|
||||
os.remove('/Volumes/%s/OS X 10.6 and Above/SABnzbd.app/Contents/Resources/site.py' % volume)
|
||||
os.remove('/Volumes/%s/OS X 10.5 and Below/SABnzbd.app/Contents/Resources/site.py' % volume)
|
||||
# Generate README.rtf
|
||||
os.system("cp dist/SABnzbd.app/Contents/Resources/Credits.rtf /Volumes/%s/README.rtf" % volume)
|
||||
|
||||
#Unmount sparseimage
|
||||
os.system("hdiutil eject /Volumes/%s/>/dev/null" % volume)
|
||||
@@ -518,7 +531,7 @@ elif target in ('binary', 'installer'):
|
||||
for tup in options['data_files']:
|
||||
for file in tup[1]:
|
||||
name, ext = os.path.splitext(file)
|
||||
if ext.lower() in ('.txt', '.cmd'):
|
||||
if ext.lower() in ('.txt', '.cmd', '.mkd'):
|
||||
Unix2Dos("dist/%s" % file)
|
||||
DeleteFiles('dist/Sample-PostProc.sh')
|
||||
DeleteFiles('dist/PKG-INFO')
|
||||
@@ -563,6 +576,7 @@ elif target in ('binary', 'installer'):
|
||||
DeleteFiles(r'dist\lib\API-MS-Win-*.dll')
|
||||
DeleteFiles(r'dist\lib\MSWSOCK.DLL')
|
||||
DeleteFiles(r'dist\lib\POWRPROF.DLL')
|
||||
DeleteFiles(r'dist\lib\KERNELBASE.dll')
|
||||
|
||||
############################
|
||||
# Remove .git residue
|
||||
@@ -574,6 +588,13 @@ elif target in ('binary', 'installer'):
|
||||
# Curl for Python 2.5
|
||||
os.system(r'unzip -o win\curl\curl.zip -d dist\lib')
|
||||
|
||||
############################
|
||||
# Fix icon issue with NZB association
|
||||
os.system(r'copy dist\icons\nzb.ico dist')
|
||||
|
||||
############################
|
||||
# Rename MKD file
|
||||
rename_file('dist', 'README.mkd', 'README.txt')
|
||||
|
||||
############################
|
||||
if target == 'installer':
|
||||
@@ -652,6 +673,10 @@ else:
|
||||
shutil.copy2(file, dest)
|
||||
Dos2Unix(fullname)
|
||||
|
||||
############################
|
||||
# Rename MKD file
|
||||
rename_file(root, 'README.mkd', 'README.txt')
|
||||
|
||||
os.chdir(root)
|
||||
os.chdir('..')
|
||||
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-04-28 12:01+0000\n"
|
||||
"PO-Revision-Date: 2012-03-14 04:51+0000\n"
|
||||
"PO-Revision-Date: 2012-07-07 04:53+0000\n"
|
||||
"Last-Translator: Rene <Unknown>\n"
|
||||
"Language-Team: Danish <da@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-29 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 15149)\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-08 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15558)\n"
|
||||
|
||||
#: email/email.tmpl:1
|
||||
msgid ""
|
||||
@@ -65,42 +65,42 @@ msgid ""
|
||||
"<!--#end if#-->\n"
|
||||
msgstr ""
|
||||
"##\n"
|
||||
"## Default Email template for SABnzbd\n"
|
||||
"## This a Cheetah template\n"
|
||||
"## Documentation: http://sabnzbd.wikidot.com/email-templates\n"
|
||||
"## Standard Email skabelon til SABnzbd\n"
|
||||
"## Dette er en Cheetah skabelon\n"
|
||||
"## Dokumentation: http://sabnzbd.wikidot.com/email-templates\n"
|
||||
"##\n"
|
||||
"## Newlines and whitespace are significant!\n"
|
||||
"## Linjeskift og blanktegn er betydelig!\n"
|
||||
"##\n"
|
||||
"## These are the email headers\n"
|
||||
"## Disse er e-mail-headerne \n"
|
||||
"To: $to\n"
|
||||
"From: $from\n"
|
||||
"Date: $date\n"
|
||||
"Subject: SABnzbd has <!--#if $status then \"completed\" else \"failed\" #--> "
|
||||
"job $name\n"
|
||||
"Subject: SABnzbd har <!--#if $status then \"hentet\" else \"fejlet\" #--> job "
|
||||
"$name\n"
|
||||
"X-priority: 5\n"
|
||||
"X-MS-priority: 5\n"
|
||||
"## After this comes the body, the empty line is required!\n"
|
||||
"## Efter dette kommer body, den tomme linje kræves!\n"
|
||||
"\n"
|
||||
"Hej,\n"
|
||||
"<!--#if $status #-->\n"
|
||||
"SABnzbd har downloaded \"$name\" <!--#if $msgid==\"\" then \"\" else "
|
||||
"\"(newzbin #\" + $msgid + \")\"#-->\n"
|
||||
"SABnzbd har hentet \"$name\" <!--#if $msgid==\"\" then \"\" else \"(newzbin "
|
||||
"#\" + $msgid + \")\"#-->\n"
|
||||
"<!--#else#-->\n"
|
||||
"SABnzbd har ikke downloaded \"$name\" <!--#if $msgid==\"\" then \"\" else "
|
||||
"SABnzbd kunne ikke hente \"$name\" <!--#if $msgid==\"\" then \"\" else "
|
||||
"\"(newzbin #\" + $msgid + \")\"#-->\n"
|
||||
"<!--#end if#-->\n"
|
||||
"Færdig kl. $end_time\n"
|
||||
"Downloaded $size\n"
|
||||
"Hentet $size\n"
|
||||
"\n"
|
||||
"Resultat af job:\n"
|
||||
"<!--#for $stage in $stages #-->\n"
|
||||
"Stage $stage <!--#slurp#-->\n"
|
||||
"Etape $stage <!--#slurp#-->\n"
|
||||
"<!--#for $result in $stages[$stage]#-->\n"
|
||||
" $result <!--#slurp#-->\n"
|
||||
"<!--#end for#-->\n"
|
||||
"<!--#end for#-->\n"
|
||||
"<!--#if $script!=\"\" #-->\n"
|
||||
"Output from user script \"$script\" (Exit code = $script_ret):\n"
|
||||
"Output fra bruger script \"$script\" (Exit code = $script_ret):\n"
|
||||
"$script_output\n"
|
||||
"<!--#end if#-->\n"
|
||||
"<!--#if $status #-->\n"
|
||||
@@ -138,20 +138,20 @@ msgid ""
|
||||
"Bye\n"
|
||||
msgstr ""
|
||||
"##\n"
|
||||
"## RSS Email template for SABnzbd\n"
|
||||
"## This a Cheetah template\n"
|
||||
"## Documentation: http://sabnzbd.wikidot.com/email-templates\n"
|
||||
"## RSS Email skabelon til SABnzbd\n"
|
||||
"## Dette er Cheetah skabelon\n"
|
||||
"## Dokumentation: http://sabnzbd.wikidot.com/email-templates\n"
|
||||
"##\n"
|
||||
"## Newlines and whitespace are significant!\n"
|
||||
"## Linjeskift og blanktegn er betydelig!\n"
|
||||
"##\n"
|
||||
"## These are the email headers\n"
|
||||
"## Dette er email headers\n"
|
||||
"To: $to\n"
|
||||
"From: $from\n"
|
||||
"Date: $date\n"
|
||||
"Subject: SABnzbd har tilføjet $antal jobs til køen\n"
|
||||
"X-priority: 5\n"
|
||||
"X-MS-priority: 5\n"
|
||||
"## After this comes the body, the empty line is required!\n"
|
||||
"## Efter dette kommer body, den tomme linje kræves!\n"
|
||||
"\n"
|
||||
"Hej,\n"
|
||||
"\n"
|
||||
@@ -189,24 +189,24 @@ msgid ""
|
||||
"Bye\n"
|
||||
msgstr ""
|
||||
"##\n"
|
||||
"## Bad URL Fetch Email template for SABnzbd\n"
|
||||
"## This a Cheetah template\n"
|
||||
"## Documentation: http://sabnzbd.wikidot.com/email-templates\n"
|
||||
"## Dårlig URL Fetch E-mail skabelon for SABnzbd\n"
|
||||
"## Dette er en Cheetah skabelon\n"
|
||||
"## Dokumentation: http://sabnzbd.wikidot.com/email-templates\n"
|
||||
"##\n"
|
||||
"## Newlines and whitespace are significant!\n"
|
||||
"## Linjeskift og blanktegn er betydelig!\n"
|
||||
"##\n"
|
||||
"## These are the email headers\n"
|
||||
"## Dette er email headers\n"
|
||||
"To: $to\n"
|
||||
"From: $from\n"
|
||||
"Date: $date\n"
|
||||
"Subject: SABnzbd failed to fetch an NZB\n"
|
||||
"Subject: SABnzbd kunne ikke hente en NZB\n"
|
||||
"X-priority: 5\n"
|
||||
"X-MS-priority: 5\n"
|
||||
"## After this comes the body, the empty line is required!\n"
|
||||
"## Efter dette kommer body, den tomme linje kræves!\n"
|
||||
"\n"
|
||||
"Hi,\n"
|
||||
"Hej,\n"
|
||||
"\n"
|
||||
"SABnzbd has failed to retrieve the NZB from $url.\n"
|
||||
"The error message was: $msg\n"
|
||||
"SABnzbd kunne ikke hente NZB fra $url.\n"
|
||||
"Fejl meddelelsen er: $msg\n"
|
||||
"\n"
|
||||
"Bye\n"
|
||||
"Farvel\n"
|
||||
|
||||
1161
po/main/SABnzbd.pot
1161
po/main/SABnzbd.pot
File diff suppressed because it is too large
Load Diff
249
po/main/da.po
249
po/main/da.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-05-09 04:42+0000\n"
|
||||
"Last-Translator: Rene <Unknown>\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-02 18:27+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: Danish <da@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-10 05:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15213)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:11+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -53,7 +53,7 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS fejlede på grund af manglende CERT og KEY filer"
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd lukning udført."
|
||||
|
||||
@@ -110,15 +110,15 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Det lykkedes ikke at tilslutte (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Signal %s modtaget, gemmer og lukker..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "henter msgid %s fra www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
@@ -126,31 +126,31 @@ msgstr ""
|
||||
"Fejl ved hentning af msgid %s fra www.newzbin2.es - Kontroller, at dit "
|
||||
"brugernavn og din adgangskode er korrekt"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Forsøger at hente NZB fra %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Kan ikke oprette temp fil for %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Forsøger at sætte status på ikke eksisterende server %s"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "For lidt diskplads tvinger system i PAUSE"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Fejl i tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Gemmes %s mislykkedes"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Downloadning af %s mislykkedes"
|
||||
|
||||
@@ -158,7 +158,7 @@ msgstr "Downloadning af %s mislykkedes"
|
||||
msgid "Test Notification"
|
||||
msgstr "Afprøv notifikation"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
@@ -167,31 +167,31 @@ msgstr "Ingen"
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "ADVARSEL:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "FEJL:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "Ukendt"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Det lykkedes ikke at kompilere regex for søgestreng: %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "d"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -219,7 +219,7 @@ msgstr "Kvote brugt, pause downloading"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s er ikke en godkendt e-mail adresse"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Kræver serveradresse"
|
||||
|
||||
@@ -291,19 +291,19 @@ msgstr "Ukendt fejl under afkodning af %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => mangler fra alle servere, afviser"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Fejl ved fjernelse af %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Kan ikke læse %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Kan ikke læse overvåget mappe %s"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "Sat på pause"
|
||||
@@ -507,85 +507,85 @@ msgstr ""
|
||||
"derefter på knappen nedenunder..<br /><br /><strong><a "
|
||||
"href=\"..\">Opdater</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Feed"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Daglig"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "Mandag"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "Tirsdag"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "Onsdag"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "Torsdag"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "Fredag"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "Lørdag"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "Søndag"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "slået fra"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Server løsning"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Fejl parameter"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Tilbage"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "Job \"%s\" er genoptaget i køen"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr "Jobs markeret med '*' vil ikke blive hentet automatisk."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Matchede"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Matchede ikke"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Hentet"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Hentet indtil videre"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Fejl værdi før %s: %s"
|
||||
|
||||
@@ -613,7 +613,7 @@ msgstr "Kunne ikke læse nøgler i registreringsdatabasen for specielle mapper"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Oprettelse af (%s) mislykkedes"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Det lykkedes ikke at flytte %s til %s"
|
||||
|
||||
@@ -629,15 +629,15 @@ msgstr "Forsøg igen"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "URL hentning mislykkedes; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "pyopenssl modul mangler, du skal installere for HTTPS-adgang"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Fejl ved oprettelse af SSL-nøgle og certifikat."
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Det lykkedes ikke at ændre rettigheder på %s"
|
||||
|
||||
@@ -959,111 +959,112 @@ msgstr "%s artikler havde ikke-matchende dubletter"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Det lykkedes ikke at importere %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Advarsler"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Inaktiv"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Opsætning"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Kø"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Rens køen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Historik"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Tøm historik"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Hastighedsbegrænsning"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Genoptag"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Henter Newzbin bogmærker"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Scan overvåget mappe"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Færdig mappe"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Ufuldstændig mappe"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Fejlfinding"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Genstart"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Genstart uden login"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Afslut"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Kø (de første 10 poster)"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Tom"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Historik (de 10 seneste poster)"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Ny version tilgænglig"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Gå til guiden"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Standser"
|
||||
|
||||
@@ -1262,107 +1263,107 @@ msgstr ""
|
||||
msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr "Det lykkedes ikke at fjerne nzo fra efterbehandlings køen (id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr "Overførslen kan mislykkes, kun %s af det krævet %s tilgængelige"
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr "Hentning mislykkedes – Findes ikke hos din server's retention?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Kan ikke oprette endelig mappe %s"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Ingen efterbehandling på grund af mislykket bekræftigelse"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Flytter"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "Sendt %s til kø"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Det lykkedes ikke at omdøbe \"%s\" til \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Kunne ikke flytte filer"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Køre script"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Kør bruger script %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "Kørte %s"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Mere"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Vis script udlæsning"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Overførsel fuldført"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "Download mislykkedes"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Efterbehandling mislykkedes for %s (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "se logfil"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Efterbehandling blev afbrudt (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Fjernelse af %s mislykkedes."
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Det lykkedes ikke at fjerne arbejdsmappen (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Efterbehandling"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Forsøger SFV verifikation"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Some files failed to verify against \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Kontrolleret korrekt ved hjælp af SFV filer"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] Ingen par2 sæt"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Fjernelse af%s mislykkedes"
|
||||
|
||||
@@ -1414,12 +1415,12 @@ msgstr "Vis grænseflade"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Åben færdig mappe"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Luk ned"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Tilbageværende"
|
||||
|
||||
@@ -4218,7 +4219,15 @@ msgstr "Trin fem"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "F.eks. 119 eller 563 for SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "Afslut SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4234,31 +4243,31 @@ msgstr ""
|
||||
"Den er licenseret under GNU General Public License version 2 eller (efter "
|
||||
"eget valg) enhver senere version\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Det lykkedes ikke at hente TV info (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Det lykkedes ikke at omdøbe: %s til %s"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Kunne ikke omdøbe lignende fil: %s til %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Ugyldigt nzbmatrix rapport nummer %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr "Du skal bruge en nzbmatrix VIP konto for at bruge API'EN"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Ugyldig nzbmatrix legitimationsoplysninger"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Problem at få adgang til nzbmatrix server (%s)"
|
||||
|
||||
|
||||
253
po/main/de.po
253
po/main/de.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-06-04 16:01+0000\n"
|
||||
"Last-Translator: Thomas Lucke (Lucky) <Unknown>\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-02 18:33+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-05 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 15353)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:11+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -55,7 +55,7 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS wegen fehlenden Zertifikats- und Schlüsseldateien deaktiviert."
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd wurde beendet"
|
||||
|
||||
@@ -116,45 +116,47 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Die Verbindung konnte nicht überprüft werden. (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Signal %s erkannt. Speichern und beenden..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr ""
|
||||
msgstr "Hole msgid %s von www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
msgstr ""
|
||||
"Fehler beim Abrufen msgid %s from www.newzbin2.es - Bitte stelle sicher das "
|
||||
"Benutzername und Passwort korrekt eingestellt sind"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Versuche NZB-Datei von %s abzurufen"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Temporäre Datei für %s konnte nicht angelegt werden"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Versuche Status für nicht existierenden Server %s zu setzen"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Angehalten wegen zu wenig freiem Speicherplatz"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Fehler in tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Fehler beim Speichern von %s"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Fehler beim Laden von %s"
|
||||
|
||||
@@ -162,7 +164,7 @@ msgstr "Fehler beim Laden von %s"
|
||||
msgid "Test Notification"
|
||||
msgstr "Benachrichtigungen testen"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Nichts"
|
||||
@@ -171,32 +173,32 @@ msgstr "Nichts"
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "WARNUNG:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "FEHLER:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "unbekannt"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr ""
|
||||
"Kompilieren des regulären Ausdrucks für den Suchbegriff %s fehlgeschlagen."
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "t"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -224,7 +226,7 @@ msgstr "Kontingent aufgebraucht, Downloads werden angehalten"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s ist keine gültige E-Mail-Adresse"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Server-Adresse wird benötigt"
|
||||
|
||||
@@ -299,19 +301,19 @@ msgstr "Unbekannter Fehler %s beim Dekodieren"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s wurde auf keinem Server gefunden und daher übersprungen"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Fehler beim Entfernen von %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "%s kann nicht gelesen werden"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Überwachter Ordner %s kann nicht gelesen werden"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "Angehalten"
|
||||
@@ -520,87 +522,87 @@ msgstr ""
|
||||
"danach auf folgenden Knopf.<br /><br /><strong><a "
|
||||
"href=\"..\">Aktualisieren</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Feed"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Täglich"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "Montag"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "Dienstag"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "Mittwoch"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "Donnerstag"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "Freitag"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "Samstag"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "Sonntag"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "Aus"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Adresse wird aufgelöst..."
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Fehlerhafter Parameter"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "Auftrag \"%s\" wurde wieder zur Warteschlange hinzugefügt"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr ""
|
||||
"Aufträge, die mit '*' markiert sind, werden nicht automatisch "
|
||||
"heruntergeladen."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Entspricht"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Entspricht nicht"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Heruntergeladen"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Bis jetzt heruntergeladen"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Fehlerhafter Wert für %s: %s"
|
||||
|
||||
@@ -630,7 +632,7 @@ msgstr "Lesen der Registry-Schlüssel für spezielle Ordner fehlgeschlagen."
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Erstellen von %s fehlgeschlagen"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Verschieben von %s nach %s fehlgeschlagen"
|
||||
|
||||
@@ -646,15 +648,15 @@ msgstr "Erneut versuchen"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "Abrufen der URL fehlgeschlagen; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "pyopenssl-Modul fehlt. Bitte installieren für SSL-Unterstützung."
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Fehler beim Anlegen des SSL-Schlüssels und -Zertifikats."
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Rechte von %s konnten nicht geändert werden"
|
||||
|
||||
@@ -983,111 +985,112 @@ msgstr "%s Artikel hatten nicht übereinstimmende Duplikate"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Fehler beim Importieren von %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Warnungen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Leerlauf"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Warteschlange"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Warteschlange leeren"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Verlauf"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Verlauf leeren"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Geschwindigkeit begrenzen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Anhalten"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "Min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Fortsetzen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Newzbin-Lesezeichen abrufen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Überwachter Ordner lesen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Fertige Downloads"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Unfertige Download"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Fehler suchen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Neu starten"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Neustart ohne Anmeldung"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Warteschlange mit den 10 obersten Einträgen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Leer"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Verlauf mit den letzten 10 Einträgen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Neue Version verfügbar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Assistent öffnen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Beenden..."
|
||||
|
||||
@@ -1300,108 +1303,108 @@ msgstr ""
|
||||
"Fehler beim Entfernen der NZB-Datei von der Nachbearbeitungs-Warteschlange "
|
||||
"(id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr ""
|
||||
"Download wahrscheinlich fehlgeschlagen, nur %s von benötigten %s verfügbar"
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr "Fehler beim Herunterladen. Ist die Datei zu alt?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Konnte Download-Ordner %s nicht anlegen"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Keine Nachbearbeitung wegen fehlgeschlagener Überprüfung"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Verschieben"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "%s wurde an die Warteschlange gesendet"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Fehler beim Umbenennen von \"%s\" nach \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Dateien verschieben fehlgeschlagen"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Ausführen des Skripts"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Ausführen des Benutzer-Skripts %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "%s ausgeführt"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Mehr"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Skript-Ausgabe anzeigen"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Download fertig"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "Download Fehlgeschlagen"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Nachbearbeitung von %s fehlgeschlagen (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "Beachten Sie die Protokolldatei"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Nachbearbeitung wurde abgebrochen (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Aufräumen von %s fehlgeschlagen"
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Fehler beim Entfernen des Arbeitsverzeichnisses %s."
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Nachbearbeitung"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Versuche SFV-Überprüfung"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Überprüfung einiger Dateien mittels %s fehlgeschlagen"
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Überprüfung mit SFV-Datei(en) erfolgreich"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] Keine PAR2-Sätze"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Entfernen von %s fehlgeschlagen"
|
||||
|
||||
@@ -1453,12 +1456,12 @@ msgstr "Interface anzeigen"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Öffne Zielverzeichnis"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Verbleibend"
|
||||
|
||||
@@ -4297,7 +4300,15 @@ msgstr "Schritt 5"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "Z.B. 119 oder 563 für SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "SABnzbd beenden"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr "Assistenten starten"
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4313,31 +4324,31 @@ msgstr ""
|
||||
"Sie steht unter der GNU GENERAL PUBLIC LICENSE Version 2 oder (nach Ihrer "
|
||||
"Option) jeder späteren Version.\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Fehler beim Abrufen der TV-Informationen: %s"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Umbenennen von %s nach %s fehlgeschlagen."
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Umbenennen der gleichen Datei von %s nach %s fehlgeschlagen."
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Ungültige nzbmatrix.com-Bericht-ID %s."
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr "Sie benötigen einen NZBMatrix VIP-Konto, um die API zu nutzen"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Fehlerhafte nzbmatrix Anmeldedaten"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Problem beim Zugriff auf den nzbmatrix.com-Server: %s"
|
||||
|
||||
|
||||
255
po/main/es.po
255
po/main/es.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-05-09 21:05+0000\n"
|
||||
"Last-Translator: Jabroni <asskick@gmail.com>\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-02 18:36+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-10 05:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15213)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:12+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -55,7 +55,7 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS deshabilitado debido a la falta de archivos CERT y KEY"
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Cierre de SABnzbd terminado"
|
||||
|
||||
@@ -112,15 +112,15 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "No se pudo determinar el resultado de la conexión (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Señal %s capturado, guardando y saliendo..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "Obteniendo msgid %s desde www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
@@ -128,31 +128,31 @@ msgstr ""
|
||||
"Error al obtener msgid %s desde www.newzbin2.es - Por favor asegurese que su "
|
||||
"nombre de usuario y contraseña estan configurados"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Tratando de buscar NZB de %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "No se puede crear el archivo temporal para %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Intentando cambiar el estado de servidor inexistente %s"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Muy poco espacio en disco forzando PAUSA"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Fallo en tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Guardar de %s no se pudo completar."
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Cargar de %s no se pudo completar."
|
||||
|
||||
@@ -160,7 +160,7 @@ msgstr "Cargar de %s no se pudo completar."
|
||||
msgid "Test Notification"
|
||||
msgstr "Notificación de prueba"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
@@ -169,31 +169,31 @@ msgstr "Ninguno"
|
||||
msgid "Default"
|
||||
msgstr "Predeterminado"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "AVISO:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "ERROR:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "desconocido"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Compilación de regex para término fallo: %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "d"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -221,7 +221,7 @@ msgstr "Quota gastado, pausando cola"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s no es una dirección de correo electrónico válida."
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Se necesita la dirección del servidor"
|
||||
|
||||
@@ -293,19 +293,19 @@ msgstr "Error inespecifico mientras descodificando %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => faltando de todos servidores, desechando"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Error al quitar %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "No se puede leer %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Directorio Watched %s no se puede leer"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "En pausa"
|
||||
@@ -510,85 +510,85 @@ msgstr ""
|
||||
"seleccione el boton abajo.<br /><br /><strong><a "
|
||||
"href=\"..\">Refrescar</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Canal"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Diariamente"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "Lunes"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "Martes"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "Miércoles"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "Jueves"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "Viernes"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "Sábado"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "domingo"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "desactivado"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Resolviendo sitio"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Parámetro incorrecto"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Atrás"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "La tarea \"%s\" ha sido re-agregada a la cola"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr "Tareas marcadas con un '*' no serán descargadas automaticamente."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Encontrado(s)"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "No encontrado(s)"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Descargado"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Descargado hasta ahora"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Valor incorrecto para %s: %s"
|
||||
|
||||
@@ -617,7 +617,7 @@ msgstr "Falla al leer las llaves de registro para los directorios especiales"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Error al crear (%s)"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Error al mover %s a %s"
|
||||
|
||||
@@ -633,15 +633,15 @@ msgstr "Inténtelo de nuevo"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "Error al recuperar la URL; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "Falta el módulo pyopensll, favor de instalarlo para acceso https"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Error al crear la llave SSL y el certificado"
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "No se puede cambiar los permisos de %s"
|
||||
|
||||
@@ -969,111 +969,112 @@ msgstr "%s artículos contenían duplicados inconexos"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Error importando %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Advertencias"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Inactivo"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Configuración"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Cola"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Limpiar Cola"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Purgar historial"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Limitar Velocidad"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Pausar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "mín."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Reanudar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Obtener favoritos de Newzbin"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Escanear directorio bajo observación"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Carpeta Completa"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Carpeta Incompleta"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Resolver un problema"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Reiniciar sin sesión iniciada"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Salir"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Encolar los primeros 10 elementos"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Vacía"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Histórico últimos 10 elementos"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Nueva versión disponible"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Ir al Asistente"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Deteniendo..."
|
||||
|
||||
@@ -1281,109 +1282,109 @@ msgstr ""
|
||||
msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr "Error al eliminar nzo desde la cola de postprocesado (id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr "La descarga fallo, solo %s de los %s requeridos estan disponibles"
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr ""
|
||||
"Error en la descarga - ¡Tal vez está fuera del límite de retención de tu "
|
||||
"proveedor?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Imposible crear directorio final %s"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "No se ha podido post-procesar debido a un fallo en la verificación"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Moviendo"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "Enviado(s) %s a la cola"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Error al renombrar \"%s\" a \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Error al mover ficheros"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Ejecutando script"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Ejecutando script de usuario %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "Se ejecutó %s"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Más"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Ver salida del script"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Descarga Completada"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "La descarga falló"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Error al post-procesar %s (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "ver fichero de log"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Se ha abortado el PostProcesamiento (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Ha fallado la limpieza de %s"
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Error al eliminar el directorio de trabajo (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Post-Procesado"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Intentando verificación por SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Han fallado algunos ficheros al verificarse \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Se ha verificado correctamente utilizando ficheros SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] No hay conjuntos par2"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Error al eliminar %s"
|
||||
|
||||
@@ -1435,12 +1436,12 @@ msgstr "Mostrar interfaz"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Abrir todo el folder"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Restante"
|
||||
|
||||
@@ -3121,7 +3122,7 @@ msgstr "Necesita"
|
||||
|
||||
#: sabnzbd/skintext.py:512 [Config->RSS filter-type selection menu]
|
||||
msgid "RequiresCat"
|
||||
msgstr ""
|
||||
msgstr "RequiereCat"
|
||||
|
||||
#: sabnzbd/skintext.py:515 [Config->RSS section header]
|
||||
msgid "Not Matched"
|
||||
@@ -3793,11 +3794,11 @@ msgstr "Renombrar"
|
||||
|
||||
#: sabnzbd/skintext.py:705
|
||||
msgid "Left"
|
||||
msgstr "Izquierda"
|
||||
msgstr "Restante"
|
||||
|
||||
#: sabnzbd/skintext.py:706 # sabnzbd/skintext.py:720
|
||||
msgid "Purge the History?"
|
||||
msgstr "¿Limpiar el historial?"
|
||||
msgstr "¿Vaciar el historial?"
|
||||
|
||||
#: sabnzbd/skintext.py:710
|
||||
msgid "Changes have not been saved, and will be lost."
|
||||
@@ -4266,7 +4267,15 @@ msgstr "Quinto Paso"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "P.ej. 119 ó 563 si es SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "Salir SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr "Iniciar Asistente"
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4282,31 +4291,31 @@ msgstr ""
|
||||
"Está licenciado bajo la versión 2 ó posterior de GNU GENERAL PUBLIC "
|
||||
"LICENSE.\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Error al recuperar info de la serie (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Error al renombrar: %s a %s"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Error al renombrar ficheros similares: %s a %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Número de informe de nzbmatrix incorrecto: %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr "Necesitas una cuenta VIP en nzbmatrix para usar la API"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Credenciales de nzbmatrix incorrectas"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Error al acceder al servidor de nzbmatrix (%s)"
|
||||
|
||||
|
||||
249
po/main/fr.po
249
po/main/fr.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-06-04 06:35+0000\n"
|
||||
"Last-Translator: BigKids <bigkids@live.com>\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-02 18:28+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-05 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 15353)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:11+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -55,7 +55,7 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS désactivé car le certificat et la clé n'ont pas été trouvés"
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Arrêt terminé de SABnzbd"
|
||||
|
||||
@@ -117,15 +117,15 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Impossible de déterminer le résultat de la connexion (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Signal %s intercepté, enregistrement et fermeture en cours..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "Récupération msgid %s from www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
@@ -133,31 +133,31 @@ msgstr ""
|
||||
"Erreur d'obtention msgid %s à partir de www.newzbin2.es - S'il vous plaît "
|
||||
"assurez-vous que votre nom d'utilisateur et mot de passe soient définit"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Essai de récupération du NZB depuis %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Ne peut créer le fichier temporaire pour %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Essayer de définir l'état du serveur %s"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Espace disque faible PAUSE forcée"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Échec dans tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Enregistrement %s echoué"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Chargement %s echoué"
|
||||
|
||||
@@ -165,7 +165,7 @@ msgstr "Chargement %s echoué"
|
||||
msgid "Test Notification"
|
||||
msgstr "Test de Notification"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Aucun"
|
||||
@@ -174,31 +174,31 @@ msgstr "Aucun"
|
||||
msgid "Default"
|
||||
msgstr "Par défaut"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "AVERTISSEMENT:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "ERREUR:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "inconnu"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Echec de la compilation de regex pour la recherche du terme : %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "j"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -227,7 +227,7 @@ msgstr "Quota atteint, téléchargement mis en pause"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s n'est pas une adresse email valide"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Adresse du serveur requis"
|
||||
|
||||
@@ -300,19 +300,19 @@ msgstr "Erreur inconnue lors du décodage de %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => absents de tous les serveurs, rejeté"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Erreur lors de la suppression de %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Ne peut lire %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Impossible de lire le dossier a surveillé %s"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "En pause"
|
||||
@@ -521,86 +521,86 @@ msgstr ""
|
||||
"secondes et cliquer sur le bouton ci-dessous.<br /><br /><strong><a "
|
||||
"href=\"..\">Rafraîchir</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Flux RSS"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Quotidien"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "Lundi"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "Mardi"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "Mercredi"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "Jeudi"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "Vendredi"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "Samedi"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "Dimanche"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "non"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Résoudre l'adresse"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Paramètre incorrect"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Retour"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "%s a été remis en file d'attente"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr ""
|
||||
"Les éléments marqués avec '*' ne seront pas automatiquement téléchargés."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Correspond"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Ne correspond pas"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Téléchargé"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Téléchargé jusqu'à présent"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Valeur incorrecte pour %s: %s"
|
||||
|
||||
@@ -628,7 +628,7 @@ msgstr "Échec de la lecture des clés de registre pour les dossiers spéciaux"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Échec lors de la création de (%s)"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Échec lors du déplacement de %s vers %s"
|
||||
|
||||
@@ -644,15 +644,15 @@ msgstr "Réessayer"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "Échec de récupération de l'URL; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "module pyopenssl manquant, nécessaire pour l'accès HTTPS"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Erreur lors de la création de la clé et du certificat SSL"
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Impossible de changer les permissions pour %s"
|
||||
|
||||
@@ -976,111 +976,112 @@ msgstr "%s articles ne correspondaient pas a la copie"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Erreur lors de l'importation de %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Avertissements"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Inactif"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Configuration"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "File d'attente"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Vider file d'attente"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Vider l'historique"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Vitesse limite"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Reprendre"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Récupérer favoris Newzbin"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Analyser le dossier des Nzbs"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Dossier complet"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Dossier incomplet"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Résoudre les problèmes"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Redémarrer"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Redémarrer sans se connecter"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Quitter"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Mettre en file d'attente les 10 premiers articles"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Vide"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Historique les 10 derniers articles"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Nouvelle version disponible"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Aller à l'assistant"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Arrêt en cours..."
|
||||
|
||||
@@ -1291,109 +1292,109 @@ msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr ""
|
||||
"Échec de la suppression du nzo de la file d'attente de post-traitement (id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr ""
|
||||
"Le téléchargement pourrait échouer, seulement %s des requis %s sont "
|
||||
"disponibles"
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr "Échec de téléchargement - Rétention du serveur dépassée ?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Impossible de créer le dossier %s"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Pas de post-traitement car la vérification a echoué"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Déplacement"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "%s mis en file d'attente"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Erreur lors du renommage de \"%s\" en \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Impossible de déplacer les fichiers"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Exécution de script"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Exécution du script utilisateur %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "%s exécuté"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Plus"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Voir le résultat du script"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Téléchargement terminé"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "Téléchargement échoué"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Échec du post-traitement pour %s (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "voir le fichier journal"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Post-traitement interrompu (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Échec du nettoyage de %s."
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Erreur lors de la suppression du dossier de travail (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Post-traitement"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Essai vérification SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Certains fichiers n'ont pas pu être vérifiés \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Vérifié avec succès en utilisant des fichiers SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] Pas de fichiers par2"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Échec de la suppression de %s"
|
||||
|
||||
@@ -1445,12 +1446,12 @@ msgstr "Afficher l’interface"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Ouvrir le dossier terminé"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Arrêter"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Restant"
|
||||
|
||||
@@ -4291,7 +4292,15 @@ msgstr "Étape 5"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "Ex: 119 ou 563 pour le SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "Quitter SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr "Démarrer l'Assistant"
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4307,31 +4316,31 @@ msgstr ""
|
||||
"Il est distribué sous licence GNU GENERAL PUBLIC LICENSE Version 2 ou toute "
|
||||
"autre version ultérieure.\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Erreur lors de l'obtention des information TV (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Échec du renommage : %s en %s"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Impossible de renommer le fichier similaire : %s en %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Numéro de rapport nzbmatrix invalide %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr "Vous avez besoin d'un compte VIP NZBMatrix pour utiliser l'API"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Identification NZBMatrix invalide"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Problème d'accès au serveur nzbmatrix (%s)"
|
||||
|
||||
|
||||
245
po/main/nb.po
245
po/main/nb.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-03-24 11:05+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-08 05:38+0000\n"
|
||||
"X-Generator: Launchpad (build 15204)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:12+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -52,7 +52,7 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "Deaktiverte HTTPS på grunn av manglende CERT- og KEY-filer."
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd er nå avsluttet"
|
||||
|
||||
@@ -109,15 +109,15 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Kunne ikke koble til (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Signal %s mottatt, lagrer og avslutter..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "henter meldings-id %s fra www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
@@ -125,31 +125,31 @@ msgstr ""
|
||||
"Feil under henting av meldings-id %s fra www.newzbin2.es - Kontrollér at "
|
||||
"brukernavn og passord er satt"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Forsøker å hente NZB fra %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Kan ikke lage midlertidig fil for %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Forsøker å sette status på ikke-eksisterende server %s"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "For lite diskplass, nedlasting satt på pause"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Feil i tempfil.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Lagring av %s mislyktes"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Lasting av %s mislyktes"
|
||||
|
||||
@@ -157,7 +157,7 @@ msgstr "Lasting av %s mislyktes"
|
||||
msgid "Test Notification"
|
||||
msgstr "Test varslingen"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
@@ -166,31 +166,31 @@ msgstr "Ingen"
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "ADVARSEL:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "FEIL:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "ukjent"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Kunne ikke lage regex for søkestreng: %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "d"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -218,7 +218,7 @@ msgstr "Kvote oppbrukt, setter nedlasting på pause"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s er ikke en godkjent e-post-adresse"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Krever server-adresse"
|
||||
|
||||
@@ -290,19 +290,19 @@ msgstr "Ukjent feil oppstod under dekoding av %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => mangler på alle servere, fjerner"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Feil ved fjerning av %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Kan ikke lese %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Kan ikke lese den overvåkede mappen %s"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "Pauset"
|
||||
@@ -506,85 +506,85 @@ msgstr ""
|
||||
"deretter på knappen under.<br /><br /><strong><a href=\"..\">Last på "
|
||||
"nytt</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "RSS-kilde"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Daglig"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "Mandag"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "Tirsdag"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "Onsdag"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "Torsdag"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "Fredag"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "Lørdag"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "Søndag"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "av"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Løs adresse"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Feil parameter"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Tilbake"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "\"%s\" jobber er igjen i køen"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr "Nedlasting markert med '*' kommer ikke å bli lastet ned automatisk."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Like"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Ulike"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Nedlastet"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Nedlastet en så lenge"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Feil verdi for %s: %s"
|
||||
|
||||
@@ -612,7 +612,7 @@ msgstr "Kunne ikke lese registernøkkel for spesialmapper"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Opprettelse av (%s) mislyktes"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Kunne ikke flytte %s til %s"
|
||||
|
||||
@@ -628,15 +628,15 @@ msgstr "Forsøk igjen"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "URL henting mislyktes; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "pyopenssl modul mangler, vennligst installer den for https tilgang"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Kunne ikke lage SSL-nøkkel eller sertifikat."
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Kunne ikke endre rettigheter på %s"
|
||||
|
||||
@@ -958,111 +958,112 @@ msgstr "%s artikler hadde ulike duplikater"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Kunne ikke importere %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Advarsler"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Ledig"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Konfigurasjon"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Kø"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Slett kø"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Historikk"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Slett historikk"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Hastighetsbegrensning"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Stans midlertidig"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Gjenoppta"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Hente Newzbin bokmerker"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Sjekk overvåkingsmappe"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Ferdig mappe"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Ufullstendig mappe"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Feilsøking"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Starte på nytt"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Restart uten å logge inn"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Avslutte"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Kø (10 første)"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Tom"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Historikk (10 siste)"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Ny utgave er tilgjengelig"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Gå til guiden"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Avslutter..."
|
||||
|
||||
@@ -1263,107 +1264,107 @@ msgstr ""
|
||||
msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr "Kunne ikke fjerne nzo fra etterbehandlings køen (id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr "Henting mislyktes - Overskrevet din servers retensjon?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Kan ikke opprette mappe %s"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Ingen etterbehandling, på grunn av misslykket verifisering"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Flytter"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "Sendte %s til køen"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Kunne ikke endre navn fra \"%s\" til \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Klarte ikke å flytte filer"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Kjører skript"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Kjør brukerskript %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "Kjørte i %s"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Mer"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Vis skript kjøringen"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Nedlasting ferdig"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "Nedlasting mislyktes"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Etterbehandling mislyktes for %s (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "se loggfil"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Etterbehandling ble avbrutt (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Rensning av %s mislyktes"
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Kunne ikke fjerne arbeidsmappe (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Etterbehandling"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Prøver SFV-verifisering"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Some files failed to verify against \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Verifisering med SFV-filer var vellykket"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] Ingen par2 deler"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Fjerning av %s mislyktes"
|
||||
|
||||
@@ -1415,12 +1416,12 @@ msgstr "Vis grensesnitt"
|
||||
msgid "Open complete folder"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Avslutt"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Gjenstår"
|
||||
|
||||
@@ -4189,7 +4190,15 @@ msgstr "Steg fem"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4199,31 +4208,31 @@ msgid ""
|
||||
"option) any later version.\n"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Kunne ikke hente TV info (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Kunne ikke endre navn fra: %s til %s"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Kunne ikke endre navn på lik fil: %s til %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Ugyldig nzbmatrix rapporteringsnummer %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Oppkoblingsproblem til nzbmatrix server (%s)"
|
||||
|
||||
|
||||
277
po/main/nl.po
277
po/main/nl.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-06-06 09:39+0000\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-02 18:22+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-07 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15353)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:11+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -23,9 +23,7 @@ msgstr "Kan web interface niet starten"
|
||||
|
||||
#: SABnzbd.py:339 [Warning message]
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr ""
|
||||
"Kan bedieningsstijl bestanden niet vinden: %s, De standaard stijl wordt "
|
||||
"gebruikt."
|
||||
msgstr "Kan web sjabloon %s niet vinden, standaard sjabloon wordt gebruikt"
|
||||
|
||||
#: SABnzbd.py:464 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
@@ -33,7 +31,7 @@ msgstr "_yenc module niet gevonden!"
|
||||
|
||||
#: SABnzbd.py:471 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 propgramma niet gevonden!"
|
||||
msgstr "par2 programma niet gevonden!"
|
||||
|
||||
#: SABnzbd.py:479 [Warning message]
|
||||
msgid "unrar binary... NOT found"
|
||||
@@ -55,13 +53,13 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS is uitgeschakeld vanwege ontbrekende CERT en KEY bestanden."
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd is afgesloten"
|
||||
|
||||
#: sabnzbd/utils/servertests.py:35
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Geen host naam opgegeven."
|
||||
msgstr "Geen hostnaam opgegeven."
|
||||
|
||||
#: sabnzbd/utils/servertests.py:41
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
@@ -70,11 +68,11 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py:74
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Geen password opnieuw in"
|
||||
msgstr "Wachtwoord gemaskeerd met ******, voer opnieuw in"
|
||||
|
||||
#: sabnzbd/utils/servertests.py:78
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ongeldige server gegevens"
|
||||
msgstr "Ongeldige servergegevens"
|
||||
|
||||
#: sabnzbd/utils/servertests.py:90
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
@@ -87,7 +85,7 @@ msgstr "Tijdslimiet overschreden"
|
||||
|
||||
#: sabnzbd/utils/servertests.py:97
|
||||
msgid "Invalid server address."
|
||||
msgstr "Ongeldige server naam"
|
||||
msgstr "Ongeldige servernaam"
|
||||
|
||||
#: sabnzbd/utils/servertests.py:101
|
||||
msgid "Server quit during login sequence."
|
||||
@@ -99,7 +97,7 @@ msgstr "Server heeft een gebruikersnaam en een wachtwoord nodig."
|
||||
|
||||
#: sabnzbd/utils/servertests.py:126
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Verbinding is gelukt."
|
||||
msgstr "Succesvol verbonden!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py:129
|
||||
msgid "Authentication failed, check username/password."
|
||||
@@ -114,47 +112,47 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Kan verbindingsresultaat niet bepalen (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Signaal %s ontvangen, opslaan en afluiten..."
|
||||
msgstr "Signaal %s ontvangen, opslaan en afsluiten..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "Ophalen van rapport %s bij newzbin2.es"
|
||||
msgstr "msgid %s aan het ophalen van www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
msgstr ""
|
||||
"Fout bij ophalen van rapport %s van www.newzbin2.es - Controleer je "
|
||||
"gebruikersnaam en wachtwoord."
|
||||
"Fout tijdens ophalen van msgid %s van www.newzbin2.es - Zorg dat je "
|
||||
"gebruikersnaam en wachtwoord goed zijn ingesteld"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Probeer NZB op te halen van %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Kan geen tijdelijk bestand %s aanmaken"
|
||||
msgstr "Kan geen tijdelijk bestand maken voor %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Poging om status van niet bestaande server %s te wijzigen"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Te weinig schijf ruimte, forceer Pauze"
|
||||
msgstr "Te weinig schijfruimte, pauze geforceerd"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Probleem met tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Opslaan van %s lukt niet"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Inlezen van %s lukt niet"
|
||||
|
||||
@@ -162,7 +160,7 @@ msgstr "Inlezen van %s lukt niet"
|
||||
msgid "Test Notification"
|
||||
msgstr "Test Melding"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Geen"
|
||||
@@ -171,31 +169,31 @@ msgstr "Geen"
|
||||
msgid "Default"
|
||||
msgstr "Standaard"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "WAARSCHUWING:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "FOUT:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "onbekend"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Samenstellen van reguliere expressie lukt niet: %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "d"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -223,7 +221,7 @@ msgstr "Quotum verbruikt, downloaded is gestopt"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s is geen geldig email adres"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Server adres verplicht"
|
||||
|
||||
@@ -295,19 +293,19 @@ msgstr "Onbekende fout tijdens het decoderen van %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => ontbreekt op alle servers, overslaan"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Fout bij verwijderen van %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Kan %s niet lezen"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Kan Bewaakte Map %s niet lezen"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "Pauze"
|
||||
@@ -513,85 +511,85 @@ msgstr ""
|
||||
"dan op onderstaande knop.<br /><br /><strong><a "
|
||||
"href=\"..\">Verversen</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Feed"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "dagelijks"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "maandag"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "dinsdag"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "woensdag"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "donderdag"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "vrijdag"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "zaterdag"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "zondag"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "uit"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Adres opzoeken"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Foute instelling"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Terug"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "Opdracht \"%s\" terug naar de wachtrij"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr "Items met een ster '*' worden niet automatisch gedownload."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Geselecteerd"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Niet geselecteerd"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Gedaan"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Tot nu toe gedaan"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Foute waarde voor %s: %s"
|
||||
|
||||
@@ -619,7 +617,7 @@ msgstr "Kan register sleutels voor speciale mappen niet lezen"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Aanmaken %s mislukt"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Verplaatsen van %s naar %s mislukt"
|
||||
|
||||
@@ -635,15 +633,15 @@ msgstr "Opnieuw"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "URL ophalen mislukt; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "Module \"pyopenssl\" ontbreekt, geen HTTPS mogelijk"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Fout bij aanmaken van SSL sleutel en certificaat"
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Kan beveiliging van %s niet aanpassen"
|
||||
|
||||
@@ -963,111 +961,112 @@ msgstr "%s artikelen hadden afwijkende duplicaten"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Fout bij importeren van %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Meldingen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Rust"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Instellen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Wachtrij"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Wis wachtrij"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Geschiedenis"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Wis de volledige geschiedenis"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Beperk snelheid"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Pauze"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Doorgaan"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Haal Newzbin Bladwijzers op"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Bewaakte map uitlezen"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Map voltooid"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Map download"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Probleemoplosser"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Herstarten"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Herstarten zonder login"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Afsluiten"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Wachtrij Eerste 10 Items"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Leeg"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Geschiedenis Laaste 10 Items"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Nieuwe versie beschikbaar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Ga naar Wizard"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Afsluiten..."
|
||||
|
||||
@@ -1271,108 +1270,108 @@ msgstr ""
|
||||
msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr "Verwijderen van nzo van nabewerkingswachtrij mislukt"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr ""
|
||||
"Download mislukt waarschijnlijk, slechts %s van de benodigde %s beschikbaar"
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr "Download mislukt - Buiten de server bewaartijd?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Kan bestemmingsmap %s niet maken"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Geen nabewerking vanwege mislukte verificatie"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Verplaatsen"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "%s naar de wachtrij gestuurd"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Fout bij hernoemen van \"%s\" tot \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Verplaatsen van bestanden mislukt"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Script uitvoeren"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Gebruiker script %s loopt"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "%s is klaar"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Meer"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Toon script resultaat"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Download voltooid"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "Download mislukt"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Nabewerking van %s mislukt (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "zie logbestand"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Nabewerking is afgebroken (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Opschonen van %s mislukt"
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Fout bij verwijderen van werkmap %s"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Nabewerking"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Probeer SFV verificatie"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Sommige bestanden konden niet geverifieerd worden met \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Verificatie m.b.v. SFV bestanden is gelukt"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] Geen par2 groepen"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Verwijderen van %s mislukt"
|
||||
|
||||
@@ -1424,12 +1423,12 @@ msgstr "Toon Interface"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Open map met voltooide downloads"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Afsluiten"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Nog te doen"
|
||||
|
||||
@@ -3805,7 +3804,7 @@ msgstr "Plush instellingen"
|
||||
|
||||
#: sabnzbd/skintext.py:726
|
||||
msgid "Update Available!"
|
||||
msgstr "Beschikbare Update!"
|
||||
msgstr "Update beschikbaar!"
|
||||
|
||||
#: sabnzbd/skintext.py:733 # sabnzbd/skintext.py:793
|
||||
msgid "Pause for how many minutes?"
|
||||
@@ -4234,7 +4233,15 @@ msgstr "Stap Vijf"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "Bv. 119 of 563 voor SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "Stop SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr "Wizard starten"
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4250,32 +4257,32 @@ msgstr ""
|
||||
"De licentie is de GNU GENERAL PUBLIC LICENSE Versie 2 of (naar eigen keuze) "
|
||||
"een latere versie.\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Fout bij ophalen TV info (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Hernoemen van %s tot %s mislukt"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Hernoemen van gelijkaardig bestand %s tot %s mislukt"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Ongeldig nzbmatrix rapport nummer %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr ""
|
||||
"Je hebt een nzbmatrix VIP account nodig om de API te kunnen gebruiken"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Ongeldige nzbmatrix gegevens"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Geen toegang tot nzbmatrix (%s)"
|
||||
|
||||
|
||||
249
po/main/pl.px
249
po/main/pl.px
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-05-31 09:53+0000\n"
|
||||
"Last-Translator: Tomasz 'Zen' Napierala <tomasz@napierala.org>\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-02 18:35+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:45+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:12+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -51,7 +51,7 @@ msgstr "Nazwa hosta 0.0.0.0 wymaga adresu IPv6 do dostępu z zewnątrz"
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "Wyłączono HTTPS z powodu braku plików CERT oraz KEY"
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnabd został wyłączony"
|
||||
|
||||
@@ -113,15 +113,15 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nie można określić rezultatu połączenia (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Odebrano sygnał %s. Zapisywanie i i zamykanie programu..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "pobieranie wiadomości %s z www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
@@ -129,31 +129,31 @@ msgstr ""
|
||||
"Błąd pobierania %s z www.newzbin2.es - Upewnij się, że ustawiłeś nazwę "
|
||||
"użytkownika i hasło"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Próba pobrania NZB z %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Nie można utworzyć tymczasowego pliku dla %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Próba ustawienia statusu nieistniejącego serwera %s"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Zbyt mało miejsca, wymuszanie WSTRZYMANIA"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Błąd w tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Nie udało się zapisać %s"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Nie udało się wczytać %s"
|
||||
|
||||
@@ -161,7 +161,7 @@ msgstr "Nie udało się wczytać %s"
|
||||
msgid "Test Notification"
|
||||
msgstr "Powiadomienie testowe"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Brak"
|
||||
@@ -170,31 +170,31 @@ msgstr "Brak"
|
||||
msgid "Default"
|
||||
msgstr "Domyślny"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "UWAGA:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "BŁĄD:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "nieznany"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Błąd kompilacji wyrażenia regularnego dla wyszukiwania: %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "d"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "g"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -222,7 +222,7 @@ msgstr "Przekroczono limit, zatrzymywanie pobierania"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s nie jest prawidłowym adresem mail"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Wymagane jest podanie adresu serwera"
|
||||
|
||||
@@ -294,19 +294,19 @@ msgstr "Nieznany błąd podczas dekodowania %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => nie znaleziono na żadnym serwerze, porzucam zadanie"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Błąd podczas usuwania %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Nie można odczytać %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Nie można przeczytać Obserwowanego Katalogu %s"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "Wstrzymano"
|
||||
@@ -510,85 +510,85 @@ msgstr ""
|
||||
" <br />SABnzbd został wyłączony.<br />Zaczekaj około 5 sekund i kliknij "
|
||||
"guzik poniżej.<br /><br /><strong><a href=\"..\">Odśwież</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Kanał"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Codziennie"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "Poniedziałek"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "Wtorek"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "Środa"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "Czwartek"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "Piątek"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "Sobota"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "Niedziela"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "wyłączone"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Rozwiązywanie odresu"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Błędny parametr"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Powrót"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "Zadanie \"%s\" zostało dodane ponownie do kolejki"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr "Zadanie oznaczone jako '*' nie zostanie automatycznie pobrane."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Dopasowano"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Nie dopasowano"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Pobrane"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Dotychczas pobrano"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Nieprawidłowa wartość %s: %s"
|
||||
|
||||
@@ -616,7 +616,7 @@ msgstr "Nie udało się odczytac kluczy rejestru dla katalogów specjalnych"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Nie udało się utworzyć (%s)"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Nie udało się przenieść %s do %s"
|
||||
|
||||
@@ -632,15 +632,15 @@ msgstr "Spróbuj ponownie"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "Pobieranie URL nie powiodło się; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "brak modułu pyopenssl, należy go zainstalować w celu dostępu https"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Błąd tworzenie certyfikatu i klucza SSL"
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Nie można zmienić uprawnień %s"
|
||||
|
||||
@@ -965,111 +965,112 @@ msgstr "%s artykułów posiada niepasujące duplikaty"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Błąd importu %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Ostrzeżenia"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Bezczynny"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguracja"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Kolejka"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Czyszczenie kolejki"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Historia"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "usunięcie historii"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Ograniczenie prędkości"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Pauza"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Wznów"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Pobierz zakładki z Newzbin"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Przeszukaj obserwowany katalog"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Folder zakończonych"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Folder niezakończonych"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Rozwiąż problem"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Uruchom ponownie"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Restart bez logowania"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Zakończ"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Zakolejkuj 10 pierwszych"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Brak"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Historia ostatnich 10"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Dostępne jest nowe wydanie"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Uruchom kreatora"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Zatrzymywanie..."
|
||||
|
||||
@@ -1269,108 +1270,108 @@ msgstr ""
|
||||
msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr "Nie udało sie usunąć nzo z kolejki przetwarzania (id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr ""
|
||||
"Pobieranie nie powiodło się - Poza okresem przechowywania twojego serwera?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Nie można utworzyć końcowego katalogu %s"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Brak przetwarzania końcowego z powodu nieudanej weryfikacji"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Przenoszenie"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "Wysłano %s do kolejki"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Błąd zmiany nazwy \"%s\" na \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Nie udało się przenieść plików"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Uruchamianie skryptu"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Uruchamianie skryptu użytkownika %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "Uruchomiono %s"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Więcej"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Zobacz komunikaty wyjścia skryptu"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Zakończono pobieranie"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "Pobieranie nie powiodło się"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Przetwarzanie końcowe nie powiodło się dla %s (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "sprawdź plik dziennika"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Przetwarzanie zostało przerwane (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Czyszczenie %s nie powiodło się"
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Błąd usuwania katalogu roboczego (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Przetwarzanie końcowe"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Próba weryfikacji SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Weryfikacja niektórych plików względem \"%s\" nie powiodła się"
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Poprawnie zweryfikowano z użyciem plików SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s} Brak zestawów par2"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Usuwanie %s nie powiodło się"
|
||||
|
||||
@@ -1422,12 +1423,12 @@ msgstr "Pokaż interfejs"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Otwórz katalog z pobranymi plikami"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Zakończ"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Pozostało"
|
||||
|
||||
@@ -4229,7 +4230,15 @@ msgstr "Krok piąty"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "Np. 119 lub 563 dla SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "Wyjście SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr "Uruchom Asystenta"
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4245,31 +4254,31 @@ msgstr ""
|
||||
"Program jest wydany na licencji GNU GENERAL PUBLIC LICENSE wersja 2 lub (dla "
|
||||
"twojego wyboru) każda późniejsza wersja.\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Błąd pobieranie informacji TV (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Nie udało się zmienić nazwy: %s na %s"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Nie udało się zmienić nazwy podobnego pliku: %s na %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Nieprawidłowy numer raportu nzbmatrix %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr "Dostęp do API wymaga konta VIP nzbmatrix"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Nieprawidłowe dane uwierzytelniające nzbmatrix."
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Problem z dostępem do serwera nzbmatrix (%s)"
|
||||
|
||||
|
||||
295
po/main/pt_BR.po
295
po/main/pt_BR.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-05-26 00:41+0000\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-03 02:19+0000\n"
|
||||
"Last-Translator: lrrosa <Unknown>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-27 04:57+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:12+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -54,7 +54,7 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS desabilitado pela falta de arquivos CERT e KEY"
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Encerramento do SABnzbd concluído"
|
||||
|
||||
@@ -112,15 +112,15 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Não foi possível determinar o resultado da conexão (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Sinal %s encontrado. Salvando e saindo..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "obtendo msgid %s de www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
@@ -128,31 +128,31 @@ msgstr ""
|
||||
"Erro ao obter msgid %s de www.newzbin2.es - Por favor, tenha certeza que seu "
|
||||
"usuário e senha estão corretos."
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Tentando obter NZB de %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Não é possível criar um arquivo temporário para %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Tentando definir o status do servidor inexistente %s"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Muito pouco espaço em disco. Forçando PAUSE"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Falha em tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Falha ao salvar %s"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Falha ao carregar %s"
|
||||
|
||||
@@ -160,7 +160,7 @@ msgstr "Falha ao carregar %s"
|
||||
msgid "Test Notification"
|
||||
msgstr "Notificação de teste"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
@@ -169,31 +169,31 @@ msgstr "Nenhum"
|
||||
msgid "Default"
|
||||
msgstr "Padrão"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "AVISO:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "ERRO:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "desconhecido"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Falha ao compilar a expressão para o termo pesquisado: %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "d"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -222,7 +222,7 @@ msgstr "Quota esgotada, pausando o download"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s não é um endereço de e-mail válido"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Endereço do servidor necessário"
|
||||
|
||||
@@ -294,19 +294,19 @@ msgstr "Erro desconhecido ao decodificar %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => faltando em todos os servidores. Descartando"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Erro ao remover %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Não é possível ler %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Não é possível ler a Pasta de Assistidos %s"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "Pausado"
|
||||
@@ -513,85 +513,85 @@ msgstr ""
|
||||
"segundos e, em seguida, clique no botão abaixo.<br /><br /><strong><a "
|
||||
"href=\"..\">Atualizar</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Feed"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Diariamente"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "segunda-feira"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "terça-feira"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "quarta-feira"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "quinta-feira"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "sexta-feira"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "sábado"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "domingo"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "desligado"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Resolvendo endereço"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Parâmetro incorreto"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "A tarefa \"%s\" foi adicionada novamente à fila"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr "As tarefas marcadas com um '*' não serão baixadas automaticamente."
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Correspondido"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Não correspondido"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Baixados"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Baixados até agora"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Valor incorreto para %s: %s"
|
||||
|
||||
@@ -619,7 +619,7 @@ msgstr "Falha ao ler chaves de registro para pastas especiais"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Falha ao criar (%s)"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Falha ao mover %s para %s"
|
||||
|
||||
@@ -635,15 +635,15 @@ msgstr "Tente novamente"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "A busca da URL falhou; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "Módulo pyOpenSSL ausente. Instale-o para obter acesso https"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Erro ao criar chave SSL e certificado"
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Não é possível alterar permissões de %s"
|
||||
|
||||
@@ -653,7 +653,7 @@ msgstr "Unindo"
|
||||
|
||||
#: sabnzbd/newsunpack.py:359
|
||||
msgid "Incomplete sequence of joinable files"
|
||||
msgstr "Sequência incompleta de arquivos acopláveis."
|
||||
msgstr "Sequência de arquivos multiparte incompleta"
|
||||
|
||||
#: sabnzbd/newsunpack.py:360 # sabnzbd/newsunpack.py:368
|
||||
msgid "File join of %s failed"
|
||||
@@ -751,7 +751,7 @@ msgstr "A descompactação falhou. Este(s) arquivo(s) estão faltando:"
|
||||
|
||||
#: sabnzbd/newsunpack.py:668
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Descompactando %s arquivos/pastas em %s"
|
||||
msgstr "Descompactados %s arquivos/pastas em %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:702
|
||||
msgid "%s files in %s"
|
||||
@@ -964,111 +964,112 @@ msgstr "%s artigos tinham duplicatas não-correspondentes"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Erro ao importar %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Alertas"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Inativo"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Configuração"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Fila"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Limpar Fila"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Histórico"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Limpar Histórico"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Limitar Velocidade"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Pausar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Obter Favoritos Newzbin"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Varrer pasta de assistidos"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Pasta de Finalizados"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Pasta de Não-Finalizados"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Resolução de problemas"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Reinicie sem login"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Sair"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Fila dos primeiros 10 items"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Esvaziar"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Histórico dos últimos 10 items"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Nova versão disponível"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Ir para o assistente"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Parando..."
|
||||
|
||||
@@ -1274,108 +1275,108 @@ msgstr ""
|
||||
msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr "Falha ao remover nzb da fila de pós-processamento (id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr ""
|
||||
"O download pode falhar. Somente %s de %s necessários estão disponíveis"
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr "O download falhou - Fora da retenção do seu servidor?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Não é possível criar a pasta final %s"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Sem pós-processamento por causa de falha na verificação"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Movendo"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "Enviados %s para a fila"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Erro ao renomear \"%s\" para \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Falha ao mover arquivos"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Executando script"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Executando script de usuário %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "%s executado"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Mais"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Ver saída do script"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Download concluído"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "O download falhou"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "O pós-processamento falhou para %s (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "veja o arquivo de log"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "O pós-processamento foi interrompido (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "A limpeza de %s falhou."
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Erro ao remover a pasta de trabalho (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Pós-processamento"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Tentando verificação SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Alguns arquivos falharam na verificação de \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Verificado com sucesso usando arquivos SFV"
|
||||
msgstr "Verificado com sucesso. Usando arquivos SFV."
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] Nenhum conjunto par2"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "A remoção de %s falhou"
|
||||
|
||||
@@ -1427,12 +1428,12 @@ msgstr "Exibir interface"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Abrir pasta de finalizados"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Encerrar"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Restante"
|
||||
|
||||
@@ -1466,7 +1467,7 @@ msgstr "Script"
|
||||
|
||||
#: sabnzbd/skintext.py:31 [PP Source of the NZB (path or URL)] # sabnzbd/skintext.py:101 [Where to find the SABnzbd sourcecode]
|
||||
msgid "Source"
|
||||
msgstr "Origem"
|
||||
msgstr "Código fonte"
|
||||
|
||||
#: sabnzbd/skintext.py:32 [PP Failure message]
|
||||
msgid "Failure"
|
||||
@@ -1654,7 +1655,7 @@ msgstr "Parâmetros:"
|
||||
|
||||
#: sabnzbd/skintext.py:99
|
||||
msgid "Python Version"
|
||||
msgstr "Versão Python"
|
||||
msgstr "Versão do Python"
|
||||
|
||||
#: sabnzbd/skintext.py:100 [Home page of the SABnzbd project]
|
||||
msgid "Home page"
|
||||
@@ -1890,7 +1891,7 @@ msgstr "Ordenar pelo nome"
|
||||
|
||||
#: sabnzbd/skintext.py:181 [Queue page button]
|
||||
msgid "Sort by age"
|
||||
msgstr "Ordenar por data"
|
||||
msgstr "Ordenar por idade"
|
||||
|
||||
#: sabnzbd/skintext.py:182 [Queue page button]
|
||||
msgid "Sort by size"
|
||||
@@ -1950,7 +1951,7 @@ msgstr "Estimado"
|
||||
|
||||
#: sabnzbd/skintext.py:197 [Queue page table column header, "age of the NZB"]
|
||||
msgid "AGE"
|
||||
msgstr "DATA"
|
||||
msgstr "IDADE"
|
||||
|
||||
#: sabnzbd/skintext.py:198 [Queue page table, "Delete" button]
|
||||
msgid "Del"
|
||||
@@ -2793,11 +2794,11 @@ msgstr "Enviar comando do grupo antes de solicitar artigos."
|
||||
|
||||
#: sabnzbd/skintext.py:414
|
||||
msgid "Sort by Age"
|
||||
msgstr "Ordernar por Data"
|
||||
msgstr "Ordernar por Idade"
|
||||
|
||||
#: sabnzbd/skintext.py:415
|
||||
msgid "Automatically sort items by (average) age."
|
||||
msgstr "Classificar automaticamente os itens por média de data."
|
||||
msgstr "Classificar automaticamente os itens por (média de) idade."
|
||||
|
||||
#: sabnzbd/skintext.py:416
|
||||
msgid "Check for New Release"
|
||||
@@ -3655,7 +3656,7 @@ msgstr "Assunto"
|
||||
|
||||
#: sabnzbd/skintext.py:669 [Job details page, file age column header] # sabnzbd/skintext.py:817
|
||||
msgid "Age"
|
||||
msgstr "Data"
|
||||
msgstr "Idade"
|
||||
|
||||
#: sabnzbd/skintext.py:670 [Job details page, section header]
|
||||
msgid "Selection"
|
||||
@@ -3748,11 +3749,11 @@ msgstr "Pausar por 24 horas"
|
||||
|
||||
#: sabnzbd/skintext.py:698
|
||||
msgid "Sort by Age <small>Oldest→Newest</small>"
|
||||
msgstr "Ordenar por Data <small>Mais antigo→Mais novo</small>"
|
||||
msgstr "Ordenar por Idade <small>Mais antigo→Mais novo</small>"
|
||||
|
||||
#: sabnzbd/skintext.py:699
|
||||
msgid "Sort by Age <small>Newest→Oldest</small>"
|
||||
msgstr "Ordenar por Data <small>Mais novo→Mais antigo</small>"
|
||||
msgstr "Ordenar por Idade <small>Mais novo→Mais antigo</small>"
|
||||
|
||||
#: sabnzbd/skintext.py:700
|
||||
msgid "Sort by Name <small>A→Z</small>"
|
||||
@@ -3800,7 +3801,7 @@ msgstr "Armazenamento"
|
||||
|
||||
#: sabnzbd/skintext.py:717
|
||||
msgid "View Script Log"
|
||||
msgstr "Exibir Log de Script"
|
||||
msgstr "Exibir Log do Script"
|
||||
|
||||
#: sabnzbd/skintext.py:721
|
||||
msgid "You must enable JavaScript for Plush to function!"
|
||||
@@ -3840,11 +3841,11 @@ msgstr "Ao Concluir"
|
||||
|
||||
#: sabnzbd/skintext.py:739
|
||||
msgid "Sort by Age <small>(Oldest→Newest)</small>"
|
||||
msgstr "Ordenar por Data <small>(Mais antigo→Mais novo)</small>"
|
||||
msgstr "Ordenar por Idade <small>(Mais antigo→Mais novo)</small>"
|
||||
|
||||
#: sabnzbd/skintext.py:740
|
||||
msgid "Sort by Age <small>(Newest→Oldest)</small>"
|
||||
msgstr "Ordenar por Data <small>(Mais novo→Mais antigo)</small>"
|
||||
msgstr "Ordenar por Idade <small>(Mais novo→Mais antigo)</small>"
|
||||
|
||||
#: sabnzbd/skintext.py:741
|
||||
msgid "Sort by Name <small>(A→Z)</small>"
|
||||
@@ -4052,7 +4053,7 @@ msgstr "Obter Favoritos"
|
||||
|
||||
#: sabnzbd/skintext.py:809
|
||||
msgid "Are you sure you want to restart SABnzbd?"
|
||||
msgstr "Tem certeza que deseja reiniciar SABnzbd?"
|
||||
msgstr "Tem certeza que deseja reiniciar o SABnzbd?"
|
||||
|
||||
#: sabnzbd/skintext.py:810
|
||||
msgid "Refresh rate"
|
||||
@@ -4097,11 +4098,11 @@ msgstr "Acesso"
|
||||
#: sabnzbd/skintext.py:825
|
||||
msgid "I want SABnzbd to be viewable by any pc on my network."
|
||||
msgstr ""
|
||||
"Quero que SABnzbd seja acessado de qualquer computador em minha rede."
|
||||
"Quero que o SABnzbd seja acessado de qualquer computador em minha rede."
|
||||
|
||||
#: sabnzbd/skintext.py:826
|
||||
msgid "I want SABnzbd to be viewable from my pc only."
|
||||
msgstr "Quero que SABnzbd seja acessado somente pelo meu computador."
|
||||
msgstr "Quero que o SABnzbd seja acessado somente pelo meu computador."
|
||||
|
||||
#: sabnzbd/skintext.py:827
|
||||
msgid "Password protect access to SABnzbd (recommended)"
|
||||
@@ -4199,23 +4200,23 @@ msgstr "SABnzbd agora será executado em segundo plano."
|
||||
|
||||
#: sabnzbd/skintext.py:850 [Wizard tip]
|
||||
msgid "Closing any browser windows/tabs will NOT close SABnzbd."
|
||||
msgstr "Fechar qualquer janela/aba do navegador NÃO vai fechar SABnzbd."
|
||||
msgstr "Fechar qualquer janela/aba do navegador NÃO vai fechar o SABnzbd."
|
||||
|
||||
#: sabnzbd/skintext.py:851 [Wizard tip]
|
||||
msgid ""
|
||||
"After SABnzbd has finished restarting you will be able to access it at the "
|
||||
"following location: %s"
|
||||
msgstr ""
|
||||
"Após SABnzbd ter reiniciado você será capaz de acessá-lo no seguinte local: "
|
||||
"%s"
|
||||
"Após o SABnzbd ter reiniciado você será capaz de acessá-lo no seguinte "
|
||||
"local: %s"
|
||||
|
||||
#: sabnzbd/skintext.py:852 [Wizard tip]
|
||||
msgid ""
|
||||
"It is recommended you right click and bookmark this location and use this "
|
||||
"bookmark to access SABnzbd when it is running in the background."
|
||||
msgstr ""
|
||||
"Recomenda-se que você adicione este local como favorito para acessar SABnzbd "
|
||||
"quando ele estiver sendo executado em segundo plano."
|
||||
"Recomenda-se que você adicione este local como favorito para acessar o "
|
||||
"SABnzbd quando ele estiver sendo executado em segundo plano."
|
||||
|
||||
#: sabnzbd/skintext.py:853 [Will be appended with a wiki-link, adjust word order accordingly]
|
||||
msgid "Further help can be found on our"
|
||||
@@ -4223,7 +4224,7 @@ msgstr "Mais ajuda pode ser encontrada em nosso"
|
||||
|
||||
#: sabnzbd/skintext.py:854 [Wizard step]
|
||||
msgid "Go to SABnzbd"
|
||||
msgstr "Ir para SABnzbd"
|
||||
msgstr "Ir para o SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:855 [Wizard step] # sabnzbd/wizard.py:86
|
||||
msgid "Step One"
|
||||
@@ -4249,7 +4250,15 @@ msgstr "Quinto Passo"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "Ex. 119 ou 563 para SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "Sair do SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr "Iniciar o Assistente"
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4265,31 +4274,31 @@ msgstr ""
|
||||
"Está licenciado sob a LICENÇA PÚBLICA GERAL GNU Versão 2 ou (a seu critério) "
|
||||
"qualquer versão posterior.\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Erro ao obter informações de TV (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Falha ao renomear: %s para %s"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Falha ao renomear arquivo similar: %s para %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Número de registro nzbmatrix %s inválido"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr "Você precisa de uma conta VIP nzbmatrix para usar a API"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Credenciais nzbmatrix inválidas"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Problema ao acessar o servidor nzbmatrix (%s)"
|
||||
|
||||
|
||||
247
po/main/ro.px
247
po/main/ro.px
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-07 20:21+0000\n"
|
||||
"PO-Revision-Date: 2012-05-11 13:52+0000\n"
|
||||
"POT-Creation-Date: 2012-08-02 12:51+0000\n"
|
||||
"PO-Revision-Date: 2012-08-02 15:29+0000\n"
|
||||
"Last-Translator: nicusor <Unknown>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-12 06:19+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-03 06:12+0000\n"
|
||||
"X-Generator: Launchpad (build 15734)\n"
|
||||
|
||||
#: SABnzbd.py:301 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -53,7 +53,7 @@ msgstr ""
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "Dezactivează HTTPS din cauza lipsei fişierelor CERT şi KEY"
|
||||
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:768
|
||||
#: SABnzbd.py:1641 # sabnzbd/osxmenu.py:770
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Închidere SABnzbd terminată"
|
||||
|
||||
@@ -114,15 +114,15 @@ msgstr ""
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nu pot determina reultatul conexiunii (%s)"
|
||||
|
||||
#: sabnzbd/__init__.py:160 [Warning message]
|
||||
#: sabnzbd/__init__.py:161 [Warning message]
|
||||
msgid "Signal %s caught, saving and exiting..."
|
||||
msgstr "Semnal %s prins, salvez şi ies..."
|
||||
|
||||
#: sabnzbd/__init__.py:463
|
||||
#: sabnzbd/__init__.py:464
|
||||
msgid "fetching msgid %s from www.newzbin2.es"
|
||||
msgstr "descarc msgid %s from www.newzbin2.es"
|
||||
|
||||
#: sabnzbd/__init__.py:469 [Error message]
|
||||
#: sabnzbd/__init__.py:470 [Error message]
|
||||
msgid ""
|
||||
"Error Fetching msgid %s from www.newzbin2.es - Please make sure your "
|
||||
"Username and Password are set"
|
||||
@@ -130,31 +130,31 @@ msgstr ""
|
||||
"Eroare descărcare msgid %s de la www.newzbin2.es - Vă rugăm asiguraţi-vă că "
|
||||
"Nume de Utilizator şi Parolă sunt setate"
|
||||
|
||||
#: sabnzbd/__init__.py:481
|
||||
#: sabnzbd/__init__.py:482
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Încerc să descarc NZB de la %s"
|
||||
|
||||
#: sabnzbd/__init__.py:604 [Error message]
|
||||
#: sabnzbd/__init__.py:605 [Error message]
|
||||
msgid "Cannot create temp file for %s"
|
||||
msgstr "Nu pot crea fişier temporar pentru %s"
|
||||
|
||||
#: sabnzbd/__init__.py:621 [Warning message] # sabnzbd/__init__.py:633 [Warning message]
|
||||
#: sabnzbd/__init__.py:622 [Warning message] # sabnzbd/__init__.py:634 [Warning message]
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Încerc să setez starea unui server nexistent %s"
|
||||
|
||||
#: sabnzbd/__init__.py:766 [Warning message]
|
||||
#: sabnzbd/__init__.py:767 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Prea puţin spaţiu disc forţez PAUZĂ"
|
||||
|
||||
#: sabnzbd/__init__.py:792 [Error message]
|
||||
#: sabnzbd/__init__.py:793 [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Eroare în tempfile.mkstemp"
|
||||
|
||||
#: sabnzbd/__init__.py:822 [Error message] # sabnzbd/__init__.py:893 [Error message]
|
||||
#: sabnzbd/__init__.py:823 [Error message] # sabnzbd/__init__.py:894 [Error message]
|
||||
msgid "Saving %s failed"
|
||||
msgstr "Salvarea %s nereuşită"
|
||||
|
||||
#: sabnzbd/__init__.py:852 [Error message] # sabnzbd/__init__.py:922 [Error message]
|
||||
#: sabnzbd/__init__.py:853 [Error message] # sabnzbd/__init__.py:923 [Error message]
|
||||
msgid "Loading %s failed"
|
||||
msgstr "Încărcarea %s nereuşită"
|
||||
|
||||
@@ -162,7 +162,7 @@ msgstr "Încărcarea %s nereuşită"
|
||||
msgid "Test Notification"
|
||||
msgstr "Notificări Test"
|
||||
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:190 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/api.py:1507 # sabnzbd/osxmenu.py:189 # sabnzbd/skintext.py:68 [No value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:665 [Job details page, select no files]
|
||||
msgid "None"
|
||||
msgstr "Niciunul"
|
||||
@@ -171,31 +171,31 @@ msgstr "Niciunul"
|
||||
msgid "Default"
|
||||
msgstr "Implicit"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284
|
||||
msgid "WARNING:"
|
||||
msgstr "ATENŢIE:"
|
||||
|
||||
#: sabnzbd/api.py:1565 # sabnzbd/interface.py:2282 # sabnzbd/interface.py:2382
|
||||
#: sabnzbd/api.py:1568 # sabnzbd/interface.py:2284 # sabnzbd/interface.py:2384
|
||||
msgid "ERROR:"
|
||||
msgstr "EROARE:"
|
||||
|
||||
#: sabnzbd/api.py:1630
|
||||
#: sabnzbd/api.py:1633
|
||||
msgid "unknown"
|
||||
msgstr "necunoscut"
|
||||
|
||||
#: sabnzbd/api.py:1653 [Error message]
|
||||
#: sabnzbd/api.py:1656 [Error message]
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Compilarea unei căutări regex nereuşită: %s"
|
||||
|
||||
#: sabnzbd/api.py:1840 [Single letter abbreviation of day]
|
||||
#: sabnzbd/api.py:1843 [Single letter abbreviation of day]
|
||||
msgid "d"
|
||||
msgstr "d"
|
||||
|
||||
#: sabnzbd/api.py:1841 [Single letter abbreviation of hour]
|
||||
#: sabnzbd/api.py:1844 [Single letter abbreviation of hour]
|
||||
msgid "h"
|
||||
msgstr "h"
|
||||
|
||||
#: sabnzbd/api.py:1842 [Single letter abbreviation of minute]
|
||||
#: sabnzbd/api.py:1845 [Single letter abbreviation of minute]
|
||||
msgid "m"
|
||||
msgstr "m"
|
||||
|
||||
@@ -224,7 +224,7 @@ msgstr "Cotă epuizată, întrerupem descărcarea"
|
||||
msgid "%s is not a valid email address"
|
||||
msgstr "%s nu este o adresă email validă"
|
||||
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1532
|
||||
#: sabnzbd/cfg.py:54 # sabnzbd/interface.py:1534
|
||||
msgid "Server address required"
|
||||
msgstr "Adresă server necesară"
|
||||
|
||||
@@ -296,19 +296,19 @@ msgstr "Eroare Necunoscută în timpul decodării %s"
|
||||
msgid "%s => missing from all servers, discarding"
|
||||
msgstr "%s => lipsă de pe toate serverele, ignorare"
|
||||
|
||||
#: sabnzbd/dirscanner.py:122 [Error message] # sabnzbd/dirscanner.py:190 [Error message]
|
||||
#: sabnzbd/dirscanner.py:120 [Error message] # sabnzbd/dirscanner.py:186 [Error message]
|
||||
msgid "Error removing %s"
|
||||
msgstr "Eroare ştergere %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:160 [Warning message]
|
||||
#: sabnzbd/dirscanner.py:158 [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Nu pot citi %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py:290 [Error message] # sabnzbd/dirscanner.py:373 [Error message]
|
||||
#: sabnzbd/dirscanner.py:286 [Error message] # sabnzbd/dirscanner.py:369 [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Nu pot citi Dosar Urnărire %s"
|
||||
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:445 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/downloader.py:218 # sabnzbd/osxmenu.py:444 # sabnzbd/skintext.py:37 [PP status]
|
||||
#: sabnzbd/skintext.py:174 # sabnzbd/skintext.py:794
|
||||
msgid "Paused"
|
||||
msgstr "Întrerupt"
|
||||
@@ -513,85 +513,85 @@ msgstr ""
|
||||
"secunde şi apoi faceţi clic pe butonul de mai jos.<br /><br /><strong><a "
|
||||
"href=\"..\">Reîmprospătează</a></strong><br />"
|
||||
|
||||
#: sabnzbd/interface.py:1647 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
#: sabnzbd/interface.py:1649 [Used as default Feed name in Config->RSS] # sabnzbd/skintext.py:500 [Config->RSS, tab header]
|
||||
msgid "Feed"
|
||||
msgstr "Flux"
|
||||
|
||||
#: sabnzbd/interface.py:1885 # sabnzbd/skintext.py:83
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:83
|
||||
msgid "Daily"
|
||||
msgstr "Zilnic"
|
||||
|
||||
#: sabnzbd/interface.py:1886 # sabnzbd/skintext.py:84
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:84
|
||||
msgid "Monday"
|
||||
msgstr "Luni"
|
||||
|
||||
#: sabnzbd/interface.py:1887 # sabnzbd/skintext.py:85
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:85
|
||||
msgid "Tuesday"
|
||||
msgstr "Marţi"
|
||||
|
||||
#: sabnzbd/interface.py:1888 # sabnzbd/skintext.py:86
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:86
|
||||
msgid "Wednesday"
|
||||
msgstr "Miercuri"
|
||||
|
||||
#: sabnzbd/interface.py:1889 # sabnzbd/skintext.py:87
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:87
|
||||
msgid "Thursday"
|
||||
msgstr "Joi"
|
||||
|
||||
#: sabnzbd/interface.py:1890 # sabnzbd/skintext.py:88
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:88
|
||||
msgid "Friday"
|
||||
msgstr "Vineri"
|
||||
|
||||
#: sabnzbd/interface.py:1891 # sabnzbd/skintext.py:89
|
||||
#: sabnzbd/interface.py:1893 # sabnzbd/skintext.py:89
|
||||
msgid "Saturday"
|
||||
msgstr "Sâmbătă"
|
||||
|
||||
#: sabnzbd/interface.py:1892 # sabnzbd/skintext.py:90
|
||||
#: sabnzbd/interface.py:1894 # sabnzbd/skintext.py:90
|
||||
msgid "Sunday"
|
||||
msgstr "Duminică"
|
||||
|
||||
#: sabnzbd/interface.py:1920 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
#: sabnzbd/interface.py:1922 ["Off" value for speedlimit in scheduler] # sabnzbd/skintext.py:97
|
||||
msgid "off"
|
||||
msgstr "dezactivat"
|
||||
|
||||
#: sabnzbd/interface.py:2274
|
||||
#: sabnzbd/interface.py:2276
|
||||
msgid " Resolving address"
|
||||
msgstr " Reolvare adresă"
|
||||
|
||||
#: sabnzbd/interface.py:2382
|
||||
#: sabnzbd/interface.py:2384
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Parametru Incorect"
|
||||
|
||||
#: sabnzbd/interface.py:2382 # sabnzbd/interface.py:2408
|
||||
#: sabnzbd/interface.py:2432 # sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/interface.py:2553 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
#: sabnzbd/interface.py:2384 # sabnzbd/interface.py:2410
|
||||
#: sabnzbd/interface.py:2434 # sabnzbd/interface.py:2451
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/interface.py:2555 # sabnzbd/skintext.py:108 [Generic "Back" button]
|
||||
msgid "Back"
|
||||
msgstr "Înapoi"
|
||||
|
||||
#: sabnzbd/interface.py:2449
|
||||
#: sabnzbd/interface.py:2451
|
||||
msgid "Job \"%s\" was re-added to the queue"
|
||||
msgstr "Sarcina \"%s\" a fost re-adăugată în coadă"
|
||||
|
||||
#: sabnzbd/interface.py:2534
|
||||
#: sabnzbd/interface.py:2536
|
||||
msgid "Jobs marked with a '*' will not be automatically downloaded."
|
||||
msgstr "Sarcinile selectate cu '*' vor fi descărcate automat"
|
||||
|
||||
#: sabnzbd/interface.py:2534 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2536 # sabnzbd/skintext.py:514 [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
msgstr "Potrivite"
|
||||
|
||||
#: sabnzbd/interface.py:2535
|
||||
#: sabnzbd/interface.py:2537
|
||||
msgid "Not matched"
|
||||
msgstr "Nepotrivite"
|
||||
|
||||
#: sabnzbd/interface.py:2535 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
#: sabnzbd/interface.py:2537 # sabnzbd/skintext.py:516 [Config->RSS section header]
|
||||
msgid "Downloaded"
|
||||
msgstr "Descărcate"
|
||||
|
||||
#: sabnzbd/interface.py:2553
|
||||
#: sabnzbd/interface.py:2555
|
||||
msgid "Downloaded so far"
|
||||
msgstr "Decărcat până acum"
|
||||
|
||||
#: sabnzbd/interface.py:2601 # sabnzbd/interface.py:2605
|
||||
#: sabnzbd/interface.py:2603 # sabnzbd/interface.py:2607
|
||||
msgid "Incorrect value for %s: %s"
|
||||
msgstr "Valoare incorectă pentru %s: %s"
|
||||
|
||||
@@ -619,7 +619,7 @@ msgstr "Citire valoare registru pentru dosare speciale nereuşită"
|
||||
msgid "Failed making (%s)"
|
||||
msgstr "Facere nereuşită (%s)"
|
||||
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:354
|
||||
#: sabnzbd/misc.py:794 [Error message] # sabnzbd/postproc.py:367
|
||||
msgid "Failed moving %s to %s"
|
||||
msgstr "Mutare %s în %s nereuşită"
|
||||
|
||||
@@ -635,15 +635,15 @@ msgstr "Încercați din nou"
|
||||
msgid "URL Fetching failed; %s"
|
||||
msgstr "Descărcare URL nereuşită; %s"
|
||||
|
||||
#: sabnzbd/misc.py:1085 [Warning message]
|
||||
#: sabnzbd/misc.py:1088 [Warning message]
|
||||
msgid "pyopenssl module missing, please install for https access"
|
||||
msgstr "modul pyopenssl lipsă, instalaţi-l pentru acces https"
|
||||
|
||||
#: sabnzbd/misc.py:1103 [Error message]
|
||||
#: sabnzbd/misc.py:1106 [Error message]
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Eroare la crearea cheiei şi certificatlui SSL"
|
||||
|
||||
#: sabnzbd/misc.py:1281 [Error message]
|
||||
#: sabnzbd/misc.py:1284 [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Nu pot schimba permisiunile lui %s"
|
||||
|
||||
@@ -966,111 +966,112 @@ msgstr "%s articolele au avut duplicate diferite"
|
||||
msgid "Error importing %s"
|
||||
msgstr "Eroare importare %s"
|
||||
|
||||
#: sabnzbd/osxmenu.py:124 # sabnzbd/osxmenu.py:424 # sabnzbd/osxmenu.py:432
|
||||
#: sabnzbd/osxmenu.py:123 # sabnzbd/osxmenu.py:423 # sabnzbd/osxmenu.py:431
|
||||
#: sabnzbd/skintext.py:257 [Footer: indicator of warnings] # sabnzbd/skintext.py:677 # sabnzbd/skintext.py:806
|
||||
msgid "Warnings"
|
||||
msgstr "Atenționări"
|
||||
|
||||
#: sabnzbd/osxmenu.py:135 # sabnzbd/osxmenu.py:466 # sabnzbd/skintext.py:796
|
||||
#: sabnzbd/osxmenu.py:134 # sabnzbd/osxmenu.py:468 # sabnzbd/skintext.py:796
|
||||
msgid "Idle"
|
||||
msgstr "Inactiv"
|
||||
|
||||
#: sabnzbd/osxmenu.py:142 # sabnzbd/skintext.py:261
|
||||
#: sabnzbd/osxmenu.py:141 # sabnzbd/skintext.py:261
|
||||
msgid "Configuration"
|
||||
msgstr "Configurare"
|
||||
|
||||
#: sabnzbd/osxmenu.py:151 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
#: sabnzbd/osxmenu.py:150 # sabnzbd/skintext.py:115 [Main menu item] # sabnzbd/skintext.py:439
|
||||
msgid "Queue"
|
||||
msgstr "Coadă"
|
||||
|
||||
#: sabnzbd/osxmenu.py:158 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
#: sabnzbd/osxmenu.py:157 # sabnzbd/skintext.py:204 [Queue page button] # sabnzbd/skintext.py:688
|
||||
msgid "Purge Queue"
|
||||
msgstr "Goleşte Coadă"
|
||||
|
||||
#: sabnzbd/osxmenu.py:167 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
#: sabnzbd/osxmenu.py:166 # sabnzbd/skintext.py:116 [Main menu item]
|
||||
msgid "History"
|
||||
msgstr "Istoric"
|
||||
|
||||
#: sabnzbd/osxmenu.py:174 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
#: sabnzbd/osxmenu.py:173 # sabnzbd/skintext.py:217 [History page button] # sabnzbd/skintext.py:707
|
||||
msgid "Purge History"
|
||||
msgstr "Şterge Istoricul"
|
||||
|
||||
#: sabnzbd/osxmenu.py:186
|
||||
#: sabnzbd/osxmenu.py:185
|
||||
msgid "Limit Speed"
|
||||
msgstr "Limitare de Viteză"
|
||||
|
||||
#: sabnzbd/osxmenu.py:206 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:205 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:56 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:151 # sabnzbd/skintext.py:200 [Queue page button] # sabnzbd/skintext.py:386 [Three way switch for duplicates]
|
||||
#: sabnzbd/skintext.py:492
|
||||
msgid "Pause"
|
||||
msgstr "Pauză"
|
||||
|
||||
#: sabnzbd/osxmenu.py:212
|
||||
#: sabnzbd/osxmenu.py:211
|
||||
msgid "min."
|
||||
msgstr "min."
|
||||
|
||||
#: sabnzbd/osxmenu.py:222 # sabnzbd/sabtray.py:61 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:221 # sabnzbd/sabtray.py:62 # sabnzbd/skintext.py:55 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:152 # sabnzbd/skintext.py:199 [Queue page button] # sabnzbd/skintext.py:491
|
||||
msgid "Resume"
|
||||
msgstr "Reia"
|
||||
|
||||
#: sabnzbd/osxmenu.py:232
|
||||
#: sabnzbd/osxmenu.py:231
|
||||
msgid "Get Newzbin Bookmarks"
|
||||
msgstr "Descarcă Semne de Carte Newzbin"
|
||||
|
||||
#: sabnzbd/osxmenu.py:242 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
#: sabnzbd/osxmenu.py:241 # sabnzbd/skintext.py:63 [#: Config->Scheduler]
|
||||
msgid "Scan watched folder"
|
||||
msgstr "Scanează dosar urmărire"
|
||||
|
||||
#: sabnzbd/osxmenu.py:255 # sabnzbd/osxmenu.py:614
|
||||
#: sabnzbd/osxmenu.py:254 # sabnzbd/osxmenu.py:616
|
||||
msgid "Complete Folder"
|
||||
msgstr "Dosar Complet"
|
||||
|
||||
#: sabnzbd/osxmenu.py:260 # sabnzbd/osxmenu.py:615
|
||||
#: sabnzbd/osxmenu.py:259 # sabnzbd/osxmenu.py:617
|
||||
msgid "Incomplete Folder"
|
||||
msgstr "Dosar Incomplet"
|
||||
|
||||
#: sabnzbd/osxmenu.py:273
|
||||
#: sabnzbd/osxmenu.py:272 # sabnzbd/sabtray.py:59
|
||||
msgid "Troubleshoot"
|
||||
msgstr "Depanare"
|
||||
|
||||
#: sabnzbd/osxmenu.py:275 # sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
#: sabnzbd/sabtray.py:116 # sabnzbd/sabtray.py:125 # sabnzbd/skintext.py:58 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:265 # sabnzbd/skintext.py:494
|
||||
#: sabnzbd/osxmenu.py:274 # sabnzbd/osxmenu.py:275 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/sabtray.py:61 # sabnzbd/sabtray.py:114 # sabnzbd/sabtray.py:123
|
||||
#: sabnzbd/sabtray.py:132 # sabnzbd/skintext.py:58 [#: Config->Scheduler] # sabnzbd/skintext.py:265
|
||||
#: sabnzbd/skintext.py:494
|
||||
msgid "Restart"
|
||||
msgstr "Repornește"
|
||||
|
||||
#: sabnzbd/osxmenu.py:277 # sabnzbd/sabtray.py:59
|
||||
#: sabnzbd/osxmenu.py:276 # sabnzbd/sabtray.py:60
|
||||
msgid "Restart without login"
|
||||
msgstr "Reporneşte fără autorizare"
|
||||
|
||||
#: sabnzbd/osxmenu.py:290
|
||||
#: sabnzbd/osxmenu.py:289
|
||||
msgid "Quit"
|
||||
msgstr "Ieșire"
|
||||
|
||||
#: sabnzbd/osxmenu.py:343
|
||||
#: sabnzbd/osxmenu.py:342
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Pune la Coadă Primele 10 Obiecte"
|
||||
|
||||
#: sabnzbd/osxmenu.py:367 # sabnzbd/osxmenu.py:408
|
||||
#: sabnzbd/osxmenu.py:366 # sabnzbd/osxmenu.py:407
|
||||
msgid "Empty"
|
||||
msgstr "Gol"
|
||||
|
||||
#: sabnzbd/osxmenu.py:384
|
||||
#: sabnzbd/osxmenu.py:383
|
||||
msgid "History Last 10 Items"
|
||||
msgstr "Istoric Ultimele 10 Obiecte"
|
||||
|
||||
#: sabnzbd/osxmenu.py:527
|
||||
#: sabnzbd/osxmenu.py:529
|
||||
msgid "New release available"
|
||||
msgstr "Versiune nouă disponibilă"
|
||||
|
||||
#: sabnzbd/osxmenu.py:566
|
||||
#: sabnzbd/osxmenu.py:568
|
||||
msgid "Go to wizard"
|
||||
msgstr "Dute la vrăjitor"
|
||||
|
||||
#: sabnzbd/osxmenu.py:716 # sabnzbd/osxmenu.py:719 # sabnzbd/osxmenu.py:727
|
||||
#: sabnzbd/osxmenu.py:730 # sabnzbd/osxmenu.py:736 # sabnzbd/osxmenu.py:739
|
||||
#: sabnzbd/osxmenu.py:760
|
||||
#: sabnzbd/osxmenu.py:718 # sabnzbd/osxmenu.py:721 # sabnzbd/osxmenu.py:729
|
||||
#: sabnzbd/osxmenu.py:732 # sabnzbd/osxmenu.py:738 # sabnzbd/osxmenu.py:741
|
||||
#: sabnzbd/osxmenu.py:762
|
||||
msgid "Stopping..."
|
||||
msgstr "Se oprește..."
|
||||
|
||||
@@ -1277,107 +1278,107 @@ msgstr ""
|
||||
msgid "Failed to remove nzo from postproc queue (id)"
|
||||
msgstr "Ştergere nzo din coadă post-procesare nereuşită (id)"
|
||||
|
||||
#: sabnzbd/postproc.py:260
|
||||
#: sabnzbd/postproc.py:264
|
||||
msgid "Download might fail, only %s of required %s available"
|
||||
msgstr "Descărcarea ar putea eşua, doar %s din %s disponibil"
|
||||
|
||||
#: sabnzbd/postproc.py:262
|
||||
#: sabnzbd/postproc.py:266
|
||||
msgid "Download failed - Out of your server's retention?"
|
||||
msgstr "Descărcare nereuşită - Retenţie server depăşită ?"
|
||||
|
||||
#: sabnzbd/postproc.py:316
|
||||
#: sabnzbd/postproc.py:329
|
||||
msgid "Cannot create final folder %s"
|
||||
msgstr "Nu pot crea dosar final %s"
|
||||
|
||||
#: sabnzbd/postproc.py:338
|
||||
#: sabnzbd/postproc.py:351
|
||||
msgid "No post-processing because of failed verification"
|
||||
msgstr "Nici o post-procesare din cauza verificării nereuşite"
|
||||
|
||||
#: sabnzbd/postproc.py:346
|
||||
#: sabnzbd/postproc.py:359
|
||||
msgid "Moving"
|
||||
msgstr "Mutare"
|
||||
|
||||
#: sabnzbd/postproc.py:372
|
||||
#: sabnzbd/postproc.py:385
|
||||
msgid "Sent %s to queue"
|
||||
msgstr "Trimis %s în coadă"
|
||||
|
||||
#: sabnzbd/postproc.py:391 [Error message]
|
||||
#: sabnzbd/postproc.py:404 [Error message]
|
||||
msgid "Error renaming \"%s\" to \"%s\""
|
||||
msgstr "Eroare redenumire \"%s\" în \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:407
|
||||
#: sabnzbd/postproc.py:420
|
||||
msgid "Failed to move files"
|
||||
msgstr "Nu am putu muta fişier"
|
||||
|
||||
#: sabnzbd/postproc.py:415
|
||||
#: sabnzbd/postproc.py:428
|
||||
msgid "Running script"
|
||||
msgstr "Rulare script"
|
||||
|
||||
#: sabnzbd/postproc.py:416
|
||||
#: sabnzbd/postproc.py:429
|
||||
msgid "Running user script %s"
|
||||
msgstr "Rulare script utilizator %s"
|
||||
|
||||
#: sabnzbd/postproc.py:425
|
||||
#: sabnzbd/postproc.py:438
|
||||
msgid "Ran %s"
|
||||
msgstr "Durată %s"
|
||||
|
||||
#: sabnzbd/postproc.py:446
|
||||
#: sabnzbd/postproc.py:459
|
||||
msgid "More"
|
||||
msgstr "Mai mult"
|
||||
|
||||
#: sabnzbd/postproc.py:450
|
||||
#: sabnzbd/postproc.py:463
|
||||
msgid "View script output"
|
||||
msgstr "Vezi rezultat script"
|
||||
|
||||
#: sabnzbd/postproc.py:464
|
||||
#: sabnzbd/postproc.py:477
|
||||
msgid "Download Completed"
|
||||
msgstr "Descărcare terminată"
|
||||
|
||||
#: sabnzbd/postproc.py:467 # sabnzbd/postproc.py:476
|
||||
#: sabnzbd/postproc.py:480 # sabnzbd/postproc.py:489
|
||||
msgid "Download Failed"
|
||||
msgstr "Descărcarea a eșuat"
|
||||
|
||||
#: sabnzbd/postproc.py:471 [Error message]
|
||||
#: sabnzbd/postproc.py:484 [Error message]
|
||||
msgid "Post Processing Failed for %s (%s)"
|
||||
msgstr "Post Procesare Nereuşită pentru %s (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:474
|
||||
#: sabnzbd/postproc.py:487
|
||||
msgid "see logfile"
|
||||
msgstr "vezi fişier jurnal"
|
||||
|
||||
#: sabnzbd/postproc.py:475
|
||||
#: sabnzbd/postproc.py:488
|
||||
msgid "PostProcessing was aborted (%s)"
|
||||
msgstr "Post-Procesarea a fost abandonată (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:509 [Error message]
|
||||
#: sabnzbd/postproc.py:522 [Error message]
|
||||
msgid "Cleanup of %s failed."
|
||||
msgstr "Ştergerea lui %s nereuşită."
|
||||
|
||||
#: sabnzbd/postproc.py:519 [Error message]
|
||||
#: sabnzbd/postproc.py:538 [Error message]
|
||||
msgid "Error removing workdir (%s)"
|
||||
msgstr "Eroare ştergere dosar curent (%s)"
|
||||
|
||||
#: sabnzbd/postproc.py:531
|
||||
#: sabnzbd/postproc.py:550
|
||||
msgid "Post-processing"
|
||||
msgstr "Post-procesare"
|
||||
|
||||
#: sabnzbd/postproc.py:571
|
||||
#: sabnzbd/postproc.py:590
|
||||
msgid "Trying SFV verification"
|
||||
msgstr "Încerc verificare SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:574
|
||||
#: sabnzbd/postproc.py:593
|
||||
msgid "Some files failed to verify against \"%s\""
|
||||
msgstr "Unele fişiere nu au fost verificate corect cu \"%s\""
|
||||
|
||||
#: sabnzbd/postproc.py:577
|
||||
#: sabnzbd/postproc.py:596
|
||||
msgid "Verified successfully using SFV files"
|
||||
msgstr "Verificare reuşită cu fişierele SFV"
|
||||
|
||||
#: sabnzbd/postproc.py:580
|
||||
#: sabnzbd/postproc.py:599
|
||||
msgid "[%s] No par2 sets"
|
||||
msgstr "[%s] Niciun set par2"
|
||||
|
||||
#: sabnzbd/postproc.py:637 [Error message] # sabnzbd/postproc.py:712 [Error message]
|
||||
#: sabnzbd/postproc.py:656 [Error message] # sabnzbd/postproc.py:731 [Error message]
|
||||
msgid "Removing %s failed"
|
||||
msgstr "Ştergerea %s nereuşită"
|
||||
|
||||
@@ -1429,12 +1430,12 @@ msgstr "Arată interfața"
|
||||
msgid "Open complete folder"
|
||||
msgstr "Deschide dosar descărcări complete"
|
||||
|
||||
#: sabnzbd/sabtray.py:62 # sabnzbd/sabtray.py:131 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/sabtray.py:63 # sabnzbd/sabtray.py:138 # sabnzbd/skintext.py:57 [#: Config->Scheduler]
|
||||
#: sabnzbd/skintext.py:150 # sabnzbd/skintext.py:493
|
||||
msgid "Shutdown"
|
||||
msgstr "Închidere"
|
||||
|
||||
#: sabnzbd/sabtray.py:84 # sabnzbd/skintext.py:766
|
||||
#: sabnzbd/sabtray.py:85 # sabnzbd/skintext.py:766
|
||||
msgid "Remaining"
|
||||
msgstr "Rămas"
|
||||
|
||||
@@ -4244,7 +4245,15 @@ msgstr "Pasul Cinci"
|
||||
msgid "E.g. 119 or 563 for SSL"
|
||||
msgstr "De ex. 119 sau 563 pentru SSL"
|
||||
|
||||
#: sabnzbd/skintext.py:863
|
||||
#: sabnzbd/skintext.py:861 [Wizard EXIT button on first page]
|
||||
msgid "Exit SABnzbd"
|
||||
msgstr "Închide SABnzbd"
|
||||
|
||||
#: sabnzbd/skintext.py:862 [Wizard START button on first page]
|
||||
msgid "Start Wizard"
|
||||
msgstr "Porneşte Vrăjitor"
|
||||
|
||||
#: sabnzbd/skintext.py:865
|
||||
msgid ""
|
||||
"\n"
|
||||
"SABnzbd comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
@@ -4260,31 +4269,31 @@ msgstr ""
|
||||
"Este licenţiat sub GNU General Public License versiunea 2 sau (la opţiunea "
|
||||
"dumneavoastră) orice versiune ulterioară.\n"
|
||||
|
||||
#: sabnzbd/tvsort.py:309 [Error message]
|
||||
#: sabnzbd/tvsort.py:315 [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Eroare obţinere info TV (%s)"
|
||||
|
||||
#: sabnzbd/tvsort.py:671 [Error message] # sabnzbd/tvsort.py:694 [Error message] # sabnzbd/tvsort.py:879 [Error message]
|
||||
#: sabnzbd/tvsort.py:677 [Error message] # sabnzbd/tvsort.py:700 [Error message] # sabnzbd/tvsort.py:885 [Error message]
|
||||
msgid "Failed to rename: %s to %s"
|
||||
msgstr "Redenumire:%s în %s nereuşită"
|
||||
|
||||
#: sabnzbd/tvsort.py:1076 [Error message]
|
||||
#: sabnzbd/tvsort.py:1082 [Error message]
|
||||
msgid "Failed to rename similar file: %s to %s"
|
||||
msgstr "Redenumire fişiere similare : %s în %s nereuşită"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:280 # sabnzbd/urlgrabber.py:298
|
||||
#: sabnzbd/urlgrabber.py:281 # sabnzbd/urlgrabber.py:299
|
||||
msgid "Invalid nzbmatrix report number %s"
|
||||
msgstr "Număr report invalid nzbmatrix %s"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:286
|
||||
#: sabnzbd/urlgrabber.py:287
|
||||
msgid "You need an nzbmatrix VIP account to use the API"
|
||||
msgstr "Aveţi nevoie de un cont VIP la nzbmatrix pentru a utiliza API"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:288
|
||||
#: sabnzbd/urlgrabber.py:289
|
||||
msgid "Invalid nzbmatrix credentials"
|
||||
msgstr "Credenţiale invalide nzbmatrix"
|
||||
|
||||
#: sabnzbd/urlgrabber.py:306
|
||||
#: sabnzbd/urlgrabber.py:307
|
||||
msgid "Problem accessing nzbmatrix server (%s)"
|
||||
msgstr "Probleme la accesarea server nzbmatrix (%s)"
|
||||
|
||||
|
||||
495
po/main/sv.po
495
po/main/sv.po
File diff suppressed because it is too large
Load Diff
@@ -13,71 +13,71 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=ASCII\n"
|
||||
"Content-Transfer-Encoding: 7bit\n"
|
||||
|
||||
#: NSIS_Installer.nsi:417
|
||||
#: NSIS_Installer.nsi:425
|
||||
msgid "Go to the SABnzbd Wiki"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:419
|
||||
#: NSIS_Installer.nsi:427
|
||||
msgid "Show Release Notes"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:421
|
||||
#: NSIS_Installer.nsi:429
|
||||
msgid "Support the project, Donate!"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:423
|
||||
#: NSIS_Installer.nsi:431
|
||||
msgid "Please close \"SABnzbd.exe\" first"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:425
|
||||
#: NSIS_Installer.nsi:433
|
||||
msgid " >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the release notes or go to http://wiki.sabnzbd.org/introducing-0-7-0 !"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:427
|
||||
#: NSIS_Installer.nsi:435
|
||||
msgid "This will uninstall SABnzbd from your system"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:429
|
||||
#: NSIS_Installer.nsi:437
|
||||
msgid "Run at startup"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:431
|
||||
#: NSIS_Installer.nsi:439
|
||||
msgid "Desktop Icon"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:433
|
||||
#: NSIS_Installer.nsi:441
|
||||
msgid "NZB File association"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:435
|
||||
#: NSIS_Installer.nsi:443
|
||||
msgid "Delete Program"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:437
|
||||
#: NSIS_Installer.nsi:445
|
||||
msgid "Delete Settings"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:439
|
||||
#: NSIS_Installer.nsi:447
|
||||
msgid "This system requires the Microsoft runtime library VC90 to be installed first. Do you want to do that now?"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:441
|
||||
#: NSIS_Installer.nsi:449
|
||||
msgid "Downloading Microsoft runtime installer..."
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:443
|
||||
#: NSIS_Installer.nsi:451
|
||||
msgid "Download error, retry?"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:445
|
||||
#: NSIS_Installer.nsi:453
|
||||
msgid "Cannot install without runtime library, retry?"
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:447
|
||||
#: NSIS_Installer.nsi:455
|
||||
msgid "You cannot overwrite an existing installation. \\n\\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
msgstr ""
|
||||
|
||||
#: NSIS_Installer.nsi:449
|
||||
#: NSIS_Installer.nsi:457
|
||||
msgid "Your settings and data will be preserved."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-01 18:51+0000\n"
|
||||
"PO-Revision-Date: 2012-06-07 03:07+0000\n"
|
||||
"Last-Translator: Carlos Hernandez <imaginingdreamer@yahoo.com>\n"
|
||||
"PO-Revision-Date: 2012-07-30 09:38+0000\n"
|
||||
"Last-Translator: Victor Herrero <victorhera@gmail.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-08 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 15376)\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-31 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 15702)\n"
|
||||
|
||||
#: NSIS_Installer.nsi:417
|
||||
msgid "Go to the SABnzbd Wiki"
|
||||
@@ -38,6 +38,8 @@ msgid ""
|
||||
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
|
||||
"release notes or go to http://wiki.sabnzbd.org/introducing-0-7-0 !"
|
||||
msgstr ""
|
||||
" >>>> ATENCION <<<<\\r\\n\\r\\nPor favor, compruebe las "
|
||||
"notas de version o visite http://wiki.sabnzbd.org/introducing-0-7-0 !"
|
||||
|
||||
#: NSIS_Installer.nsi:427
|
||||
msgid "This will uninstall SABnzbd from your system"
|
||||
|
||||
@@ -8,18 +8,18 @@ msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-05-01 18:51+0000\n"
|
||||
"PO-Revision-Date: 2012-05-04 14:13+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-06-17 03:09+0000\n"
|
||||
"Last-Translator: lrrosa <Unknown>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 15195)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-18 05:39+0000\n"
|
||||
"X-Generator: Launchpad (build 15419)\n"
|
||||
|
||||
#: NSIS_Installer.nsi:417
|
||||
msgid "Go to the SABnzbd Wiki"
|
||||
msgstr "Vá para a Wiki SABnzbd"
|
||||
msgstr "Vá para a Wiki do SABnzbd"
|
||||
|
||||
#: NSIS_Installer.nsi:419
|
||||
msgid "Show Release Notes"
|
||||
@@ -38,9 +38,8 @@ msgid ""
|
||||
" >>>> WARNING <<<<\\r\\n\\r\\nPlease, first check the "
|
||||
"release notes or go to http://wiki.sabnzbd.org/introducing-0-7-0 !"
|
||||
msgstr ""
|
||||
" >>>> ATENÇÃO <<<<\\\\r\\\\n\\\\r\\\\nPor favor, verifique "
|
||||
"primeiro as notas de lançamento ou vá até "
|
||||
"http://wiki.sabnzbd.org/introducing-0-7-0 !"
|
||||
" >>>> ATENÇÃO <<<<\\r\\n\\r\\nPor favor, verifique primeiro "
|
||||
"as notas de lançamento ou vá até http://wiki.sabnzbd.org/introducing-0-7-0 !"
|
||||
|
||||
#: NSIS_Installer.nsi:427
|
||||
msgid "This will uninstall SABnzbd from your system"
|
||||
|
||||
@@ -59,6 +59,10 @@ elif os.name == 'posix':
|
||||
pass
|
||||
if platform.machine() == 'i386':
|
||||
DARWIN_INTEL = True
|
||||
if DARWIN:
|
||||
DARWIN_ML = [int(n) for n in platform.mac_ver()[0].split('.')] >= [10, 8]
|
||||
else:
|
||||
DARWIN_ML = False
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
@@ -341,6 +345,11 @@ def start():
|
||||
logging.debug('Starting urlgrabber')
|
||||
URLGrabber.do.start()
|
||||
|
||||
if DARWIN_ML:
|
||||
logging.debug('Starting OSX keep-awake service')
|
||||
osxmenu.OsxAwake()
|
||||
osxmenu.OsxAwake.do.start()
|
||||
|
||||
|
||||
@synchronized(INIT_LOCK)
|
||||
def halt():
|
||||
@@ -400,6 +409,9 @@ def halt():
|
||||
except:
|
||||
logging.error('Fatal error at saving state', exc_info=True)
|
||||
|
||||
if DARWIN_ML:
|
||||
osxmenu.OsxAwake.do.stop()
|
||||
|
||||
|
||||
# The Scheduler cannot be stopped when the stop was scheduled.
|
||||
# Since all warm-restarts have been removed, it's not longer
|
||||
@@ -754,11 +766,14 @@ def empty_queues():
|
||||
def keep_awake():
|
||||
""" If we still have work to do, keep Windows system awake
|
||||
"""
|
||||
global KERNEL32
|
||||
if KERNEL32 and not sabnzbd.downloader.Downloader.do.paused:
|
||||
if (not PostProcessor.do.empty()) or not NzbQueue.do.is_empty():
|
||||
# set ES_SYSTEM_REQUIRED
|
||||
KERNEL32.SetThreadExecutionState(ctypes.c_int(0x00000001))
|
||||
if KERNEL32 or DARWIN_ML:
|
||||
if not sabnzbd.downloader.Downloader.do.paused:
|
||||
if (not PostProcessor.do.empty()) or not NzbQueue.do.is_empty():
|
||||
if KERNEL32:
|
||||
# set ES_SYSTEM_REQUIRED
|
||||
KERNEL32.SetThreadExecutionState(ctypes.c_int(0x00000001))
|
||||
else:
|
||||
osxmenu.OsxAwake.do.stay_awake = True
|
||||
|
||||
|
||||
def CheckFreeSpace():
|
||||
|
||||
@@ -461,33 +461,6 @@ def _api_get_files(name, output, kwargs):
|
||||
else:
|
||||
return report(output, _MSG_NO_VALUE)
|
||||
|
||||
def _api_addurl(names, output, kwargs):
|
||||
""" API: accepts name, output, pp, script, cat, priority, nzbname """
|
||||
pp = kwargs.get('pp')
|
||||
script = kwargs.get('script')
|
||||
cat = kwargs.get('cat')
|
||||
priority = kwargs.get('priority')
|
||||
nzbnames = kwargs.get('nzbname')
|
||||
if not isinstance(names, list):
|
||||
names = [names]
|
||||
if not isinstance(nzbnames, list):
|
||||
nzbnames = [nzbnames]
|
||||
|
||||
for n in xrange(len(names)):
|
||||
name = names[n]
|
||||
if n < len(nzbnames):
|
||||
nzbname = nzbnames[n]
|
||||
else:
|
||||
nzbname = ''
|
||||
if name:
|
||||
name = name.strip()
|
||||
sabnzbd.add_url(name, pp, script, cat, priority, nzbname)
|
||||
|
||||
if len(names) > 0:
|
||||
return report(output)
|
||||
else:
|
||||
return report(output, _MSG_NO_VALUE)
|
||||
|
||||
|
||||
_RE_NEWZBIN_URL = re.compile(r'/browse/post/(\d+)')
|
||||
def _api_addid(names, output, kwargs):
|
||||
@@ -796,7 +769,7 @@ _api_table = {
|
||||
'fullstatus' : _api_fullstatus,
|
||||
'history' : _api_history,
|
||||
'get_files' : _api_get_files,
|
||||
'addurl' : _api_addurl,
|
||||
'addurl' : _api_addid,
|
||||
'addid' : _api_addid,
|
||||
'pause' : _api_pause,
|
||||
'resume' : _api_resume,
|
||||
@@ -1165,7 +1138,11 @@ def build_queue(web_dir=None, root=None, verbose=False, prim=True, webdir='', ve
|
||||
datestart = datetime.datetime.now()
|
||||
slot['eta'] = 'unknown'
|
||||
|
||||
slot['avg_age'] = calc_age(average_date, bool(trans))
|
||||
if status == Status.GRABBING:
|
||||
slot['avg_age'] = '---'
|
||||
else:
|
||||
slot['avg_age'] = calc_age(average_date, bool(trans))
|
||||
|
||||
slot['verbosity'] = ""
|
||||
if web_dir:
|
||||
finished = []
|
||||
@@ -1252,6 +1229,16 @@ def build_queue(web_dir=None, root=None, verbose=False, prim=True, webdir='', ve
|
||||
return info, pnfo_list, bytespersec, verbose_list, dictn
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
def fast_queue():
|
||||
""" Return paused, bytes_left, bpsnow, time_left """
|
||||
bytes_left = NzbQueue.do.remaining()
|
||||
paused = Downloader.do.paused
|
||||
bpsnow = BPSMeter.do.get_bps()
|
||||
time_left = calc_timeleft(bytes_left, bpsnow)
|
||||
return paused, bytes_left, bpsnow, time_left
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
def qstatus_data():
|
||||
"""Build up the queue status as a nested object and output as a JSON object
|
||||
@@ -1279,16 +1266,16 @@ def qstatus_data():
|
||||
|
||||
state = "IDLE"
|
||||
if Downloader.do.paused:
|
||||
state = "PAUSED"
|
||||
state = Status.PAUSED
|
||||
elif qnfo[QNFO_BYTES_LEFT_FIELD] / MEBI > 0:
|
||||
state = "DOWNLOADING"
|
||||
state = Status.DOWNLOADING
|
||||
|
||||
status = {
|
||||
"state" : state,
|
||||
"paused" : Downloader.do.paused,
|
||||
"pause_int" : scheduler.pause_int(),
|
||||
"kbpersec" : BPSMeter.do.get_bps() / KIBI,
|
||||
"speed" : to_units(BPSMeter.do.get_bps(), dec_limit=1),
|
||||
"kbpersec" : bpsnow / KIBI,
|
||||
"speed" : to_units(bpsnow, dec_limit=1),
|
||||
"mbleft" : qnfo[QNFO_BYTES_LEFT_FIELD] / MEBI,
|
||||
"mb" : qnfo[QNFO_BYTES_FIELD] / MEBI,
|
||||
"noofslots" : len(pnfo_list),
|
||||
|
||||
@@ -35,7 +35,8 @@ except:
|
||||
|
||||
import sabnzbd
|
||||
from sabnzbd.misc import get_filepath, sanitize_filename, get_unique_path, renamer, \
|
||||
set_permissions
|
||||
set_permissions, flag_file
|
||||
from sabnzbd.constants import QCHECK_FILE
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.articlecache import ArticleCache
|
||||
from sabnzbd.postproc import PostProcessor
|
||||
@@ -60,18 +61,18 @@ class Assembler(Thread):
|
||||
def stop(self):
|
||||
self.process(None)
|
||||
|
||||
def process(self, nzf):
|
||||
self.queue.put(nzf)
|
||||
def process(self, job):
|
||||
self.queue.put(job)
|
||||
|
||||
def run(self):
|
||||
import sabnzbd.nzbqueue
|
||||
while 1:
|
||||
nzo_nzf_tuple = self.queue.get()
|
||||
if not nzo_nzf_tuple:
|
||||
job = self.queue.get()
|
||||
if not job:
|
||||
logging.info("Shutting down")
|
||||
break
|
||||
|
||||
nzo, nzf = nzo_nzf_tuple
|
||||
nzo, nzf = job
|
||||
|
||||
if nzf:
|
||||
sabnzbd.CheckFreeSpace()
|
||||
@@ -174,7 +175,7 @@ def _assemble(nzf, path, dupe):
|
||||
|
||||
fout.flush()
|
||||
fout.close()
|
||||
set_permissions(path)
|
||||
set_permissions(path)
|
||||
if md5:
|
||||
nzf.md5sum = md5.digest()
|
||||
del md5
|
||||
@@ -206,29 +207,30 @@ def GetMD5Hashes(fname):
|
||||
"""
|
||||
new_encoding = False
|
||||
table = {}
|
||||
try:
|
||||
f = open(fname, 'rb')
|
||||
except:
|
||||
return table
|
||||
if not flag_file(os.path.split(fname)[0], QCHECK_FILE):
|
||||
try:
|
||||
f = open(fname, 'rb')
|
||||
except:
|
||||
return table, new_encoding
|
||||
|
||||
try:
|
||||
header = f.read(8)
|
||||
while header:
|
||||
name, hash = ParseFilePacket(f, header)
|
||||
new_encoding |= is_utf8(name)
|
||||
if name:
|
||||
table[name] = hash
|
||||
try:
|
||||
header = f.read(8)
|
||||
while header:
|
||||
name, hash = ParseFilePacket(f, header)
|
||||
new_encoding |= is_utf8(name)
|
||||
if name:
|
||||
table[name] = hash
|
||||
header = f.read(8)
|
||||
|
||||
except (struct.error, IndexError):
|
||||
logging.info('Cannot use corrupt par2 file for QuickCheck, "%s"', fname)
|
||||
table = {}
|
||||
except:
|
||||
logging.debug('QuickCheck parser crashed in file %s', fname)
|
||||
logging.info('Traceback: ', exc_info = True)
|
||||
table = {}
|
||||
except (struct.error, IndexError):
|
||||
logging.info('Cannot use corrupt par2 file for QuickCheck, "%s"', fname)
|
||||
table = {}
|
||||
except:
|
||||
logging.debug('QuickCheck parser crashed in file %s', fname)
|
||||
logging.info('Traceback: ', exc_info = True)
|
||||
table = {}
|
||||
|
||||
f.close()
|
||||
f.close()
|
||||
return table, new_encoding
|
||||
|
||||
|
||||
|
||||
@@ -136,8 +136,25 @@ class BPSMeter(object):
|
||||
sabnzbd.save_admin(data, BYTES_FILE_NAME)
|
||||
|
||||
|
||||
def defaults(self):
|
||||
""" Get the latest data from the database and assign to a fake server
|
||||
"""
|
||||
logging.debug('Setting default BPS meter values')
|
||||
grand, month, week = sabnzbd.proxy_get_history_size()
|
||||
self.grand_total = {}
|
||||
self.month_total = {}
|
||||
self.week_total = {}
|
||||
self.day_total = {}
|
||||
if grand: self.grand_total['x'] = grand
|
||||
if month: self.month_total['x'] = month
|
||||
if week: self.week_total['x'] = week
|
||||
self.quota = self.left = cfg.quota_size.get_float()
|
||||
|
||||
|
||||
def read(self):
|
||||
""" Read admin from disk """
|
||||
""" Read admin from disk, return True when pause is needed
|
||||
"""
|
||||
res = False
|
||||
quota = self.left = cfg.quota_size.get_float() # Quota for this period
|
||||
self.have_quota = bool(cfg.quota_size())
|
||||
data = sabnzbd.load_admin(BYTES_FILE_NAME)
|
||||
@@ -155,16 +172,14 @@ class BPSMeter(object):
|
||||
self.quota = self.left = cfg.quota_size.get_float()
|
||||
res = self.reset_quota()
|
||||
except:
|
||||
# Get the latest data from the database and assign to a fake server
|
||||
logging.debug('Setting default BPS meter values')
|
||||
grand, month, week = sabnzbd.proxy_get_history_size()
|
||||
if grand: self.grand_total['x'] = grand
|
||||
if month: self.month_total['x'] = month
|
||||
if week: self.week_total['x'] = week
|
||||
self.quota = self.left = cfg.quota_size.get_float()
|
||||
res = False
|
||||
# Force update of counters
|
||||
self.update()
|
||||
self.defaults()
|
||||
# Force update of counters and validate data
|
||||
try:
|
||||
for server in self.grand_total:
|
||||
self.update(server)
|
||||
except TypeError:
|
||||
self.defaults()
|
||||
self.update()
|
||||
return res
|
||||
|
||||
|
||||
@@ -330,7 +345,12 @@ class BPSMeter(object):
|
||||
self.have_quota = bool(cfg.quota_size())
|
||||
if self.have_quota:
|
||||
quota = cfg.quota_size.get_float()
|
||||
self.left = quota - (self.quota - self.left)
|
||||
if self.quota:
|
||||
# Quota change, recalculate amount left
|
||||
self.left = quota - (self.quota - self.left)
|
||||
else:
|
||||
# If previously no quota, self.left holds this period's usage
|
||||
self.left = quota - self.left
|
||||
self.quota = quota
|
||||
else:
|
||||
self.quota = self.left = 0L
|
||||
|
||||
@@ -65,7 +65,7 @@ else:
|
||||
# Configuration instances
|
||||
#
|
||||
quick_check = OptionBool('misc', 'quick_check', True)
|
||||
fail_on_crc = OptionBool('misc', 'fail_on_crc', False)
|
||||
fail_on_crc = OptionBool('misc', 'fail_on_crc', True)
|
||||
send_group = OptionBool('misc', 'send_group', False)
|
||||
sfv_check = OptionBool('misc', 'sfv_check', True)
|
||||
|
||||
@@ -79,7 +79,7 @@ email_full = OptionBool('misc', 'email_full', False)
|
||||
email_dir = OptionDir('misc', 'email_dir', create=True)
|
||||
email_rss = OptionBool('misc', 'email_rss', False)
|
||||
|
||||
version_check = OptionBool('misc', 'check_new_rel', True)
|
||||
version_check = OptionNumber('misc', 'check_new_rel', 1)
|
||||
autobrowser = OptionBool('misc', 'auto_browser', True)
|
||||
replace_illegal = OptionBool('misc', 'replace_illegal', True)
|
||||
pre_script = OptionStr('misc', 'pre_script', 'None')
|
||||
@@ -151,6 +151,8 @@ date_categories = OptionStr('misc', 'date_categories', ['tv'])
|
||||
matrix_username = OptionStr('nzbmatrix', 'username')
|
||||
matrix_apikey = OptionStr('nzbmatrix', 'apikey')
|
||||
matrix_del_bookmark = OptionBool('nzbmatrix', 'del_bookmark', True)
|
||||
xxx_username = OptionStr('nzbxxx', 'username')
|
||||
xxx_apikey = OptionStr('nzbxxx', 'apikey')
|
||||
|
||||
configlock = OptionBool('misc', 'config_lock', 0)
|
||||
|
||||
@@ -209,7 +211,7 @@ language = OptionStr('misc', 'language', 'en')
|
||||
ssl_type = OptionStr('misc', 'ssl_type', 'v23')
|
||||
unpack_check = OptionBool('misc', 'unpack_check', True)
|
||||
no_penalties = OptionBool('misc', 'no_penalties', False)
|
||||
random_server_ip = OptionBool('misc', 'random_server_ip', True)
|
||||
randomize_server_ip = OptionBool('misc', 'randomize_server_ip', False)
|
||||
|
||||
# Internal options, not saved in INI file
|
||||
debug_delay = OptionNumber('misc', 'debug_delay', 0, add=False)
|
||||
@@ -221,6 +223,7 @@ api_warnings = OptionBool('misc', 'api_warnings', True)
|
||||
max_art_tries = OptionNumber('misc', 'max_art_tries', 3, 2)
|
||||
max_art_opt = OptionBool('misc', 'max_art_opt', False)
|
||||
use_pickle = OptionBool('misc', 'use_pickle', False)
|
||||
no_ipv6 = OptionBool('misc', 'no_ipv6', False)
|
||||
|
||||
growl_server = OptionStr('growl', 'growl_server')
|
||||
growl_password = OptionPassword('growl', 'growl_password')
|
||||
@@ -238,6 +241,7 @@ win_menu = OptionBool('misc', 'win_menu', True)
|
||||
uniconfig = OptionBool('misc', 'uniconfig', True)
|
||||
allow_incomplete_nzb = OptionBool('misc', 'allow_incomplete_nzb', False)
|
||||
marker_file = OptionStr('misc', 'nomedia_marker', '')
|
||||
wait_ext_drive = OptionNumber('misc', 'wait_ext_drive', 5, 1, 60)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Set root folders for Folder config-items
|
||||
|
||||
@@ -22,6 +22,7 @@ sabnzbd.config - Configuration Support
|
||||
import os
|
||||
import logging
|
||||
import threading
|
||||
import shutil
|
||||
import sabnzbd.misc
|
||||
from sabnzbd.constants import CONFIG_VERSION, NORMAL_PRIORITY, DEFAULT_PRIORITY
|
||||
from sabnzbd.utils import listquote
|
||||
@@ -633,11 +634,26 @@ def delete(section, keyword):
|
||||
|
||||
@synchronized(SAVE_CONFIG_LOCK)
|
||||
def read_config(path):
|
||||
""" Read the complete INI file and check its version number
|
||||
if OK, pass values to config-database
|
||||
"""
|
||||
return _read_config(path)
|
||||
|
||||
|
||||
def _read_config(path, try_backup=False):
|
||||
""" Read the complete INI file and check its version number
|
||||
if OK, pass values to config-database
|
||||
"""
|
||||
global CFG, database, modified
|
||||
|
||||
if try_backup or not os.path.exists(path):
|
||||
# Not found, try backup
|
||||
try:
|
||||
shutil.copyfile(path + '.bak', path)
|
||||
try_backup = True
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
if not os.path.exists(path):
|
||||
# No file found, create default INI file
|
||||
try:
|
||||
@@ -659,7 +675,10 @@ def read_config(path):
|
||||
except (KeyError, ValueError):
|
||||
CFG['__version__'] = CONFIG_VERSION
|
||||
except configobj.ConfigObjError, strerror:
|
||||
return False, '"%s" is not a valid configuration file<br>Error message: %s' % (path, strerror)
|
||||
if try_backup:
|
||||
return False, '"%s" is not a valid configuration file<br>Error message: %s' % (path, strerror)
|
||||
else:
|
||||
return _read_config(path, True)
|
||||
|
||||
CFG['__version__'] = CONFIG_VERSION
|
||||
|
||||
@@ -731,46 +750,32 @@ def save_config(force=False):
|
||||
else:
|
||||
CFG[sec][kw] = value
|
||||
|
||||
res = False
|
||||
filename = CFG.filename
|
||||
bakname = filename + '.bak'
|
||||
|
||||
# Check if file is writable
|
||||
if not sabnzbd.misc.is_writable(filename):
|
||||
logging.error(Ta('Cannot write to INI file %s'), filename)
|
||||
return res
|
||||
|
||||
# copy current file to backup
|
||||
try:
|
||||
# Check if file is writable
|
||||
if not sabnzbd.misc.is_writable(filename):
|
||||
logging.error(Ta('Cannot write to INI file %s'), filename)
|
||||
modified = False
|
||||
return False
|
||||
shutil.copyfile(filename, bakname)
|
||||
except:
|
||||
# Something wrong with the backup,
|
||||
logging.warning(Ta('Cannot create backup file for %s'), bakname)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
|
||||
# Read current content
|
||||
f = open(filename)
|
||||
data = f.read()
|
||||
f.close()
|
||||
|
||||
tmpname = filename + '.tmp'
|
||||
bakname = filename + '.bak'
|
||||
|
||||
# Write new file
|
||||
f = open(tmpname, 'w')
|
||||
f.write(data)
|
||||
f.close()
|
||||
|
||||
# Update temp file content
|
||||
CFG.filename = tmpname
|
||||
# Write new config file
|
||||
try:
|
||||
CFG.write()
|
||||
|
||||
# Rename to backup
|
||||
if os.path.isfile(bakname):
|
||||
os.remove(bakname)
|
||||
os.rename(filename, bakname)
|
||||
|
||||
# Rename temp file, overwriting old one
|
||||
os.rename(tmpname, filename)
|
||||
|
||||
modified = False
|
||||
res = True
|
||||
except:
|
||||
logging.error(Ta('Cannot create backup file for %s'), filename)
|
||||
logging.error(Ta('Cannot write to INI file %s'), filename)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
res = False
|
||||
CFG.filename = filename
|
||||
|
||||
return res
|
||||
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ TERM_FLAG_FILE = 'running.sab'
|
||||
FUTURE_Q_FOLDER = 'future'
|
||||
JOB_ADMIN = '__ADMIN__'
|
||||
VERIFIED_FILE = '__verified__'
|
||||
QCHECK_FILE = '__skip_qcheck__'
|
||||
ATTRIB_FILE = 'SABnzbd_attrib'
|
||||
REPAIR_REQUEST = 'repair-all.sab'
|
||||
|
||||
@@ -139,7 +140,7 @@ date_match = [r'(\d{4})\W(\d{1,2})\W(\d{1,2})', #2008-10-16
|
||||
|
||||
year_match = r'[\W]([1|2]\d{3})([^\w]|$)' # Something '(YYYY)' or '.YYYY.' or ' YYYY '
|
||||
|
||||
sample_match = r'((^|[\W_])sample\d*[\W_])|(-s\.)' # something-sample.avi something-s.avi
|
||||
sample_match = r'((^|[\W_])sample\d*[\W_])|(-s\.\w+$)' # something-sample.avi something-s.avi
|
||||
|
||||
class Status():
|
||||
COMPLETED = 'Completed'
|
||||
|
||||
@@ -37,6 +37,7 @@ from sabnzbd.articlecache import ArticleCache
|
||||
import sabnzbd.downloader
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.encoding import name_fixer
|
||||
from sabnzbd.misc import match_str
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
@@ -85,18 +86,19 @@ class Decoder(Thread):
|
||||
data = None
|
||||
|
||||
register = True # Finish article
|
||||
found = True # Article found (only relevant for precheck)
|
||||
found = False # Proper article found
|
||||
|
||||
if lines:
|
||||
logme = None
|
||||
try:
|
||||
if nzo.precheck and '223' in lines[0]:
|
||||
raise IndexError
|
||||
if nzo.precheck:
|
||||
raise BadYenc
|
||||
register = True
|
||||
logging.debug("Decoding %s", article)
|
||||
|
||||
data = decode(article, lines)
|
||||
nzf.article_count += 1
|
||||
found = True
|
||||
except IOError, e:
|
||||
logme = Ta('Decoding %s failed') % article
|
||||
logging.info(logme)
|
||||
@@ -120,25 +122,45 @@ class Decoder(Thread):
|
||||
register = False
|
||||
logme = None
|
||||
|
||||
except BadYenc, e:
|
||||
logme = Ta('Badly formed yEnc article in %s') % article
|
||||
logging.info(logme)
|
||||
except BadYenc:
|
||||
# Handles precheck and badly formed articles
|
||||
killed = False
|
||||
found = False
|
||||
if nzo.precheck and lines and lines[0].startswith('223 '):
|
||||
# STAT was used, so we only get a status code
|
||||
found = True
|
||||
else:
|
||||
# Examine headers (for precheck) or body (for download)
|
||||
# And look for DMCA clues (while skipping "X-" headers)
|
||||
for line in lines:
|
||||
if not line.startswith('X-') and match_str(line.lower(), ('dmca', 'removed', 'cancel', 'blocked')):
|
||||
logging.info('Article removed from server (%s)', article)
|
||||
killed = True
|
||||
break
|
||||
if nzo.precheck:
|
||||
if found or not killed:
|
||||
# Pre-check, proper article found, just register
|
||||
logging.debug('Server has article %s', article)
|
||||
register = True
|
||||
elif not killed and not found:
|
||||
logme = Ta('Badly formed yEnc article in %s') % article
|
||||
logging.info(logme)
|
||||
|
||||
if cfg.fail_on_crc():
|
||||
if not found:
|
||||
new_server_found = self.__search_new_server(article)
|
||||
if new_server_found:
|
||||
register = False
|
||||
logme = None
|
||||
|
||||
except IndexError:
|
||||
# Pre-check, article found, just register
|
||||
register = True
|
||||
|
||||
except:
|
||||
logme = Ta('Unknown Error while decoding %s') % article
|
||||
logging.info(logme)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
pass
|
||||
|
||||
new_server_found = self.__search_new_server(article)
|
||||
if new_server_found:
|
||||
register = False
|
||||
logme = None
|
||||
|
||||
if logme:
|
||||
article.nzf.nzo.inc_log('bad_art_log', logme)
|
||||
@@ -211,19 +233,22 @@ def decode(article, data):
|
||||
#Deal with non-yencoded posts
|
||||
if not ybegin:
|
||||
found = False
|
||||
for i in xrange(10):
|
||||
if data[i].startswith('begin '):
|
||||
nzf.filename = name_fixer(data[i].split(None, 2)[2])
|
||||
nzf.type = 'uu'
|
||||
found = True
|
||||
break
|
||||
if found:
|
||||
for n in xrange(i+1):
|
||||
data.pop(0)
|
||||
if data[-1] == 'end':
|
||||
data.pop()
|
||||
if data[-1] == '`':
|
||||
try:
|
||||
for i in xrange(10):
|
||||
if data[i].startswith('begin '):
|
||||
nzf.filename = name_fixer(data[i].split(None, 2)[2])
|
||||
nzf.type = 'uu'
|
||||
found = True
|
||||
break
|
||||
if found:
|
||||
for n in xrange(i+1):
|
||||
data.pop(0)
|
||||
if data[-1] == 'end':
|
||||
data.pop()
|
||||
if data[-1] == '`':
|
||||
data.pop()
|
||||
except IndexError:
|
||||
raise BadYenc()
|
||||
|
||||
decoded_data = '\r\n'.join(data)
|
||||
|
||||
|
||||
@@ -289,7 +289,7 @@ class DirScanner(threading.Thread):
|
||||
|
||||
for filename in files:
|
||||
path = os.path.join(folder, filename)
|
||||
if os.path.isdir(path) or path in self.ignored:
|
||||
if os.path.isdir(path) or path in self.ignored or filename[0] == '.':
|
||||
continue
|
||||
|
||||
ext = os.path.splitext(path)[1].lower()
|
||||
|
||||
@@ -86,7 +86,7 @@ class Server(object):
|
||||
def hostip(self):
|
||||
""" Return a random entry from the possible IPs
|
||||
"""
|
||||
if cfg.random_server_ip() and self.info and len(self.info) > 1:
|
||||
if cfg.randomize_server_ip() and self.info and len(self.info) > 1:
|
||||
rnd = random.randint(0, len(self.info)-1)
|
||||
ip = self.info[rnd][4][0]
|
||||
logging.debug('For server %s, using IP %s' % (self.host, ip))
|
||||
@@ -531,7 +531,10 @@ class Downloader(Thread):
|
||||
if server.active:
|
||||
server.errormsg = Ta('Cannot connect to server %s [%s]') % ('', display_msg)
|
||||
logging.warning(Ta('Cannot connect to server %s [%s]'), '%s:%s' % (server.host, server.port), msg)
|
||||
penalty = _PENALTY_502
|
||||
if clues_pay(msg):
|
||||
penalty = _PENALTY_PERM
|
||||
else:
|
||||
penalty = _PENALTY_502
|
||||
block = True
|
||||
else:
|
||||
# Unknown error, just keep trying
|
||||
@@ -818,3 +821,13 @@ def clues_too_many_ip(text):
|
||||
if clue in text:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def clues_pay(text):
|
||||
""" Check for messages about payments
|
||||
"""
|
||||
text = text.lower()
|
||||
for clue in ('credits', 'paym', 'expired'):
|
||||
if clue in text:
|
||||
return True
|
||||
return False
|
||||
|
||||
@@ -1188,11 +1188,11 @@ SPECIAL_BOOL_LIST = \
|
||||
'queue_complete_pers', 'api_warnings', 'allow_64bit_tools', 'par2_multicore',
|
||||
'never_repair', 'allow_streaming', 'ignore_unrar_dates', 'rss_filenames',
|
||||
'osx_menu', 'osx_speed', 'win_menu', 'uniconfig', 'use_pickle', 'allow_incomplete_nzb',
|
||||
'random_server_ip'
|
||||
'randomize_server_ip', 'no_ipv6'
|
||||
)
|
||||
SPECIAL_VALUE_LIST = \
|
||||
( 'size_limit', 'folder_max_length', 'fsys_type', 'movie_rename_limit', 'nomedia_marker',
|
||||
'req_completion_rate'
|
||||
'req_completion_rate', 'wait_ext_drive'
|
||||
)
|
||||
|
||||
class ConfigSpecial(object):
|
||||
@@ -1506,6 +1506,18 @@ class ConfigServer(object):
|
||||
BPSMeter.do.clear_server(server)
|
||||
raise dcRaiser(self.__root, kwargs)
|
||||
|
||||
@cherrypy.expose
|
||||
def toggleServer(self, **kwargs):
|
||||
msg = check_session(kwargs)
|
||||
if msg: return msg
|
||||
server = kwargs.get('server')
|
||||
if server:
|
||||
svr = config.get_config('servers', server)
|
||||
svr.enable.set(not svr.enable())
|
||||
config.save_config()
|
||||
Downloader.do.update_server(server, server)
|
||||
raise dcRaiser(self.__root, kwargs)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
def unique_svr_name(server):
|
||||
@@ -1616,6 +1628,7 @@ class ConfigRss(object):
|
||||
rss[feed] = feeds[feed].get_dict()
|
||||
filters = feeds[feed].filters()
|
||||
rss[feed]['filters'] = filters
|
||||
rss[feed]['filter_states'] = [bool(sabnzbd.rss.convert_filter(f[4])) for f in filters]
|
||||
rss[feed]['filtercount'] = len(filters)
|
||||
|
||||
rss[feed]['pick_cat'] = pick_cat
|
||||
@@ -1929,7 +1942,7 @@ class ConfigScheduling(object):
|
||||
act = ''
|
||||
if act in ('enable_server', 'disable_server'):
|
||||
action = Ttemplate("sch-" + act) + ' ' + server
|
||||
item = (snum, '%02d' % int(h), '%02d' % int(m), days.get(day, '**'), '%s %s' % (action, value))
|
||||
item = (snum, '%02d' % int(h), '%02d' % int(m), days.get(day, day), '%s %s' % (action, value))
|
||||
conf['taskinfo'].append(item)
|
||||
snum += 1
|
||||
|
||||
|
||||
@@ -259,10 +259,10 @@ def sanitize_foldername(name):
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
def verified_flag_file(path, create=False):
|
||||
def flag_file(path, flag, create=False):
|
||||
""" Create verify flag file or return True if it already exists """
|
||||
path = os.path.join(path, JOB_ADMIN)
|
||||
path = os.path.join(path, VERIFIED_FILE)
|
||||
path = os.path.join(path, flag)
|
||||
if create:
|
||||
try:
|
||||
f = open(path, 'w')
|
||||
@@ -317,6 +317,8 @@ def real_path(loc, path):
|
||||
When 'path' is absolute, return normalized path
|
||||
A path starting with ~ will be located in the user's Home folder
|
||||
"""
|
||||
# The Windows part is a bit convoluted because
|
||||
# os.path.join() doesn't behave the same for all Python versions
|
||||
if path:
|
||||
path = path.strip()
|
||||
else:
|
||||
@@ -325,9 +327,15 @@ def real_path(loc, path):
|
||||
if not sabnzbd.WIN32 and path.startswith('~/'):
|
||||
path = path.replace('~', sabnzbd.DIR_HOME, 1)
|
||||
if sabnzbd.WIN32:
|
||||
if path[0].isalpha() and len(path) > 1 and path[1] == ':':
|
||||
if len(path) == 2 or path[2] not in '\\/':
|
||||
path = path.replace('/', '\\')
|
||||
if len(path) > 1 and path[0].isalpha() and path[1] == ':':
|
||||
if len(path) == 2 or path[2] != '\\':
|
||||
path = path.replace(':', ':\\', 1)
|
||||
elif path.startswith('\\\\'):
|
||||
pass
|
||||
elif path.startswith('\\'):
|
||||
if len(loc) > 1 and loc[0].isalpha() and loc[1] == ':':
|
||||
path = loc[:2] + path
|
||||
else:
|
||||
path = os.path.join(loc, path)
|
||||
elif path[0] != '/':
|
||||
@@ -582,11 +590,20 @@ def check_latest_version():
|
||||
|
||||
logging.debug("Checked for a new release, cur= %s, latest= %s (on %s)", current, latest, url)
|
||||
|
||||
if latest_test and cfg.version_check() > 1:
|
||||
# User always wants to see the latest test release
|
||||
latest = latest_test
|
||||
url = url_beta
|
||||
|
||||
if testver and current < latest:
|
||||
# This is a test version, but user has't seen the
|
||||
# "Final" of this one yet, so show the Final
|
||||
sabnzbd.NEW_VERSION = "%s;%s" % (latest_label, url)
|
||||
elif current < latest:
|
||||
# This one is behind, show latest final
|
||||
sabnzbd.NEW_VERSION = "%s;%s" % (latest_label, url)
|
||||
elif testver and current < latest_test:
|
||||
# This is a test version beyond the latest Final, so show latest Alpha/Beta/RC
|
||||
sabnzbd.NEW_VERSION = "%s;%s" % (latest_testlabel, url_beta)
|
||||
|
||||
|
||||
@@ -713,15 +730,22 @@ def hostname():
|
||||
#------------------------------------------------------------------------------
|
||||
def check_mount(path):
|
||||
""" Return False if volume isn't mounted on Linux or OSX
|
||||
Retry 6 times with an interval of 1 sec.
|
||||
"""
|
||||
if sabnzbd.DARWIN:
|
||||
m = re.search(r'^(/Volumes/[^/]+)/', path, re.I)
|
||||
elif not sabnzbd.WIN32:
|
||||
m = re.search(r'^(/(?:mnt|media)/[^/]+)/', path)
|
||||
elif sabnzbd.WIN32:
|
||||
m = re.search(r'^([a-z]:\\)', path, re.I)
|
||||
else:
|
||||
m = None
|
||||
return (not m) or os.path.exists(m.group(1))
|
||||
m = re.search(r'^(/(?:mnt|media)/[^/]+)/', path)
|
||||
|
||||
if m:
|
||||
for n in xrange(cfg.wait_ext_drive() or 1):
|
||||
if os.path.exists(m.group(1)):
|
||||
return True
|
||||
logging.debug('Waiting for %s to come online', m.group(1))
|
||||
time.sleep(1)
|
||||
return not m
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Locked directory operations
|
||||
@@ -814,6 +838,10 @@ def cleanup_empty_directories(path):
|
||||
pass
|
||||
if not repeat:
|
||||
break
|
||||
try:
|
||||
remove_dir(path)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
@synchronized(DIR_LOCK)
|
||||
@@ -932,8 +960,9 @@ def bad_fetch(nzo, url, msg='', retry=False, content=False):
|
||||
if isinstance(url, int) or url.isdigit():
|
||||
url = 'Newzbin #%s' % url
|
||||
growler.send_notification(T('URL Fetching failed; %s') % '', '%s\n%s' % (msg, url), 'other')
|
||||
#import sabnzbd.emailer
|
||||
sabnzbd.emailer.badfetch_mail(msg, url)
|
||||
if cfg.email_endjob() > 0:
|
||||
#import sabnzbd.emailer
|
||||
sabnzbd.emailer.badfetch_mail(msg, url)
|
||||
|
||||
from sabnzbd.nzbqueue import NzbQueue
|
||||
assert isinstance(NzbQueue.do, NzbQueue)
|
||||
|
||||
@@ -31,10 +31,11 @@ import sabnzbd
|
||||
from sabnzbd.encoding import TRANS, UNTRANS, unicode2local, name_fixer, \
|
||||
reliable_unpack_names, unicoder, latin1, platform_encode
|
||||
from sabnzbd.utils.rarfile import RarFile, is_rarfile
|
||||
from sabnzbd.misc import format_time_string, find_on_path, make_script_path, int_conv
|
||||
from sabnzbd.misc import format_time_string, find_on_path, make_script_path, int_conv, \
|
||||
flag_file
|
||||
from sabnzbd.tvsort import SeriesSorter
|
||||
import sabnzbd.cfg as cfg
|
||||
from constants import Status
|
||||
from constants import Status, QCHECK_FILE
|
||||
|
||||
if sabnzbd.WIN32:
|
||||
try:
|
||||
@@ -353,7 +354,7 @@ def file_join(nzo, workdir, workdir_complete, delete, joinables):
|
||||
# Finish up
|
||||
joined_file.flush()
|
||||
joined_file.close()
|
||||
newfiles.append(joinable_set)
|
||||
newfiles.append(filename)
|
||||
|
||||
if seq_error:
|
||||
msg = T('Incomplete sequence of joinable files')
|
||||
@@ -779,6 +780,7 @@ def par2_repair(parfile_nzf, nzo, workdir, setname):
|
||||
result = True
|
||||
|
||||
if not result:
|
||||
flag_file(workdir, QCHECK_FILE, True)
|
||||
nzo.status = Status.REPAIRING
|
||||
result = False
|
||||
readd = False
|
||||
@@ -971,7 +973,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False):
|
||||
verified = 1
|
||||
|
||||
elif line.startswith('Main packet not found'):
|
||||
## Initialparfile probaly didn't decode properly,
|
||||
## Initialparfile probably didn't decode properly,
|
||||
logging.info(Ta('Main packet not found...'))
|
||||
|
||||
extrapars = parfile_nzf.extrapars
|
||||
@@ -981,7 +983,8 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False):
|
||||
## Look for the smallest par2file
|
||||
block_table = {}
|
||||
for nzf in extrapars:
|
||||
block_table[int_conv(nzf.blocks)] = nzf
|
||||
if not nzf.completed:
|
||||
block_table[int_conv(nzf.blocks)] = nzf
|
||||
|
||||
if block_table:
|
||||
nzf = block_table[min(block_table.keys())]
|
||||
@@ -989,6 +992,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False):
|
||||
logging.info("Found new par2file %s", nzf.filename)
|
||||
|
||||
nzo.add_parfile(nzf)
|
||||
extrapars.remove(nzf)
|
||||
## mark for readd
|
||||
readd = True
|
||||
else:
|
||||
@@ -1050,7 +1054,9 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False):
|
||||
extrapar_list = block_table[block_size]
|
||||
|
||||
if extrapar_list:
|
||||
nzo.add_parfile(extrapar_list.pop())
|
||||
new_nzf = extrapar_list.pop()
|
||||
nzo.add_parfile(new_nzf)
|
||||
extrapars.remove(new_nzf)
|
||||
added_blocks += block_size
|
||||
|
||||
else:
|
||||
@@ -1254,7 +1260,10 @@ def build_filelists(workdir, workdir_complete, check_rar=True):
|
||||
|
||||
zips = [f for f in filelist if ZIP_RE.search(f)]
|
||||
|
||||
rars = [f for f in filelist if RAR_RE.search(f) and is_rarfile(f)]
|
||||
if check_rar:
|
||||
rars = [f for f in filelist if RAR_RE.search(f) and is_rarfile(f)]
|
||||
else:
|
||||
rars = [f for f in filelist if RAR_RE.search(f)]
|
||||
|
||||
ts = [f for f in filelist if TS_RE.search(f) and f not in joinables]
|
||||
|
||||
@@ -1334,32 +1343,35 @@ def unrar_check(rar):
|
||||
def sfv_check(sfv_path):
|
||||
""" Verify files using SFV file,
|
||||
input: full path of sfv, file are assumed to be relative to sfv
|
||||
returns: True when all files verified OK
|
||||
returns: List of failing files or [] when all is OK
|
||||
"""
|
||||
failed = []
|
||||
try:
|
||||
fp = open(sfv_path, 'r')
|
||||
except:
|
||||
logging.info('Cannot open SFV file %s', sfv_path)
|
||||
return False
|
||||
failed.append(unicoder(sfv_path))
|
||||
return failed
|
||||
root = os.path.split(sfv_path)[0]
|
||||
status = True
|
||||
for line in fp:
|
||||
line = line.strip('\n\r ')
|
||||
if line[0] != ';':
|
||||
x = line.rfind(' ')
|
||||
filename = line[:x].strip()
|
||||
filename = platform_encode(line[:x].strip())
|
||||
checksum = line[x:].strip()
|
||||
path = os.path.join(root, platform_encode(filename))
|
||||
path = os.path.join(root, filename)
|
||||
if os.path.exists(path):
|
||||
if crc_check(path, checksum):
|
||||
logging.debug('File %s passed SFV check', path)
|
||||
else:
|
||||
logging.warning('File %s did not pass SFV check', latin1(path))
|
||||
status = False
|
||||
logging.info('File %s did not pass SFV check', latin1(path))
|
||||
failed.append(unicoder(filename))
|
||||
else:
|
||||
logging.warning('File %s mssing in SFV check', latin1(path))
|
||||
logging.info('File %s missing in SFV check', latin1(path))
|
||||
failed.append(unicoder(filename))
|
||||
fp.close()
|
||||
return status
|
||||
return failed
|
||||
|
||||
|
||||
def crc_check(path, target_crc):
|
||||
|
||||
@@ -27,14 +27,14 @@ import datetime
|
||||
import sabnzbd
|
||||
from sabnzbd.trylist import TryList
|
||||
from sabnzbd.nzbstuff import NzbObject
|
||||
from sabnzbd.misc import exit_sab, cat_to_opts, verified_flag_file, \
|
||||
from sabnzbd.misc import exit_sab, cat_to_opts, flag_file, \
|
||||
get_admin_path, remove_all, globber
|
||||
from sabnzbd.panic import panic_queue
|
||||
import sabnzbd.database as database
|
||||
from sabnzbd.decorators import NZBQUEUE_LOCK, synchronized, synchronized_CV
|
||||
from sabnzbd.constants import QUEUE_FILE_NAME, QUEUE_VERSION, FUTURE_Q_FOLDER, JOB_ADMIN, \
|
||||
LOW_PRIORITY, NORMAL_PRIORITY, HIGH_PRIORITY, TOP_PRIORITY, \
|
||||
REPAIR_PRIORITY, STOP_PRIORITY, \
|
||||
REPAIR_PRIORITY, STOP_PRIORITY, VERIFIED_FILE, \
|
||||
PNFO_BYTES_FIELD, PNFO_BYTES_LEFT_FIELD, Status
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.articlecache import ArticleCache
|
||||
@@ -150,10 +150,12 @@ class NzbQueue(TryList):
|
||||
""" Reconstruct admin for a single job folder, optionally with new NZB """
|
||||
name = os.path.basename(folder)
|
||||
path = os.path.join(folder, JOB_ADMIN)
|
||||
if new_nzb is None or not new_nzb.filename:
|
||||
if verified_flag_file(folder):
|
||||
filename = ''
|
||||
else:
|
||||
if hasattr(new_nzb, 'filename'):
|
||||
filename = new_nzb.filename
|
||||
else:
|
||||
filename = ''
|
||||
if not filename:
|
||||
if not flag_file(folder, VERIFIED_FILE):
|
||||
filename = globber(path, '*.gz')
|
||||
if len(filename) > 0:
|
||||
logging.debug('Repair job %s by reparsing stored NZB', latin1(name))
|
||||
@@ -164,7 +166,7 @@ class NzbQueue(TryList):
|
||||
self.add(nzo)
|
||||
else:
|
||||
remove_all(path, '*.gz')
|
||||
logging.debug('Repair job %s with new NZB (%s)', latin1(name), latin1(new_nzb.filename))
|
||||
logging.debug('Repair job %s with new NZB (%s)', latin1(name), latin1(filename))
|
||||
sabnzbd.add_nzbfile(new_nzb, pp=None, script=None, cat=None, priority=None, nzbname=name, reuse=True)
|
||||
|
||||
|
||||
@@ -673,7 +675,7 @@ class NzbQueue(TryList):
|
||||
nzf = article.nzf
|
||||
nzo = nzf.nzo
|
||||
|
||||
if nzo.deleted or nzf.deleted:
|
||||
if nzf.deleted:
|
||||
logging.debug("Discarding article %s, no longer in queue", article.article)
|
||||
return
|
||||
|
||||
@@ -715,7 +717,9 @@ class NzbQueue(TryList):
|
||||
sabnzbd.downloader.Downloader.do.disconnect()
|
||||
|
||||
# Notify assembler to call postprocessor
|
||||
Assembler.do.process((nzo, None))
|
||||
if not nzo.deleted:
|
||||
nzo.deleted = True
|
||||
Assembler.do.process((nzo, None))
|
||||
|
||||
|
||||
@synchronized(NZBQUEUE_LOCK)
|
||||
@@ -733,19 +737,34 @@ class NzbQueue(TryList):
|
||||
|
||||
|
||||
@synchronized(NZBQUEUE_LOCK)
|
||||
def queue_info(self, for_cli = False):
|
||||
def queue_info(self, for_cli=False, max_jobs=0):
|
||||
bytes_left = 0
|
||||
bytes = 0
|
||||
pnfo_list = []
|
||||
n = 0
|
||||
for nzo in self.__nzo_list:
|
||||
pnfo = nzo.gather_info(for_cli = for_cli)
|
||||
if nzo.status != 'Paused':
|
||||
bytes += pnfo[PNFO_BYTES_FIELD]
|
||||
bytes_left += pnfo[PNFO_BYTES_LEFT_FIELD]
|
||||
pnfo_list.append(pnfo)
|
||||
|
||||
n += 1
|
||||
if max_jobs and n >= max_jobs:
|
||||
break
|
||||
return (bytes, bytes_left, pnfo_list)
|
||||
|
||||
|
||||
@synchronized(NZBQUEUE_LOCK)
|
||||
def remaining(self):
|
||||
""" Return bytes left in the queue by non-paused items
|
||||
"""
|
||||
bytes_left = 0
|
||||
for nzo in self.__nzo_list:
|
||||
if nzo.status != 'Paused':
|
||||
bytes_left += nzo.remaining()
|
||||
return bytes_left
|
||||
|
||||
|
||||
@synchronized(NZBQUEUE_LOCK)
|
||||
def is_empty(self):
|
||||
empty = True
|
||||
|
||||
@@ -54,7 +54,7 @@ RE_NORMAL = re.compile(r"(.+)(\.nzb)", re.I)
|
||||
SUBJECT_FN_MATCHER = re.compile(r'"([^"]*)"')
|
||||
RE_SAMPLE = re.compile(sample_match, re.I)
|
||||
PROBABLY_PAR2_RE = re.compile(r'(.*)\.vol(\d*)\+(\d*)\.par2', re.I)
|
||||
|
||||
REJECT_PAR2_RE = re.compile(r'\.par2\.\d+', re.I) # Reject duplicate par2 files
|
||||
|
||||
################################################################################
|
||||
# Article #
|
||||
@@ -272,7 +272,7 @@ class NzbFile(TryList):
|
||||
@property
|
||||
def completed(self):
|
||||
""" Is this file completed? """
|
||||
return not bool(self.articles)
|
||||
return self.import_finished and not bool(self.articles)
|
||||
|
||||
@property
|
||||
def lowest_partnum(self):
|
||||
@@ -810,6 +810,7 @@ class NzbObject(TryList):
|
||||
if nzf in self.files:
|
||||
self.files.remove(nzf)
|
||||
self.finished_files.append(nzf)
|
||||
nzf.import_finished = True
|
||||
nzf.deleted = True
|
||||
return not bool(self.files)
|
||||
|
||||
@@ -818,38 +819,35 @@ class NzbObject(TryList):
|
||||
nzf.reset_all_try_lists()
|
||||
self.reset_try_list()
|
||||
|
||||
def postpone_pars(self, nzf, head):
|
||||
""" Move all vol-par files matching 'head' to the extrapars table """
|
||||
self.partable[head] = nzf
|
||||
self.extrapars[head] = []
|
||||
nzf.extrapars = self.extrapars[head]
|
||||
def postpone_pars(self, nzf, parset):
|
||||
""" Move all vol-par files matching 'parset' to the extrapars table """
|
||||
self.partable[parset] = nzf
|
||||
self.extrapars[parset] = []
|
||||
nzf.extrapars = self.extrapars[parset]
|
||||
lparset = parset.lower()
|
||||
for xnzf in self.files[:]:
|
||||
name = xnzf.filename
|
||||
name = xnzf.filename or platform_encode(xnzf.subject)
|
||||
# Move only when not current NZF and filename was extractable from subject
|
||||
if name and nzf is not xnzf:
|
||||
name = name.lower()
|
||||
if head.lower() in name and '.vol' in name and name.endswith('.par2'):
|
||||
self.extrapars[head].append(xnzf)
|
||||
head, vol, block = analyse_par2(name)
|
||||
# When only subject is known, it's enough that that 'parset' is in subject
|
||||
if head and lparset in head.lower():
|
||||
xnzf.set_par2(parset, vol, block)
|
||||
self.extrapars[parset].append(xnzf)
|
||||
self.files.remove(xnzf)
|
||||
|
||||
def handle_par2(self, nzf, file_done):
|
||||
## Special treatment for first part of par2 file
|
||||
""" Check if file is a par2 and build up par2 collection
|
||||
"""
|
||||
fn = nzf.filename
|
||||
if fn:
|
||||
# We have a real filename now
|
||||
fn = fn.strip()
|
||||
lfn = fn.lower()
|
||||
if (not nzf.is_par2) and fn and lfn.endswith('.par2'):
|
||||
par2match = PROBABLY_PAR2_RE.search(fn)
|
||||
if par2match:
|
||||
head = par2match.group(1)
|
||||
vol = par2match.group(2)
|
||||
block = par2match.group(3)
|
||||
elif lfn.endswith('.par2'):
|
||||
head = os.path.splitext(fn)[0]
|
||||
vol = block = 0
|
||||
par2match = True
|
||||
if not nzf.is_par2:
|
||||
head, vol, block = analyse_par2(fn)
|
||||
## Is a par2file and repair mode activated
|
||||
if par2match and (self.repair or cfg.allow_streaming()):
|
||||
if head and (self.repair or cfg.allow_streaming()):
|
||||
nzf.set_par2(head, vol, block)
|
||||
## Already got a parfile for this set?
|
||||
if head in self.partable:
|
||||
@@ -867,10 +865,12 @@ class NzbObject(TryList):
|
||||
## This file either has more blocks,
|
||||
## or initialparfile is already decoded
|
||||
else:
|
||||
if not file_done:
|
||||
nzf.reset_try_list()
|
||||
if file_done:
|
||||
if nzf in self.files: self.files.remove(nzf)
|
||||
self.extrapars[head].append(nzf)
|
||||
if nzf not in self.extrapars[head]: self.extrapars[head].append(nzf)
|
||||
else:
|
||||
nzf.reset_try_list()
|
||||
|
||||
## No par2file in this set yet, set this as
|
||||
## initialparfile
|
||||
else:
|
||||
@@ -894,7 +894,8 @@ class NzbObject(TryList):
|
||||
if reset:
|
||||
self.reset_try_list()
|
||||
|
||||
self.handle_par2(nzf, file_done)
|
||||
if file_done:
|
||||
self.handle_par2(nzf, file_done)
|
||||
|
||||
post_done = False
|
||||
if not self.files:
|
||||
@@ -924,6 +925,7 @@ class NzbObject(TryList):
|
||||
subject = sanitize_filename(latin1(nzf.subject))
|
||||
if (nzf.filename == filename) or (subject == filename) or (filename in subject):
|
||||
nzf.filename = filename
|
||||
nzf.completed = True
|
||||
self.handle_par2(nzf, file_done=True)
|
||||
self.remove_nzf(nzf)
|
||||
nzfs.remove(nzf)
|
||||
@@ -1007,11 +1009,10 @@ class NzbObject(TryList):
|
||||
self.incomplete = False
|
||||
|
||||
def add_parfile(self, parfile):
|
||||
self.files.append(parfile)
|
||||
if parfile.extrapars:
|
||||
if parfile not in self.files:
|
||||
self.files.append(parfile)
|
||||
if parfile.extrapars and parfile in parfile.extrapars:
|
||||
parfile.extrapars.remove(parfile)
|
||||
else:
|
||||
logging.debug('PARFILE without EXTRAPARS %s', parfile.filename or parfile.subject)
|
||||
|
||||
def remove_parset(self, setname):
|
||||
self.partable.pop(setname)
|
||||
@@ -1110,8 +1111,14 @@ class NzbObject(TryList):
|
||||
if article:
|
||||
break
|
||||
|
||||
# Remove all files for which admin could not be read
|
||||
for nzf in nzf_remove_list:
|
||||
nzf.deleted = True
|
||||
nzf.completed = True
|
||||
self.files.remove(nzf)
|
||||
# If cleanup emptied the active files list, end this job
|
||||
if nzf_remove_list and not self.files:
|
||||
sabnzbd.NzbQueue.do.end_job(self)
|
||||
|
||||
if not article:
|
||||
# No articles for this server, block for next time
|
||||
@@ -1228,6 +1235,13 @@ class NzbObject(TryList):
|
||||
except:
|
||||
pass
|
||||
|
||||
def remaining(self):
|
||||
""" Return remaining bytes """
|
||||
bytes_left = 0
|
||||
for nzf in self.files:
|
||||
bytes_left += nzf.bytes_left
|
||||
return bytes_left
|
||||
|
||||
def gather_info(self, for_cli = False):
|
||||
bytes_left_all = 0
|
||||
|
||||
@@ -1385,7 +1399,7 @@ def nzf_cmp_date(nzf1, nzf2):
|
||||
return nzf_cmp_name(nzf1, nzf2, name=False)
|
||||
|
||||
|
||||
RE_RAR = re.compile(r'(\.rar|\.r\d\d)|\.s\d\d|\.t\d\d|\.u\d\d|\.v\d\d', re.I)
|
||||
RE_RAR = re.compile(r'(\.rar|\.r\d\d|\.s\d\d|\.t\d\d|\.u\d\d|\.v\d\d)$', re.I)
|
||||
|
||||
def nzf_cmp_name(nzf1, nzf2, name=True):
|
||||
# The comparison will sort .par2 files to the top of the queue followed by .rar files,
|
||||
@@ -1532,3 +1546,22 @@ def set_attrib_file(path, attribs):
|
||||
f.write('%s\n' % item)
|
||||
f.close()
|
||||
|
||||
|
||||
def analyse_par2(name):
|
||||
""" Check if file is a par2-file and determine vol/block
|
||||
return head, vol, block
|
||||
head is empty when not a par2 file
|
||||
"""
|
||||
head = None
|
||||
vol = block = 0
|
||||
if name and not REJECT_PAR2_RE.search(name):
|
||||
m = PROBABLY_PAR2_RE.search(name)
|
||||
if m:
|
||||
head = m.group(1)
|
||||
vol = m.group(2)
|
||||
block = m.group(3)
|
||||
elif name.lower().find('.par2') > 0:
|
||||
head = os.path.splitext(name)[0]
|
||||
else:
|
||||
head = None
|
||||
return head, vol, block
|
||||
|
||||
@@ -23,16 +23,17 @@ from Foundation import *
|
||||
from AppKit import *
|
||||
from PyObjCTools import AppHelper
|
||||
from objc import YES, NO, nil
|
||||
from threading import Thread
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
from threading import Thread
|
||||
|
||||
import cherrypy
|
||||
import Cheetah.DummyTransaction
|
||||
import sys
|
||||
import time
|
||||
|
||||
import logging
|
||||
import logging.handlers
|
||||
|
||||
import sabnzbd
|
||||
import sabnzbd.cfg
|
||||
@@ -42,6 +43,7 @@ from sabnzbd.misc import get_filename, get_ext, diskfree, to_units
|
||||
from sabnzbd.panic import launch_a_browser
|
||||
import sabnzbd.growler as growler
|
||||
|
||||
from sabnzbd.api import fast_queue
|
||||
from sabnzbd.nzbqueue import NzbQueue
|
||||
import sabnzbd.config as config
|
||||
import sabnzbd.scheduler as scheduler
|
||||
@@ -50,6 +52,7 @@ import sabnzbd.dirscanner as dirscanner
|
||||
from sabnzbd.bpsmeter import BPSMeter
|
||||
from sabnzbd.newzbin import Bookmarks
|
||||
from sabnzbd.database import get_history_handle
|
||||
from sabnzbd.encoding import unicoder
|
||||
|
||||
status_icons = {'idle':'../Resources/sab_idle.png','pause':'../Resources/sab_pause.png','clicked':'../Resources/sab_clicked.png'}
|
||||
start_time = NSDate.date()
|
||||
@@ -328,7 +331,7 @@ class SABnzbdDelegate(NSObject):
|
||||
|
||||
def queueUpdate(self):
|
||||
try:
|
||||
qnfo = NzbQueue.do.queue_info()
|
||||
qnfo = NzbQueue.do.queue_info(max_jobs=10)
|
||||
pnfo_list = qnfo[QNFO_PNFO_LIST_FIELD]
|
||||
|
||||
bytesleftprogess = 0
|
||||
@@ -347,7 +350,7 @@ class SABnzbdDelegate(NSObject):
|
||||
for pnfo in pnfo_list:
|
||||
if job_nb > 10:
|
||||
break
|
||||
filename = pnfo[PNFO_FILENAME_FIELD]
|
||||
filename = unicoder(pnfo[PNFO_FILENAME_FIELD])
|
||||
msgid = pnfo[PNFO_MSGID_FIELD]
|
||||
bytesleft = pnfo[PNFO_BYTES_LEFT_FIELD] / MEBI
|
||||
bytesleftprogess += pnfo[PNFO_BYTES_LEFT_FIELD]
|
||||
@@ -438,24 +441,23 @@ class SABnzbdDelegate(NSObject):
|
||||
|
||||
def stateUpdate(self):
|
||||
try:
|
||||
qnfo = NzbQueue.do.queue_info()
|
||||
bpsnow = BPSMeter.do.get_bps()
|
||||
if sabnzbd.downloader.Downloader.do.paused:
|
||||
paused, bytes_left, bpsnow, time_left = fast_queue()
|
||||
|
||||
if paused:
|
||||
self.state = T('Paused')
|
||||
if sabnzbd.scheduler.pause_int() != "0":
|
||||
self.setMenuTitle("\n\n%s\n" % (sabnzbd.scheduler.pause_int()))
|
||||
else:
|
||||
self.setMenuTitle("")
|
||||
elif qnfo[QNFO_BYTES_LEFT_FIELD] / MEBI > 0:
|
||||
|
||||
elif bytes_left > 0:
|
||||
self.state = ""
|
||||
speed = to_units(bpsnow, dec_limit=1) + 'B/s'
|
||||
speed = to_units(bpsnow, dec_limit=1)
|
||||
# "10.1 MB/s" doesn't fit, remove space char
|
||||
if 'M' in speed and len(speed) > 8:
|
||||
if 'M' in speed and len(speed) > 5:
|
||||
speed = speed.replace(' ', '')
|
||||
timeleft = (bpsnow>10 and self.calc_timeleft(qnfo[QNFO_BYTES_LEFT_FIELD],bpsnow)) or "--"
|
||||
time_left = (bpsnow>10 and time_left) or "------"
|
||||
|
||||
statusbarText = "\n\n%s\n%s\n" % (timeleft, speed)
|
||||
statusbarText = "\n\n%s\n%sB/s\n" % (time_left, speed)
|
||||
|
||||
if sabnzbd.SABSTOP:
|
||||
statusbarText = "..."
|
||||
@@ -786,3 +788,40 @@ def notify(notificationName, message):
|
||||
nc.postNotificationName_object_(notificationName, message)
|
||||
del pool
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
class OsxAwake(Thread):
|
||||
""" Keep running 'caffeinate' as long as the 'stay_awake' flag is set
|
||||
"""
|
||||
do = None
|
||||
def __init__(self):
|
||||
Thread.__init__(self)
|
||||
self.stay_awake = False
|
||||
self.__stop_now = False
|
||||
self.__proc = None
|
||||
logging.info('Starting caffeinate task')
|
||||
OsxAwake.do = self
|
||||
|
||||
def run(self):
|
||||
command = ['caffeinate', '-i', '-s', '-t300']
|
||||
while not self.__stop_now:
|
||||
if self.stay_awake:
|
||||
self.stay_awake = False
|
||||
logging.debug('Launching caffeinate')
|
||||
self.__proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)
|
||||
self.__proc.wait()
|
||||
self.__proc = None
|
||||
else:
|
||||
time.sleep(30)
|
||||
|
||||
def stop(self):
|
||||
logging.info('Stopping caffeinate task')
|
||||
self.__stop_now = True
|
||||
self.stay_awake = False
|
||||
if self.__proc:
|
||||
logging.debug('Stopping caffeinate')
|
||||
try:
|
||||
self.__proc.terminate()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
@@ -236,6 +236,10 @@ def launch_a_browser(url, force=False):
|
||||
if not force and not cfg.autobrowser() or sabnzbd.DAEMON:
|
||||
return
|
||||
|
||||
if '::1' in url and not '[::1]' in url:
|
||||
# Get around ideosyncrasy in Python runtime
|
||||
url = url.replace('::1', '[::1]')
|
||||
|
||||
if cfg.enable_https() and not cfg.https_port.get_int():
|
||||
# Must use https, because http is not available
|
||||
url = url.replace('http:', 'https:')
|
||||
|
||||
@@ -31,12 +31,12 @@ import re
|
||||
from sabnzbd.newsunpack import unpack_magic, par2_repair, external_processing, sfv_check
|
||||
from threading import Thread
|
||||
from sabnzbd.misc import real_path, get_unique_path, create_dirs, move_to_path, \
|
||||
get_unique_filename, make_script_path, verified_flag_file, \
|
||||
get_unique_filename, make_script_path, flag_file, \
|
||||
on_cleanup_list, renamer, remove_dir, remove_all, globber, \
|
||||
set_permissions
|
||||
from sabnzbd.tvsort import Sorter
|
||||
from sabnzbd.constants import REPAIR_PRIORITY, POSTPROC_QUEUE_FILE_NAME, \
|
||||
POSTPROC_QUEUE_VERSION, sample_match, JOB_ADMIN, Status
|
||||
POSTPROC_QUEUE_VERSION, sample_match, JOB_ADMIN, Status, VERIFIED_FILE
|
||||
from sabnzbd.encoding import TRANS, unicoder
|
||||
from sabnzbd.newzbin import Bookmarks
|
||||
import sabnzbd.emailer as emailer
|
||||
@@ -311,7 +311,7 @@ def process_job(nzo):
|
||||
## TV/Movie/Date Renaming code part 1 - detect and construct paths
|
||||
file_sorter = Sorter(cat)
|
||||
complete_dir = file_sorter.detect(dirname, complete_dir)
|
||||
if file_sorter.is_sortfile():
|
||||
if file_sorter.sort_file:
|
||||
one_folder = False
|
||||
|
||||
if one_folder:
|
||||
@@ -358,6 +358,7 @@ def process_job(nzo):
|
||||
path = os.path.join(root, file_)
|
||||
new_path = path.replace(workdir, tmp_workdir_complete)
|
||||
new_path = get_unique_filename(new_path)
|
||||
newfiles.append(new_path)
|
||||
if not move_to_path(path, new_path, unique=False):
|
||||
nzo.set_unpack_info('Unpack', T('Failed moving %s to %s') % (unicoder(path), unicoder(new_path)))
|
||||
all_ok = False
|
||||
@@ -409,7 +410,7 @@ def process_job(nzo):
|
||||
remove_samples(workdir_complete)
|
||||
|
||||
## TV/Movie/Date Renaming code part 2 - rename and move files to parent folder
|
||||
if all_ok and file_sorter.is_sortfile():
|
||||
if all_ok and file_sorter.sort_file:
|
||||
if newfiles:
|
||||
file_sorter.rename(newfiles, workdir_complete)
|
||||
workdir_complete, ok = file_sorter.move(workdir_complete)
|
||||
@@ -539,6 +540,7 @@ def process_job(nzo):
|
||||
def parring(nzo, workdir):
|
||||
""" Perform par processing. Returns: (par_error, re_add)
|
||||
"""
|
||||
assert isinstance(nzo, sabnzbd.nzbstuff.NzbObject)
|
||||
filename = nzo.final_name
|
||||
growler.send_notification(T('Post-processing'), nzo.final_name, 'pp')
|
||||
logging.info('Par2 check starting on %s', filename)
|
||||
@@ -561,8 +563,7 @@ def parring(nzo, workdir):
|
||||
need_re_add, res = par2_repair(parfile_nzf, nzo, workdir, set_)
|
||||
if need_re_add:
|
||||
re_add = True
|
||||
else:
|
||||
par_error = par_error or not res
|
||||
par_error = par_error or not res
|
||||
|
||||
if re_add:
|
||||
logging.info('Readded %s to queue', filename)
|
||||
@@ -582,8 +583,12 @@ def parring(nzo, workdir):
|
||||
par_error = False
|
||||
nzo.set_unpack_info('Repair', T('Trying SFV verification'))
|
||||
for sfv in sfvs:
|
||||
if not sfv_check(sfv):
|
||||
nzo.set_unpack_info('Repair', T('Some files failed to verify against "%s"') % unicoder(os.path.basename(sfv)))
|
||||
failed = sfv_check(sfv)
|
||||
if failed:
|
||||
msg = T('Some files failed to verify against "%s"') % unicoder(os.path.basename(sfv))
|
||||
msg += '; '
|
||||
msg += '; '.join(failed)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
par_error = True
|
||||
if not par_error:
|
||||
nzo.set_unpack_info('Repair', T('Verified successfully using SFV files'))
|
||||
@@ -592,7 +597,7 @@ def parring(nzo, workdir):
|
||||
nzo.set_unpack_info('Repair', T('[%s] No par2 sets') % unicoder(filename))
|
||||
|
||||
if not par_error:
|
||||
verified_flag_file(workdir, create=True)
|
||||
flag_file(workdir, VERIFIED_FILE, create=True)
|
||||
return par_error, re_add
|
||||
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ def convert_filter(text):
|
||||
try:
|
||||
return re.compile(txt, re.I)
|
||||
except:
|
||||
logging.error(Ta('Could not compile regex: %s'), text)
|
||||
logging.debug('Could not compile regex: %s', text)
|
||||
return None
|
||||
|
||||
_EXPIRE_SEC = 3*24*3600 # 3 days
|
||||
@@ -407,7 +407,10 @@ class RSSQueue(object):
|
||||
result = False
|
||||
break
|
||||
else:
|
||||
found = re.search(regexes[n], title)
|
||||
if regexes[n]:
|
||||
found = re.search(regexes[n], title)
|
||||
else:
|
||||
found = False
|
||||
if reTypes[n] == 'M' and not found:
|
||||
logging.debug("Filter rejected on rule %d", n)
|
||||
result = False
|
||||
|
||||
@@ -29,6 +29,8 @@ import sabnzbd.api as api
|
||||
import sabnzbd.scheduler as scheduler
|
||||
from sabnzbd.downloader import Downloader
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.constants import MEBI
|
||||
from sabnzbd.misc import to_units
|
||||
import os
|
||||
import cherrypy
|
||||
|
||||
@@ -71,23 +73,19 @@ class SABTrayThread(SysTrayIconThread):
|
||||
""" Update menu info, once every 10 calls """
|
||||
self.counter += 1
|
||||
if self.counter > 10:
|
||||
status = api.qstatus_data()
|
||||
state = status.get('state', "SABnzbd")
|
||||
self.sabpaused = status.get('paused', False)
|
||||
self.sabpaused, bytes_left, bpsnow, time_left = api.fast_queue()
|
||||
mb_left = to_units(bytes_left, dec_limit=1)
|
||||
speed = to_units(bpsnow, dec_limit=1)
|
||||
|
||||
if state == 'IDLE':
|
||||
self.hover_text = T('Idle')
|
||||
self.icon = self.sabicons['default']
|
||||
elif state == 'PAUSED':
|
||||
if self.sabpaused:
|
||||
self.hover_text = T('Paused')
|
||||
self.icon = self.sabicons['pause']
|
||||
elif state == 'DOWNLOADING':
|
||||
self.hover_text = "%sB/s %s: %s MB (%s)" % (status.get('speed', "---"), T('Remaining'), str(int(status.get('mbleft', "0"))), status.get('timeleft', "---"))
|
||||
elif bytes_left > 0:
|
||||
self.hover_text = "%sB/s %s: %sB (%s)" % (speed, T('Remaining'), mb_left, time_left)
|
||||
self.icon = self.sabicons['green']
|
||||
else:
|
||||
self.hover_text = '??'
|
||||
self.icon = self.sabicons['pause']
|
||||
|
||||
self.hover_text = T('Idle')
|
||||
self.icon = self.sabicons['default']
|
||||
|
||||
self.refresh_icon()
|
||||
self.counter = 0
|
||||
|
||||
@@ -82,7 +82,7 @@ def init():
|
||||
continue
|
||||
|
||||
if d.isdigit():
|
||||
d = [int(d)]
|
||||
d = [int(i) for i in d]
|
||||
else:
|
||||
d = range(1, 8)
|
||||
|
||||
|
||||
@@ -415,6 +415,7 @@ SKIN_TEXT = {
|
||||
'explain-auto_sort' : TT('Automatically sort items by (average) age.'),
|
||||
'opt-check_new_rel' : TT('Check for New Release'),
|
||||
'explain-check_new_rel' : TT('Weekly check for new SABnzbd release.'),
|
||||
'also-test' : TT('Also test releases'), #: Pick list for weekly test for new releases
|
||||
'opt-replace_spaces' : TT('Replace Spaces in Foldername'),
|
||||
'explain-replace_spaces' : TT('Replace spaces with underscores in folder names.'),
|
||||
'opt-replace_dots' : TT('Replace dots in Foldername'),
|
||||
|
||||
@@ -28,7 +28,7 @@ import re
|
||||
|
||||
import sabnzbd
|
||||
from sabnzbd.misc import move_to_path, cleanup_empty_directories, get_unique_path, \
|
||||
get_unique_filename, get_ext, renamer, remove_dir, sanitize_foldername
|
||||
get_unique_filename, get_ext, renamer, sanitize_foldername
|
||||
from sabnzbd.constants import series_match, date_match, year_match, sample_match
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.encoding import titler
|
||||
@@ -37,8 +37,8 @@ RE_SAMPLE = re.compile(sample_match, re.I)
|
||||
# Do not rename .vob files as they are usually DVD's
|
||||
EXCLUDED_FILE_EXTS = ('.vob', '.bin')
|
||||
|
||||
LOWERCASE = ('the','of','and','at','vs','a','an','but','nor','for','on',\
|
||||
'so','yet')
|
||||
LOWERCASE = ('the', 'of', 'and', 'at', 'vs', 'a', 'an', 'but', 'nor', 'for', 'on', \
|
||||
'so', 'yet')
|
||||
UPPERCASE = ('III', 'II', 'IV')
|
||||
|
||||
REPLACE_AFTER = {
|
||||
@@ -63,33 +63,38 @@ COUNTRY_REP = ('(US)', '(UK)', '(EU)', '(CA)', '(YU)', '(VE)', '(TR)', '(CH)', \
|
||||
_RE_ENDEXT = re.compile(r'\.%ext[{}]*$', re.I)
|
||||
|
||||
def endswith_ext(path):
|
||||
m = _RE_ENDEXT.search(path)
|
||||
return m is not None
|
||||
""" Return True when path ends with '.%ext'
|
||||
"""
|
||||
return _RE_ENDEXT.search(path) is not None
|
||||
|
||||
|
||||
def move_to_parent_folder(workdir):
|
||||
""" Move content of 'workdir' to 'workdir/..' (except marker file)
|
||||
""" Move all in 'workdir' into 'workdir/..'
|
||||
"""
|
||||
path1 = os.path.abspath(os.path.normpath(os.path.join(workdir, '..'))) #move things to the folder below
|
||||
# Determine 'folder'/..
|
||||
workdir = os.path.abspath(os.path.normpath(workdir))
|
||||
dest = os.path.normpath(os.path.join(workdir, '..'))
|
||||
|
||||
# Check for DVD folders and stop if found
|
||||
for item in os.listdir(workdir):
|
||||
if item.lower() in ('video_ts', 'audio_ts', 'bdmv'):
|
||||
return workdir, True
|
||||
|
||||
for root, dirs, files in os.walk(workdir):
|
||||
for _file in files:
|
||||
path = os.path.join(root, _file)
|
||||
new_path = path.replace(workdir, path1)
|
||||
new_path = path.replace(workdir, dest)
|
||||
new_path = get_unique_filename(new_path)
|
||||
if not move_to_path(path, new_path, False):
|
||||
return path1, False
|
||||
return dest, False
|
||||
|
||||
cleanup_empty_directories(workdir)
|
||||
try:
|
||||
remove_dir(workdir)
|
||||
except:
|
||||
pass
|
||||
|
||||
return path1, True
|
||||
return dest, True
|
||||
|
||||
|
||||
class Sorter(object):
|
||||
""" Generic Sorter class
|
||||
"""
|
||||
def __init__(self, cat):
|
||||
self.sorter = None
|
||||
self.type = None
|
||||
@@ -98,22 +103,24 @@ class Sorter(object):
|
||||
self.ext = ''
|
||||
|
||||
def detect(self, dirname, complete_dir):
|
||||
""" Detect which kind of sort applies
|
||||
"""
|
||||
self.sorter = SeriesSorter(dirname, complete_dir, self.cat)
|
||||
if self.sorter.is_match():
|
||||
if self.sorter.matched:
|
||||
complete_dir = self.sorter.get_final_path()
|
||||
self.type = 'tv'
|
||||
self.sort_file = True
|
||||
return complete_dir
|
||||
|
||||
self.sorter = DateSorter(dirname, complete_dir, self.cat)
|
||||
if self.sorter.is_match():
|
||||
if self.sorter.matched:
|
||||
complete_dir = self.sorter.get_final_path()
|
||||
self.type = 'date'
|
||||
self.sort_file = True
|
||||
return complete_dir
|
||||
|
||||
self.sorter = GenericSorter(dirname, complete_dir, self.cat)
|
||||
if self.sorter.is_match():
|
||||
if self.sorter.matched:
|
||||
complete_dir = self.sorter.get_final_path()
|
||||
self.type = 'movie'
|
||||
self.sort_file = True
|
||||
@@ -123,12 +130,15 @@ class Sorter(object):
|
||||
return complete_dir
|
||||
|
||||
def rename(self, newfiles, workdir_complete):
|
||||
if self.sorter.should_rename():
|
||||
""" Rename files of the job
|
||||
"""
|
||||
if self.sorter.rename_or_not:
|
||||
self.sorter.rename(newfiles, workdir_complete)
|
||||
|
||||
def rename_with_ext(self, workdir_complete):
|
||||
""" Special renamer for %ext """
|
||||
if self.sorter.should_rename() and '%ext' in workdir_complete and self.ext:
|
||||
""" Special renamer for %ext
|
||||
"""
|
||||
if self.sorter.rename_or_not and '%ext' in workdir_complete and self.ext:
|
||||
# Replace %ext with extension
|
||||
newpath = workdir_complete.replace('%ext', self.ext)
|
||||
try:
|
||||
@@ -167,10 +177,10 @@ class Sorter(object):
|
||||
ok = False
|
||||
return workdir_complete, ok
|
||||
|
||||
def is_sortfile(self):
|
||||
return self.sort_file
|
||||
|
||||
class SeriesSorter(object):
|
||||
""" Methods for Series Sorting
|
||||
"""
|
||||
def __init__(self, dirname, path, cat):
|
||||
self.matched = False
|
||||
|
||||
@@ -181,6 +191,7 @@ class SeriesSorter(object):
|
||||
self.cats = cfg.tv_categories()
|
||||
self.filename_set = ''
|
||||
self.fname = '' # Value for %fn substitution in folders
|
||||
self.final_path = ''
|
||||
|
||||
self.match_obj = None
|
||||
self.extras = None
|
||||
@@ -199,7 +210,7 @@ class SeriesSorter(object):
|
||||
if force or (cfg.enable_tv_sorting() and cfg.tv_sort_string()):
|
||||
if force or (not self.cats) or (self.cat and self.cat.lower() in self.cats) or (not self.cat and 'None' in self.cats):
|
||||
#First check if the show matches TV episode regular expressions. Returns regex match object
|
||||
self.match_obj, self.extras = check_regexs(self.original_dirname, series_match, double=True)
|
||||
self.match_obj, self.extras = check_regexs(self.original_dirname, series_match)
|
||||
if self.match_obj:
|
||||
logging.debug("Found TV Show - Starting folder sort (%s)", self.original_dirname)
|
||||
self.matched = True
|
||||
@@ -211,7 +222,8 @@ class SeriesSorter(object):
|
||||
|
||||
|
||||
def get_final_path(self):
|
||||
# Collect and construct all the variables such as episode name, show names
|
||||
""" Collect and construct all the variables such as episode name, show names
|
||||
"""
|
||||
if self.get_values():
|
||||
# Get the final path
|
||||
path = self.construct_path()
|
||||
@@ -239,8 +251,8 @@ class SeriesSorter(object):
|
||||
def get_shownames(self):
|
||||
''' Get the show name from the match object and format it '''
|
||||
# Get the formatted title and alternate title formats
|
||||
self.show_info['show_tname'], self.show_info['show_tname_two'], self.show_info['show_tname_three'] = getTitles(self.match_obj, self.original_dirname, True)
|
||||
self.show_info['show_name'], self.show_info['show_name_two'], self.show_info['show_name_three'] = getTitles(self.match_obj, self.original_dirname)
|
||||
self.show_info['show_tname'], self.show_info['show_tname_two'], self.show_info['show_tname_three'] = get_titles(self.match_obj, self.original_dirname, True)
|
||||
self.show_info['show_name'], self.show_info['show_name_two'], self.show_info['show_name_three'] = get_titles(self.match_obj, self.original_dirname)
|
||||
|
||||
|
||||
def get_seasons(self):
|
||||
@@ -289,7 +301,7 @@ class SeriesSorter(object):
|
||||
|
||||
def get_showdescriptions(self):
|
||||
''' Get the show descriptions from the match object and format them '''
|
||||
self.show_info['ep_name'], self.show_info['ep_name_two'], self.show_info['ep_name_three'] = getDescriptions(self.match_obj, self.original_dirname)
|
||||
self.show_info['ep_name'], self.show_info['ep_name_two'], self.show_info['ep_name_three'] = get_descriptions(self.match_obj, self.original_dirname)
|
||||
|
||||
|
||||
def get_values(self):
|
||||
@@ -367,10 +379,10 @@ class SeriesSorter(object):
|
||||
path = path.replace(key, name)
|
||||
|
||||
# Lowercase all characters encased in {}
|
||||
path = toLowercase(path)
|
||||
path = to_lowercase(path)
|
||||
|
||||
# Strip any extra ' ' '.' or '_' around foldernames
|
||||
path = stripFolders(path)
|
||||
path = strip_folders(path)
|
||||
|
||||
# Split the last part of the path up for the renamer
|
||||
if extension:
|
||||
@@ -382,12 +394,10 @@ class SeriesSorter(object):
|
||||
|
||||
return os.path.normpath(head)
|
||||
|
||||
def should_rename(self):
|
||||
return self.rename_or_not
|
||||
|
||||
def rename(self, files, current_path):
|
||||
""" Rename for Series
|
||||
"""
|
||||
logging.debug("Renaming Series")
|
||||
renamed = None
|
||||
largest = (None, None, 0)
|
||||
|
||||
def to_filepath(f, current_path):
|
||||
@@ -419,18 +429,18 @@ class SeriesSorter(object):
|
||||
self.fname = tmp
|
||||
newname = "%s%s" % (self.filename_set, self.ext)
|
||||
# Replace %fn with the original filename
|
||||
newname = newname.replace('%fn',tmp)
|
||||
newname = newname.replace('%fn', tmp)
|
||||
newpath = os.path.join(current_path, newname)
|
||||
# Replace %ext with extension
|
||||
newpath = newpath.replace('%ext', self.ext)
|
||||
if not os.path.exists(newpath):
|
||||
try:
|
||||
logging.debug("Rename: %s to %s", filepath,newpath)
|
||||
renamer(filepath,newpath)
|
||||
logging.debug("Rename: %s to %s", filepath, newpath)
|
||||
renamer(filepath, newpath)
|
||||
except:
|
||||
logging.error("Failed to rename: %s to %s", current_path, newpath)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
rename_similar(current_path, file, self.filename_set)
|
||||
rename_similar(current_path, self.ext, self.filename_set)
|
||||
else:
|
||||
logging.debug('Current path already exists, skipping rename, %s', newpath)
|
||||
else:
|
||||
@@ -443,6 +453,8 @@ _RE_MULTIPLE = ( \
|
||||
re.compile(r'\w\W([\w\d])\W', re.I) # blah-1-ok.avi blah-a-ok.avi
|
||||
)
|
||||
def check_for_multiple(files):
|
||||
""" Return list of files that looks like a multi-part post
|
||||
"""
|
||||
for regex in _RE_MULTIPLE:
|
||||
matched_files = check_for_sequence(regex, files)
|
||||
if matched_files:
|
||||
@@ -451,6 +463,8 @@ def check_for_multiple(files):
|
||||
|
||||
|
||||
def check_for_sequence(regex, files):
|
||||
""" Return list of files that looks like a sequence, using 'regex'
|
||||
"""
|
||||
matches = {}
|
||||
prefix = None
|
||||
# Build up a dictionary of matches
|
||||
@@ -502,6 +516,8 @@ def check_for_sequence(regex, files):
|
||||
|
||||
|
||||
class GenericSorter(object):
|
||||
""" Methods for Generic Sorting
|
||||
"""
|
||||
def __init__(self, dirname, path, cat):
|
||||
self.matched = False
|
||||
|
||||
@@ -513,6 +529,7 @@ class GenericSorter(object):
|
||||
self.cat = cat
|
||||
self.filename_set = ''
|
||||
self.fname = '' # Value for %fn substitution in folders
|
||||
self.final_path = ''
|
||||
|
||||
self.match_obj = None
|
||||
|
||||
@@ -525,7 +542,8 @@ class GenericSorter(object):
|
||||
|
||||
|
||||
def match(self, force=False):
|
||||
''' Checks the category for a match, if so set self.match to true '''
|
||||
""" Checks the category for a match, if so set self.match to true
|
||||
"""
|
||||
if force or (cfg.enable_movie_sorting() and self.sort_string):
|
||||
#First check if the show matches TV episode regular expressions. Returns regex match object
|
||||
if force or (self.cat and self.cat.lower() in self.cats) or (not self.cat and 'None' in self.cats):
|
||||
@@ -533,14 +551,9 @@ class GenericSorter(object):
|
||||
self.matched = True
|
||||
|
||||
|
||||
def is_match(self):
|
||||
''' Returns whether there was a match or not '''
|
||||
return self.matched
|
||||
|
||||
|
||||
|
||||
def get_final_path(self):
|
||||
# Collect and construct all the variables such as episode name, show names
|
||||
""" Collect and construct all the variables such as episode name, show names
|
||||
"""
|
||||
if self.get_values():
|
||||
# Get the final path
|
||||
path = self.construct_path()
|
||||
@@ -551,32 +564,33 @@ class GenericSorter(object):
|
||||
return os.path.join(self.original_path, self.original_dirname)
|
||||
|
||||
def get_values(self):
|
||||
""" Collect and construct all the values needed for path replacement """
|
||||
|
||||
""" Collect and construct all the values needed for path replacement
|
||||
"""
|
||||
## - Get Year
|
||||
dirname = self.original_dirname.replace('_', ' ')
|
||||
RE_YEAR = re.compile(year_match, re.I)
|
||||
year_m = RE_YEAR.search(dirname)
|
||||
if year_m:
|
||||
# Find the last matched date
|
||||
# Keep year_m to use in getTitles
|
||||
# Keep year_m to use in get_titles
|
||||
year = RE_YEAR.findall(dirname)[-1][0]
|
||||
self.movie_info['year'] = year
|
||||
else:
|
||||
self.movie_info['year'] = ''
|
||||
|
||||
## - Get Decades
|
||||
self.movie_info['decade'], self.movie_info['decade_two'] = getDecades(self.movie_info['year'])
|
||||
self.movie_info['decade'], self.movie_info['decade_two'] = get_decades(self.movie_info['year'])
|
||||
|
||||
## - Get Title
|
||||
self.movie_info['ttitle'], self.movie_info['ttitle_two'], self.movie_info['ttitle_three'] = getTitles(year_m, self.original_dirname, True)
|
||||
self.movie_info['title'], self.movie_info['title_two'], self.movie_info['title_three'] = getTitles(year_m, self.original_dirname)
|
||||
self.movie_info['ttitle'], self.movie_info['ttitle_two'], self.movie_info['ttitle_three'] = get_titles(year_m, self.original_dirname, True)
|
||||
self.movie_info['title'], self.movie_info['title_two'], self.movie_info['title_three'] = get_titles(year_m, self.original_dirname)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def construct_path(self):
|
||||
|
||||
""" Return path reconstructed from orginal and sort expression
|
||||
"""
|
||||
sorter = self.sort_string.replace('\\', '/')
|
||||
mapping = []
|
||||
|
||||
@@ -618,10 +632,10 @@ class GenericSorter(object):
|
||||
|
||||
|
||||
# Lowercase all characters encased in {}
|
||||
path = toLowercase(path)
|
||||
path = to_lowercase(path)
|
||||
|
||||
# Strip any extra ' ' '.' or '_' around foldernames
|
||||
path = stripFolders(path)
|
||||
path = strip_folders(path)
|
||||
|
||||
# Split the last part of the path up for the renamer
|
||||
if extension:
|
||||
@@ -633,10 +647,10 @@ class GenericSorter(object):
|
||||
|
||||
return os.path.normpath(head)
|
||||
|
||||
def should_rename(self):
|
||||
return self.rename_or_not
|
||||
|
||||
def rename(self, _files, current_path):
|
||||
""" Rename for Generic files
|
||||
"""
|
||||
logging.debug("Renaming Generic file")
|
||||
def filter_files(_file, current_path):
|
||||
if is_full_path(_file):
|
||||
@@ -650,8 +664,7 @@ class GenericSorter(object):
|
||||
return True
|
||||
return False
|
||||
|
||||
renamed = False
|
||||
# remove any files below 300MB from this list
|
||||
# remove any files below the limit from this list
|
||||
files = [_file for _file in _files if filter_files(_file, current_path)]
|
||||
|
||||
length = len(files)
|
||||
@@ -665,16 +678,16 @@ class GenericSorter(object):
|
||||
if os.path.exists(filepath):
|
||||
tmp, ext = os.path.splitext(file)
|
||||
self.fname = tmp
|
||||
newname = "%s%s" % (self.filename_set,ext)
|
||||
newname = newname.replace('%fn',tmp)
|
||||
newname = "%s%s" % (self.filename_set, ext)
|
||||
newname = newname.replace('%fn', tmp)
|
||||
newpath = os.path.join(current_path, newname)
|
||||
try:
|
||||
logging.debug("Rename: %s to %s", filepath,newpath)
|
||||
renamer(filepath,newpath)
|
||||
logging.debug("Rename: %s to %s", filepath, newpath)
|
||||
renamer(filepath, newpath)
|
||||
except:
|
||||
logging.error(Ta('Failed to rename: %s to %s'), filepath, newpath)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
rename_similar(current_path, file, self.filename_set)
|
||||
rename_similar(current_path, ext, self.filename_set)
|
||||
|
||||
## Sequence File Handling
|
||||
# if there is more than one extracted file check for CD1/1/A in the title
|
||||
@@ -688,21 +701,23 @@ class GenericSorter(object):
|
||||
tmp, ext = os.path.splitext(file)
|
||||
self.fname = tmp
|
||||
name = '%s%s' % (self.filename_set, self.extra)
|
||||
name = name.replace('%1', str(index)).replace('%fn',tmp)
|
||||
name = name.replace('%1', str(index)).replace('%fn', tmp)
|
||||
name = name + ext
|
||||
newpath = os.path.join(current_path, name)
|
||||
try:
|
||||
logging.debug("Rename: %s to %s", filepath,newpath)
|
||||
renamer(filepath,newpath)
|
||||
logging.debug("Rename: %s to %s", filepath, newpath)
|
||||
renamer(filepath, newpath)
|
||||
except:
|
||||
logging.error(Ta('Failed to rename: %s to %s'), filepath, newpath)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
rename_similar(current_path, file, self.filename_set)
|
||||
rename_similar(current_path, ext, self.filename_set)
|
||||
else:
|
||||
logging.debug("Movie files not in sequence %s", _files)
|
||||
|
||||
|
||||
class DateSorter(object):
|
||||
""" Methods for Date Sorting
|
||||
"""
|
||||
def __init__(self, dirname, path, cat):
|
||||
self.matched = False
|
||||
|
||||
@@ -731,7 +746,7 @@ class DateSorter(object):
|
||||
if force or (cfg.enable_date_sorting() and self.sort_string):
|
||||
#First check if the show matches TV episode regular expressions. Returns regex match object
|
||||
if force or (self.cat and self.cat.lower() in self.cats) or (not self.cat and 'None' in self.cats):
|
||||
self.match_obj, self.date_type = checkForDate(self.original_dirname, date_match)
|
||||
self.match_obj, self.date_type = check_for_date(self.original_dirname, date_match)
|
||||
if self.match_obj:
|
||||
logging.debug("Date Sorting - Starting folder sort (%s)", self.original_dirname)
|
||||
self.matched = True
|
||||
@@ -743,7 +758,8 @@ class DateSorter(object):
|
||||
|
||||
|
||||
def get_final_path(self):
|
||||
# Collect and construct all the variables such as episode name, show names
|
||||
""" Collect and construct all the variables such as episode name, show names
|
||||
"""
|
||||
if self.get_values():
|
||||
# Get the final path
|
||||
path = self.construct_path()
|
||||
@@ -769,25 +785,26 @@ class DateSorter(object):
|
||||
self.date_info['date_two'] = self.date_info['date'].rjust(2,'0')
|
||||
|
||||
## - Get Decades
|
||||
self.date_info['decade'], self.date_info['decade_two'] = getDecades(self.date_info['year'])
|
||||
self.date_info['decade'], self.date_info['decade_two'] = get_decades(self.date_info['year'])
|
||||
|
||||
## - Get Title
|
||||
self.date_info['ttitle'], self.date_info['ttitle_two'], self.date_info['ttitle_three'] = getTitles(self.match_obj, self.original_dirname, True)
|
||||
self.date_info['title'], self.date_info['title_two'], self.date_info['title_three'] = getTitles(self.match_obj, self.original_dirname)
|
||||
self.date_info['ttitle'], self.date_info['ttitle_two'], self.date_info['ttitle_three'] = get_titles(self.match_obj, self.original_dirname, True)
|
||||
self.date_info['title'], self.date_info['title_two'], self.date_info['title_three'] = get_titles(self.match_obj, self.original_dirname)
|
||||
|
||||
self.date_info['ep_name'], self.date_info['ep_name_two'], self.date_info['ep_name_three'] = getDescriptions(self.match_obj, self.original_dirname)
|
||||
self.date_info['ep_name'], self.date_info['ep_name_two'], self.date_info['ep_name_three'] = get_descriptions(self.match_obj, self.original_dirname)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def construct_path(self):
|
||||
|
||||
""" Return path reconstructed from orginal and sort expression
|
||||
"""
|
||||
sorter = self.sort_string.replace('\\', '/')
|
||||
mapping = []
|
||||
|
||||
if endswith_ext(sorter):
|
||||
extension = True
|
||||
sorter= sorter.replace(".%ext", '')
|
||||
sorter = sorter.replace(".%ext", '')
|
||||
else:
|
||||
extension = False
|
||||
|
||||
@@ -838,10 +855,10 @@ class DateSorter(object):
|
||||
path = path.replace(key, name)
|
||||
|
||||
# Lowercase all characters encased in {}
|
||||
path = toLowercase(path)
|
||||
path = to_lowercase(path)
|
||||
|
||||
# Strip any extra ' ' '.' or '_' around foldernames
|
||||
path = stripFolders(path)
|
||||
path = strip_folders(path)
|
||||
|
||||
# Split the last part of the path up for the renamer
|
||||
if extension:
|
||||
@@ -853,12 +870,11 @@ class DateSorter(object):
|
||||
|
||||
return os.path.normpath(head)
|
||||
|
||||
def should_rename(self):
|
||||
return self.rename_or_not
|
||||
|
||||
def rename(self, files, current_path):
|
||||
""" Renaming Date file
|
||||
"""
|
||||
logging.debug("Renaming Date file")
|
||||
renamed = None
|
||||
#find the master file to rename
|
||||
for file in files:
|
||||
if is_full_path(file):
|
||||
@@ -868,21 +884,21 @@ class DateSorter(object):
|
||||
|
||||
if os.path.exists(filepath):
|
||||
size = os.stat(filepath).st_size
|
||||
if size > 130000000:
|
||||
if size > cfg.movie_rename_limit.get_int():
|
||||
if 'sample' not in file:
|
||||
tmp, ext = os.path.splitext(file)
|
||||
self.fname = tmp
|
||||
newname = "%s%s" % (self.filename_set,ext)
|
||||
newname = newname.replace('%fn',tmp)
|
||||
newname = "%s%s" % (self.filename_set, ext)
|
||||
newname = newname.replace('%fn', tmp)
|
||||
newpath = os.path.join(current_path, newname)
|
||||
if not os.path.exists(newpath):
|
||||
try:
|
||||
logging.debug("Rename: %s to %s", filepath,newpath)
|
||||
renamer(filepath,newpath)
|
||||
logging.debug("Rename: %s to %s", filepath, newpath)
|
||||
renamer(filepath, newpath)
|
||||
except:
|
||||
logging.error(Ta('Failed to rename: %s to %s'), current_path, newpath)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
rename_similar(current_path, file, self.filename_set)
|
||||
rename_similar(current_path, ext, self.filename_set)
|
||||
break
|
||||
|
||||
|
||||
@@ -909,7 +925,7 @@ def path_subst(path, mapping):
|
||||
return ''.join(newpath)
|
||||
|
||||
|
||||
def getTitles(match, name, titleing=False):
|
||||
def get_titles(match, name, titleing=False):
|
||||
'''
|
||||
The title will be the part before the match
|
||||
Clean it up and title() it
|
||||
@@ -989,7 +1005,7 @@ def replace_word(input, one, two):
|
||||
input = input.replace(one, two)
|
||||
return input
|
||||
|
||||
def getDescriptions(match, name):
|
||||
def get_descriptions(match, name):
|
||||
'''
|
||||
If present, get a description from the nzb name.
|
||||
A description has to be after the matched item, seperated either
|
||||
@@ -1010,7 +1026,9 @@ def getDescriptions(match, name):
|
||||
return ep_name, ep_name2, ep_name3
|
||||
|
||||
|
||||
def getDecades(year):
|
||||
def get_decades(year):
|
||||
""" Return 4 digit and 2 digit decades given 'year'
|
||||
"""
|
||||
if year:
|
||||
try:
|
||||
decade = year[2:3]+'0'
|
||||
@@ -1023,14 +1041,18 @@ def getDecades(year):
|
||||
decade2 = ''
|
||||
return decade, decade2
|
||||
|
||||
|
||||
def check_for_folder(path):
|
||||
""" Return True if any folder is found in the tree at 'path'
|
||||
"""
|
||||
for root, dirs, files in os.walk(path):
|
||||
if dirs:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
_RE_LOWERCASE = re.compile(r'{([^{]*)}')
|
||||
def toLowercase(path):
|
||||
def to_lowercase(path):
|
||||
''' Lowercases any characters enclosed in {} '''
|
||||
while True:
|
||||
m = _RE_LOWERCASE.search(path)
|
||||
@@ -1043,17 +1065,25 @@ def toLowercase(path):
|
||||
path = path.replace('}', '')
|
||||
return path
|
||||
|
||||
def stripFolders(folders):
|
||||
f = folders.strip('/').split('/')
|
||||
|
||||
def strip_folders(path):
|
||||
""" Return 'path' without leading and trailing spaces and underscores in each element
|
||||
For Windows, also remove leading and trailing dots
|
||||
"""
|
||||
f = path.strip('/').split('/')
|
||||
|
||||
# For path beginning with a slash, insert empty element to prevent loss
|
||||
if folders.strip()[0] in '/\\':
|
||||
if path.strip()[0] in '/\\':
|
||||
f.insert(0, '')
|
||||
|
||||
def strip_all(x):
|
||||
""" Strip all leading/trailing underscores
|
||||
also dots for Windows
|
||||
"""
|
||||
x = x.strip().strip('_')
|
||||
if sabnzbd.WIN32:
|
||||
# Don't want to strip . from folders such as /.sabnzbd/
|
||||
# OSX and Linux should keep dots, because leading dots are significant
|
||||
# while Windows cannot handle trailing dots
|
||||
x = x.strip('.')
|
||||
x = x.strip()
|
||||
return x
|
||||
@@ -1061,41 +1091,44 @@ def stripFolders(folders):
|
||||
return os.path.normpath('/'.join([strip_all(x) for x in f]))
|
||||
|
||||
|
||||
def rename_similar(path, file, name):
|
||||
logging.debug('Renaming files similar to: %s to %s', file, name)
|
||||
file_prefix, ext = os.path.splitext(file)
|
||||
file_prefix = file_prefix.lower()
|
||||
for root, dirs, files in os.walk(path):
|
||||
for _file in files:
|
||||
fpath = os.path.join(root, _file)
|
||||
tmp, ext = os.path.splitext(_file)
|
||||
if tmp.lower() == file_prefix:
|
||||
newname = "%s%s" % (name,ext)
|
||||
newname = newname.replace('%fn',tmp)
|
||||
newpath = os.path.join(path, newname)
|
||||
if not os.path.exists(newpath):
|
||||
try:
|
||||
logging.debug("Rename: %s to %s", fpath,newpath)
|
||||
renamer(fpath,newpath)
|
||||
except:
|
||||
logging.error(Ta('Failed to rename similar file: %s to %s'), path, newpath)
|
||||
logging.info("Traceback: ", exc_info = True)
|
||||
def rename_similar(folder, skip_ext, name):
|
||||
""" Rename all other files in the 'folder' hierarchy after 'name'
|
||||
and move them to the root of 'folder'.
|
||||
Files having extension 'skip_ext' will be moved, but not renamed.
|
||||
"""
|
||||
logging.debug('Give files in set "%s" matching names.', name)
|
||||
folder = os.path.normpath(folder)
|
||||
skip_ext = skip_ext.lower()
|
||||
|
||||
for root, dirs, files in os.walk(folder):
|
||||
for f in files:
|
||||
path = os.path.join(root, f)
|
||||
org, ext = os.path.splitext(f)
|
||||
if ext.lower() == skip_ext:
|
||||
# Move file, but do not rename
|
||||
newpath = os.path.join(folder, f)
|
||||
else:
|
||||
# Move file and rename
|
||||
newname = "%s%s" % (name, ext)
|
||||
newname = newname.replace('%fn', org)
|
||||
newpath = os.path.join(folder, newname)
|
||||
if path != newpath:
|
||||
newpath = get_unique_filename(newpath)
|
||||
try:
|
||||
logging.debug("Rename: %s to %s", path, newpath)
|
||||
renamer(path, newpath)
|
||||
except:
|
||||
logging.error(Ta('Failed to rename similar file: %s to %s'), path, newpath)
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
cleanup_empty_directories(folder)
|
||||
|
||||
|
||||
|
||||
|
||||
def check_regexs(filename, matchers, double=False):
|
||||
def check_regexs(filename, matchers):
|
||||
"""
|
||||
Regular Expression match for a list of regexes
|
||||
Returns the MatchObject if a match is made
|
||||
This version checks for an additional match
|
||||
"""
|
||||
#if double:
|
||||
# matcher, extramatchers = matchers
|
||||
#else:
|
||||
# matcher = matchers
|
||||
# extramatchers = []
|
||||
|
||||
extras = []
|
||||
for expressions in matchers:
|
||||
expression, extramatchers = expressions
|
||||
@@ -1104,7 +1137,7 @@ def check_regexs(filename, matchers, double=False):
|
||||
if match1:
|
||||
for m in extramatchers:
|
||||
regex = re.compile(m)
|
||||
match2 = regex.findall(filename,match1.end())
|
||||
match2 = regex.findall(filename, match1.end())
|
||||
if match2:
|
||||
for match in match2:
|
||||
if type(match) == type(()) and len(match) > 1:
|
||||
@@ -1116,12 +1149,11 @@ def check_regexs(filename, matchers, double=False):
|
||||
return None, None
|
||||
|
||||
|
||||
def checkForDate(filename, matcher):
|
||||
def check_for_date(filename, matcher):
|
||||
"""
|
||||
Regular Expression match for date based files
|
||||
Returns the MatchObject if a match is made
|
||||
"""
|
||||
match2 = None
|
||||
x = 0
|
||||
if matcher:
|
||||
for expression in matcher:
|
||||
@@ -1133,6 +1165,8 @@ def checkForDate(filename, matcher):
|
||||
return None, 0
|
||||
|
||||
def is_full_path(file):
|
||||
""" Return True if path is absolute
|
||||
"""
|
||||
if file.startswith('\\') or file.startswith('/'):
|
||||
return True
|
||||
try:
|
||||
|
||||
@@ -49,7 +49,6 @@ class URLGrabber(Thread):
|
||||
|
||||
def __init__(self):
|
||||
Thread.__init__(self)
|
||||
now = time.time()
|
||||
self.queue = Queue.Queue()
|
||||
for tup in NzbQueue.do.get_urls():
|
||||
url, nzo = tup
|
||||
@@ -115,7 +114,10 @@ class URLGrabber(Thread):
|
||||
logging.info('Removing nzbmatrix bookmark %s', matrix_id)
|
||||
else:
|
||||
logging.info('Grabbing URL %s', url)
|
||||
opener = urllib.FancyURLopener({})
|
||||
if '.nzbsrus.' in url:
|
||||
opener = urllib.URLopener({})
|
||||
else:
|
||||
opener = urllib.FancyURLopener({})
|
||||
opener.prompt_user_passwd = None
|
||||
opener.addheaders = []
|
||||
opener.addheader('User-Agent', 'SABnzbd+/%s' % sabnzbd.version.__version__)
|
||||
@@ -165,19 +167,20 @@ class URLGrabber(Thread):
|
||||
misc.bad_fetch(future_nzo, clean_matrix_url(url), msg, retry=True)
|
||||
continue
|
||||
category = _MATRIX_MAP.get(category, category)
|
||||
|
||||
if del_bookmark:
|
||||
# No retries of nzbmatrix bookmark removals
|
||||
continue
|
||||
|
||||
else:
|
||||
msg = ''
|
||||
retry = True
|
||||
|
||||
if del_bookmark:
|
||||
# No retries of nzbmatrix bookmark removals
|
||||
continue
|
||||
|
||||
# Check if the filepath is specified, if not, check if a retry is allowed.
|
||||
if not fn:
|
||||
logging.info('Retry URL %s', url)
|
||||
self.add(url, future_nzo, 5)
|
||||
continue
|
||||
fn, msg, retry, wait = _analyse_others(fn, url)
|
||||
if not fn:
|
||||
if retry:
|
||||
logging.info('Retry URL %s', url)
|
||||
self.add(url, future_nzo, wait)
|
||||
else:
|
||||
misc.bad_fetch(future_nzo, url, msg, retry=True)
|
||||
continue
|
||||
|
||||
if not filename:
|
||||
filename = os.path.basename(url) + '.nzb'
|
||||
@@ -228,7 +231,8 @@ class URLGrabber(Thread):
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
_RE_NZBMATRIX = re.compile(r'nzbmatrix.com/(.*)[\?&]id=(\d+)', re.I)
|
||||
_RE_NZBMATRIX = re.compile(r'nzbmatrix\.com/(.*)[\?&]id=(\d+)', re.I)
|
||||
_RE_NZBXXX = re.compile(r'nzbxxx\.com/(.*)[\?&]id=(\d+)', re.I)
|
||||
_RE_NZBMATRIX_USER = re.compile(r'&username=([^&=]+)', re.I)
|
||||
_RE_NZBMATRIX_API = re.compile(r'&apikey=([^&=]+)', re.I)
|
||||
|
||||
@@ -237,22 +241,38 @@ def _matrix_url(url):
|
||||
|
||||
matrix_id = 0
|
||||
m = _RE_NZBMATRIX.search(url)
|
||||
if not m:
|
||||
mx = _RE_NZBXXX.search(url)
|
||||
|
||||
if m:
|
||||
site = 'nzbmatrix.com'
|
||||
user = urllib.quote_plus(cfg.matrix_username())
|
||||
key = urllib.quote_plus(cfg.matrix_apikey())
|
||||
elif mx:
|
||||
site = 'nzbxxx.com'
|
||||
user = urllib.quote_plus(cfg.xxx_username())
|
||||
key = urllib.quote_plus(cfg.xxx_apikey())
|
||||
m = mx
|
||||
|
||||
if m:
|
||||
matrix_id = m.group(2)
|
||||
if not _RE_NZBMATRIX_USER.search(url) or not _RE_NZBMATRIX_API.search(url):
|
||||
user = urllib.quote_plus(cfg.matrix_username())
|
||||
key = urllib.quote_plus(cfg.matrix_apikey())
|
||||
url = '%s://api.nzbmatrix.com/v1.1/download.php?id=%s&username=%s&apikey=%s' % \
|
||||
(_PROTOCOL, matrix_id, user, key)
|
||||
url = '%s://api.%s/v1.1/download.php?id=%s&username=%s&apikey=%s' % \
|
||||
(_PROTOCOL, site, matrix_id, user, key)
|
||||
return url, matrix_id
|
||||
|
||||
|
||||
def clean_matrix_url(url):
|
||||
''' Return nzbmatrix url without user credentials '''
|
||||
site = 'nzbmatrix.com'
|
||||
m = _RE_NZBMATRIX.search(url)
|
||||
if not m:
|
||||
m = _RE_NZBXXX.search(url)
|
||||
site = 'nzbxxx.com'
|
||||
|
||||
if m:
|
||||
matrix_id = m.group(2)
|
||||
url = '%s://api.nzbmatrix.com/v1.1/download.php?id=%s' % (_PROTOCOL, matrix_id)
|
||||
url = '%s://api.%s/v1.1/download.php?id=%s' % (_PROTOCOL, site, matrix_id)
|
||||
return url
|
||||
|
||||
|
||||
@@ -313,6 +333,50 @@ def _analyse_matrix(fn, matrix_id):
|
||||
return fn, msg, False, 0
|
||||
|
||||
|
||||
|
||||
RUS_FATAL = ('DENIED_MISSING_CREDENTIALS', 'DENIED_NO_ACCOUNT',
|
||||
'DENIED_INVALID_CREDENTIALS', 'INCORRECT_URL',
|
||||
'NZB_DELETED', 'POST_NUKED', 'FILE_UNAVAILABLE'
|
||||
)
|
||||
RUS_15M = ('SQL_ERROR', 'SERVICE_OFFLINE')
|
||||
RUS_60M = ('MAX_DOWNLOAD_REACHED_UPGRADE_TO_VIP', 'MAX_DOWNLOAD_REACHED')
|
||||
|
||||
def _analyse_others(fn, url):
|
||||
""" Analyse respons of indexer
|
||||
returns fn|None, error-message|None, retry, wait-seconds
|
||||
"""
|
||||
msg = ''
|
||||
wait = 0
|
||||
if not fn:
|
||||
logging.debug('No response from indexer, retry after 60 sec')
|
||||
return None, msg, True, 60
|
||||
try:
|
||||
f = open(fn, 'r')
|
||||
data = f.read(100)
|
||||
f.close()
|
||||
except:
|
||||
logging.debug('Problem with tempfile %s from indexer, retry after 60 sec', fn)
|
||||
return None, msg, True, 60
|
||||
|
||||
# Check for an error response
|
||||
if not data:
|
||||
logging.debug('Received nothing from indexer, retry after 60 sec')
|
||||
return None, msg, True, 60
|
||||
|
||||
if '.nzbsrus.' in url:
|
||||
# Partial support for nzbsrus.com's API
|
||||
if misc.match_str(data, RUS_FATAL):
|
||||
logging.debug('nzbsrus says: %s, abort', data)
|
||||
return None, data, False, 0
|
||||
if misc.match_str(data, RUS_15M):
|
||||
logging.debug('nzbsrus says: %s, wait 15m', data)
|
||||
return None, data, True, 900
|
||||
if misc.match_str(data, RUS_60M):
|
||||
logging.debug('nzbsrus says: %s, wait 60m', data)
|
||||
return None, data, True, 3600
|
||||
|
||||
return fn, msg, False, 0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
_MATRIX_MAP = {
|
||||
'28' : 'anime.all',
|
||||
|
||||
@@ -105,7 +105,7 @@ def test_nntp_server(host, port, server=None, username=None, password=None, ssl=
|
||||
|
||||
|
||||
if not username or not password:
|
||||
nw.nntp.sock.sendall('ARTICLE test\r\n')
|
||||
nw.nntp.sock.sendall('ARTICLE test@home\r\n')
|
||||
try:
|
||||
nw.lines = []
|
||||
nw.recv_chunk(block=True)
|
||||
|
||||
Reference in New Issue
Block a user