mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-01-16 11:28:58 -05:00
Compare commits
227 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29ec4d9a23 | ||
|
|
22517a7cd7 | ||
|
|
bcc4dd75cf | ||
|
|
97711ca82e | ||
|
|
e782237f27 | ||
|
|
52bb156c08 | ||
|
|
4361d82ddd | ||
|
|
017cf8f285 | ||
|
|
03cdf6ed5d | ||
|
|
cf347a8e90 | ||
|
|
f06afe43e1 | ||
|
|
fb301eb5c8 | ||
|
|
1562c3560b | ||
|
|
9813bc237f | ||
|
|
b39fe059c6 | ||
|
|
a56c770a8b | ||
|
|
e3bf0edad8 | ||
|
|
e35d9e4db3 | ||
|
|
c617d4321a | ||
|
|
0fd3a2881f | ||
|
|
0c1f7633de | ||
|
|
b7d5d49c84 | ||
|
|
9911b93ece | ||
|
|
eeaad00968 | ||
|
|
e1bb8459e3 | ||
|
|
65c3ac0cc0 | ||
|
|
413c02a80f | ||
|
|
80f118f304 | ||
|
|
5c0a10e16b | ||
|
|
d9b32261e7 | ||
|
|
8d8ce52193 | ||
|
|
1cc2e25cda | ||
|
|
0dc2c6687d | ||
|
|
b061e582b6 | ||
|
|
690731fd79 | ||
|
|
068b7ed7f5 | ||
|
|
aae2fdcd32 | ||
|
|
d3628a1eb7 | ||
|
|
9cc8176d87 | ||
|
|
27f83f21be | ||
|
|
5e31a31a21 | ||
|
|
a077012478 | ||
|
|
fed0e0f765 | ||
|
|
fbdbf7ab22 | ||
|
|
f013d38d00 | ||
|
|
93b9c8a6da | ||
|
|
4605c3fd30 | ||
|
|
ed7dc3f827 | ||
|
|
e69eeebdd8 | ||
|
|
5da5f1adc1 | ||
|
|
f47e92dec0 | ||
|
|
a894ca5171 | ||
|
|
5abe1140ae | ||
|
|
d34e14370c | ||
|
|
c4f4a3131c | ||
|
|
dcbd9b57f3 | ||
|
|
aad3b54a17 | ||
|
|
cde142a371 | ||
|
|
8bfc98ffc6 | ||
|
|
e46f21d566 | ||
|
|
0e45fdcdfd | ||
|
|
eec7af16d7 | ||
|
|
6532425902 | ||
|
|
44b896522c | ||
|
|
1b16ee44cb | ||
|
|
d5f608c28c | ||
|
|
555d8418e7 | ||
|
|
8c22e35da4 | ||
|
|
95a7924b31 | ||
|
|
5830bebd95 | ||
|
|
d32cf57c75 | ||
|
|
6d9242ebc5 | ||
|
|
cbc4f6a964 | ||
|
|
2a3b2b9556 | ||
|
|
53a219f12b | ||
|
|
48519dcfa0 | ||
|
|
92542c58fe | ||
|
|
7eafe730f9 | ||
|
|
494e72a996 | ||
|
|
84cc86f1d3 | ||
|
|
64479e2e5d | ||
|
|
13b523d9bd | ||
|
|
181881a21b | ||
|
|
86d11095ac | ||
|
|
927ba3cd9d | ||
|
|
6296fc1762 | ||
|
|
60fbe44724 | ||
|
|
29e45da431 | ||
|
|
d82e69eef4 | ||
|
|
8c7d557252 | ||
|
|
a56d6e5517 | ||
|
|
7548d9e975 | ||
|
|
b7e2bd9684 | ||
|
|
f0a243e3d3 | ||
|
|
6e108c9ef2 | ||
|
|
89edcc1924 | ||
|
|
8a6aca47a1 | ||
|
|
d03e5780b8 | ||
|
|
209d8f9b40 | ||
|
|
c257b1be3d | ||
|
|
2c48c8de2e | ||
|
|
a767ef6aed | ||
|
|
ad61d1dd03 | ||
|
|
33c3d187a0 | ||
|
|
4eb486d4e2 | ||
|
|
bfb6c167a4 | ||
|
|
44abf3bdf6 | ||
|
|
c950572592 | ||
|
|
3999cb13fd | ||
|
|
af65075f0c | ||
|
|
de2a2b465b | ||
|
|
cd7a77f02d | ||
|
|
f4a5394b63 | ||
|
|
3fb6a8dedb | ||
|
|
50c8f84eba | ||
|
|
2c7ecdee92 | ||
|
|
72390a793a | ||
|
|
04ad4e5d3e | ||
|
|
5ef9c6a433 | ||
|
|
e6baffc839 | ||
|
|
e361eb25a5 | ||
|
|
9b420e91c9 | ||
|
|
3a4bf971b2 | ||
|
|
1128691c5d | ||
|
|
15043aef3f | ||
|
|
2a3b4afa03 | ||
|
|
00a98efa81 | ||
|
|
f013dd7f0d | ||
|
|
7b91b1c769 | ||
|
|
5583cce322 | ||
|
|
b995c5f992 | ||
|
|
214ac4a53d | ||
|
|
fc7e87f0df | ||
|
|
c0f2f59fc1 | ||
|
|
b90a847a6f | ||
|
|
a58bb385f5 | ||
|
|
9754baeb1c | ||
|
|
ffcd154966 | ||
|
|
97cfe9488c | ||
|
|
374b6f616a | ||
|
|
e2f51595b6 | ||
|
|
04091a16aa | ||
|
|
9d9d2fd9a2 | ||
|
|
5746115331 | ||
|
|
42f1a4926c | ||
|
|
7d87fd461b | ||
|
|
1ba9976979 | ||
|
|
659c199043 | ||
|
|
81a3f53226 | ||
|
|
1cbff28f67 | ||
|
|
8e15acbf30 | ||
|
|
e07be60db6 | ||
|
|
539c9662ff | ||
|
|
b396014f8d | ||
|
|
1db32415b6 | ||
|
|
b24629db6b | ||
|
|
9b5cdcf8fb | ||
|
|
4831415d14 | ||
|
|
a4c51f0b20 | ||
|
|
ec3ba1fb93 | ||
|
|
61966f7036 | ||
|
|
4f69e81841 | ||
|
|
d0d90581df | ||
|
|
8ea5c27633 | ||
|
|
517500fdf3 | ||
|
|
c4c1c9b6ab | ||
|
|
2388889ede | ||
|
|
55cfe878d7 | ||
|
|
a2daaee468 | ||
|
|
2c360e395e | ||
|
|
399cfee594 | ||
|
|
be646ae6ab | ||
|
|
b470253d9f | ||
|
|
b83c493492 | ||
|
|
991277bb01 | ||
|
|
5626013b81 | ||
|
|
2810d37758 | ||
|
|
c2f08f01e0 | ||
|
|
17ff087e06 | ||
|
|
77de565b7c | ||
|
|
54d238aa4d | ||
|
|
379d09f8cc | ||
|
|
00de72b127 | ||
|
|
f9c84fa7dd | ||
|
|
c8e46691bb | ||
|
|
df1bb636e5 | ||
|
|
ff886fad0d | ||
|
|
6dbee7a413 | ||
|
|
3f8fcd7172 | ||
|
|
d94f7388e6 | ||
|
|
ad8b49fea8 | ||
|
|
ce00270c12 | ||
|
|
8c501f8f58 | ||
|
|
ce313ebc65 | ||
|
|
887ad881a2 | ||
|
|
ce40827552 | ||
|
|
2777d89482 | ||
|
|
727b300a0e | ||
|
|
652b021a8e | ||
|
|
fdf33acfbb | ||
|
|
b001bc9b6f | ||
|
|
8802cb1d8c | ||
|
|
e19a2fbae7 | ||
|
|
53e38f98f9 | ||
|
|
e783e227f6 | ||
|
|
f3dfbe4181 | ||
|
|
bcd8ca8bc4 | ||
|
|
816d6a63cd | ||
|
|
88d3f25700 | ||
|
|
80f69b11db | ||
|
|
81a11f20c8 | ||
|
|
9e2a839953 | ||
|
|
3cefcde270 | ||
|
|
87a1eacfe7 | ||
|
|
7cbc1a8419 | ||
|
|
7b5570eb0b | ||
|
|
1a43a4dcf0 | ||
|
|
2c2a6592c7 | ||
|
|
f31de6ee4e | ||
|
|
8fcd1f6b6c | ||
|
|
d7f3a473d7 | ||
|
|
ab2eb0c94e | ||
|
|
e51f4fc45a | ||
|
|
65278120e2 | ||
|
|
2eed355e9c | ||
|
|
018955f4d5 | ||
|
|
12fd63c1cf |
4
PKG-INFO
4
PKG-INFO
@@ -1,7 +1,7 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: SABnzbd
|
||||
Version: 2.2.0RC2
|
||||
Summary: SABnzbd-2.2.0RC2
|
||||
Version: 2.2.1
|
||||
Summary: SABnzbd-2.2.1
|
||||
Home-page: https://sabnzbd.org
|
||||
Author: The SABnzbd Team
|
||||
Author-email: team@sabnzbd.org
|
||||
|
||||
65
README.mkd
65
README.mkd
@@ -1,4 +1,24 @@
|
||||
Release Notes - SABnzbd 2.2.0 Release Candidate 2
|
||||
Release Notes - SABnzbd 2.2.1
|
||||
=========================================================
|
||||
|
||||
## Changes since 2.2.0
|
||||
- Allow up to 5 bad articles for jobs with no or little par2
|
||||
- Only auto-disconnect after first run of verification
|
||||
- Warning is shown when password-file is too large
|
||||
- Failure of recursive unpacking no longer fails whole job
|
||||
- Failure of unpacking of duplicate RAR no longer fails whole job
|
||||
|
||||
## Bugfixes since 2.2.0
|
||||
- Some users were experiencing downloads or pre-check being stuck at 99%
|
||||
- Fixed RarFile error during unpacking
|
||||
- Remove email addresses settings from log export
|
||||
- Block server longer on 'Download limit exceeded' errors
|
||||
- Windows: If repair renamed a job the correct renamed file was deleted
|
||||
- Windows: Unpacking of downloads with many archives could fail
|
||||
- macOS: Adding jobs could fail without any error
|
||||
|
||||
|
||||
Release Notes - SABnzbd 2.2.0
|
||||
=========================================================
|
||||
|
||||
NOTE: Due to changes in this release, the queue will be converted when 2.2.0
|
||||
@@ -6,23 +26,6 @@ is started for the first time. Job order, settings and data will be
|
||||
preserved, but all jobs will be unpaused and URLs that did not finish
|
||||
fetching before the upgrade will be lost!
|
||||
|
||||
## Changes since 2.2.0 Release Candidate 1
|
||||
- Not all RAR files were correctly removed for encrypted downloads
|
||||
- Better indication of verification process before and after repair
|
||||
- All par2 files are only downloaded when enabled, not on enable_par_cleanup
|
||||
- Disk-space is now checked before writing files
|
||||
- Server usage graphs did not always list all available months
|
||||
- Warning is shown when many files with duplicate filenames are discarded
|
||||
- Special characters like []!* in filenames could break repair
|
||||
- In some cases not all RAR-sets were unpacked
|
||||
- Categories with ' in them could result in SQL errors
|
||||
- Faulty pynotify could stop shutdown
|
||||
- Various CSS fixes in Glitter and the Config
|
||||
- macOS: Really catch "Protocol wrong type for socket" errors
|
||||
|
||||
- NOTE: Option to limit Servers to specific Categories is now scheduled
|
||||
to be removed in the next release.
|
||||
|
||||
## Changes since 2.1.0
|
||||
- Direct Unpack: Jobs will start unpacking during the download, reduces
|
||||
post-processing time but requires capable hard drive. Only works for jobs that
|
||||
@@ -36,23 +39,28 @@ fetching before the upgrade will be lost!
|
||||
- New option "History Retention" to automatically purge jobs from History
|
||||
- Jobs outside server retention are processed faster
|
||||
- Obfuscated filenames are renamed during downloading, if possible
|
||||
- Disk-space is now checked before writing files
|
||||
- Add "Retry All Failed" button to Glitter
|
||||
- Smoother animations in Firefox (disabled previously due to FF high-CPU usage)
|
||||
- Show missing articles in MB instead of number of articles
|
||||
- Correct value in "Speed" Extra History Column
|
||||
- Better indication of verification process before and after repair
|
||||
- Remove video and audio rating icons from Queue
|
||||
- Show vote buttons instead of video and audio rating buttons in History
|
||||
- If enabled, replace dots in filenames also when there are spaces already
|
||||
- Handling of par2 files made more robust
|
||||
- All par2 files are only downloaded when enabled, not on enable_par_cleanup
|
||||
- Update GNTP bindings to 1.0.3
|
||||
- max_art_opt and replace_illegal moved from Switches to Specials
|
||||
- Removed Specials par2_multicore and allow_streaming
|
||||
- Windows: Full unicode support when calling repair and unpack
|
||||
- Windows: Move enable_MultiPar to Specials
|
||||
- Windows: Move enable_multipar to Specials
|
||||
- Windows: MultiPar verification of a job is skipped after blocks are fetched
|
||||
- Windows & macOS: removed par2cmdline in favor of par2tbb/MultiPar
|
||||
- Windows & macOS: Updated WinRAR to 5.5.0
|
||||
|
||||
## Bugfixes since 2.1.0
|
||||
- Shutdown/suspend did not work on some Linux systems
|
||||
- Standby/Hibernate was not working on Windows
|
||||
- Deleting a job could result in write errors
|
||||
- Display warning if "Extra par2 parameters" turn out to be wrong
|
||||
- RSS URLs with commas in the URL were broken
|
||||
@@ -64,10 +72,17 @@ fetching before the upgrade will be lost!
|
||||
- Fix race-condition in Post-processing
|
||||
- History would not always show latest changes
|
||||
- Convert HTML in error messages
|
||||
- In some cases not all RAR-sets were unpacked
|
||||
- Fixed unicode error during Sorting
|
||||
- Faulty pynotify could stop shutdown
|
||||
- Categories with ' in them could result in SQL errors
|
||||
- Special characters like []!* in filenames could break repair
|
||||
- Wizard was always accessible, even with username and password set
|
||||
- Correct value in "Speed" Extra History Column
|
||||
- Not all texts were shown in the selected Language
|
||||
- Various CSS fixes in Glitter and the Config
|
||||
- Catch "error 0" when using HTTPS on some Linux platforms
|
||||
- Warning is shown when many files with duplicate filenames are discarded
|
||||
- Improve zeroconf/bonjour by sending HTTPS setting and auto-discover of IP
|
||||
- Windows: Fix error in MultiPar-code when first par2-file was damaged
|
||||
- macOS: Catch "Protocol wrong type for socket" errors
|
||||
@@ -75,13 +90,21 @@ fetching before the upgrade will be lost!
|
||||
## Translations
|
||||
- Added Hebrew translation by ION IL, many other languages updated.
|
||||
|
||||
## Upgrading from 0.7.x and older
|
||||
## Depreciation notices
|
||||
- Option to limit Servers to specific Categories is now scheduled
|
||||
to be removed in the next release.
|
||||
|
||||
## Upgrading from 2.1.x and older
|
||||
- Finish queue
|
||||
- Stop SABnzbd
|
||||
- Install new version
|
||||
- Start SABnzbd
|
||||
|
||||
## Upgrade notices
|
||||
- Due to changes in this release, the queue will be converted when 2.2.x
|
||||
is started for the first time. Job order, settings and data will be
|
||||
preserved, but all jobs will be unpaused and URLs that did not finish
|
||||
fetching before the upgrade will be lost!
|
||||
- The organization of the download queue is different from 0.7.x releases.
|
||||
This version will not see the old queue, but you restore the jobs by going
|
||||
to Status page and use Queue Repair.
|
||||
|
||||
@@ -98,6 +98,12 @@ class BuiltinSSLAdapter(wsgiserver.SSLAdapter):
|
||||
# The connection can safely be dropped.
|
||||
return None, {}
|
||||
raise
|
||||
except:
|
||||
# Temporary fix for https://github.com/cherrypy/cherrypy/issues/1618
|
||||
e = sys.exc_info()[1]
|
||||
if e.args == (0, 'Error'):
|
||||
return None, {}
|
||||
raise
|
||||
return s, self.get_environ(s)
|
||||
|
||||
# TODO: fill this out more with mod ssl env
|
||||
|
||||
@@ -140,10 +140,13 @@
|
||||
<!--
|
||||
We need to find how many months we have recorded so far, so we
|
||||
loop over all the dates to find the lowest value and then use
|
||||
the number of days passed as an estimate of the months we have.
|
||||
this to calculate the date-selector
|
||||
-->
|
||||
|
||||
<!--#import json#-->
|
||||
<!--#import datetime#-->
|
||||
<!--#import sabnzbd.misc#-->
|
||||
|
||||
<!--#def show_date_selector($server, $id)#-->
|
||||
<!--#set month_names = [$T('January'), $T('February'), $T('March'), $T('April'), $T('May'), $T('June'), $T('July'), $T('August'), $T('September'), $T('October'), $T('November'), $T('December')] #-->
|
||||
<!--#set min_date = datetime.date.today()#-->
|
||||
@@ -151,10 +154,10 @@
|
||||
<!--#set split_date = $date.split('-')#-->
|
||||
<!--#set min_date = min(min_date, datetime.date(int(split_date[0]), int(split_date[1]), 1))#-->
|
||||
<!--#end for#-->
|
||||
<!--#set months_recorded = int((datetime.date.today()-min_date).days / (365/12))#-->
|
||||
<!--#set months_recorded = list(sabnzbd.misc.monthrange(min_date, datetime.date.today()))#-->
|
||||
<!--#$months_recorded.reverse()#-->
|
||||
<select class="chart-selector" name="chart-selector-${id}" id="chart-selector-${id}" data-id="${id}">
|
||||
<!--#for $i in range(months_recorded+1)#-->
|
||||
<!--#set cur_date = (datetime.date.today() - datetime.timedelta($i*365/12))#-->
|
||||
<!--#for $cur_date in months_recorded#-->
|
||||
<option value="<!--#echo '%d-%02d' % ($cur_date.year, $cur_date.month)#-->">$month_names[$cur_date.month-1] $cur_date.year</option>
|
||||
<!--#end for#-->
|
||||
</select>
|
||||
@@ -300,7 +303,7 @@
|
||||
// Server data
|
||||
serverData[${cur}] = <!--#echo json.dumps($server['amounts'][4])#-->
|
||||
\$(document).ready(function() {
|
||||
showChart(${cur})
|
||||
showChart(${cur}, \$('#chart-selector-${cur}').val())
|
||||
})
|
||||
</script>
|
||||
<!--#end if#-->
|
||||
@@ -317,13 +320,9 @@
|
||||
var thisDay = new Date()
|
||||
|
||||
// What month are we doing?
|
||||
if(month) {
|
||||
var inputDate = new Date(month+'-01')
|
||||
} else {
|
||||
var inputDate = new Date()
|
||||
}
|
||||
var baseDate = new Date(inputDate.getFullYear(), inputDate.getMonth(), 1)
|
||||
var maxDaysInMonth = new Date(baseDate.getYear(), baseDate.getMonth()+1, 0).getDate()
|
||||
var inputDate = new Date(month+'-01')
|
||||
var baseDate = new Date(inputDate.getUTCFullYear(), inputDate.getUTCMonth(), 1)
|
||||
var maxDaysInMonth = new Date(baseDate.getFullYear(), baseDate.getMonth()+1, 0).getDate()
|
||||
|
||||
// Fill the data array
|
||||
var data = {
|
||||
|
||||
@@ -232,7 +232,7 @@ function do_restart() {
|
||||
var portsUnchanged = ($('#port').val() == $('#port').data('original')) && ($('#https_port').val() == $('#https_port').data('original'))
|
||||
|
||||
// Are we on settings page or did nothing change?
|
||||
if(!$('body').hasClass('General') || (!switchedHTTPS && !portsUnchanged)) {
|
||||
if(!$('body').hasClass('General') || (!switchedHTTPS && portsUnchanged)) {
|
||||
// Same as before
|
||||
var urlTotal = window.location.origin + urlPath
|
||||
} else {
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
<span data-bind="text: password"></span>
|
||||
</small>
|
||||
<!-- /ko -->
|
||||
<div class="name-icons direct-unpack hover-button" data-bind="visible: direct_unpack">
|
||||
<div class="name-icons direct-unpack hover-button" data-bind="visible: direct_unpack" title="$T('opt-direct_unpack')">
|
||||
<span class="glyphicon glyphicon-compressed"></span> <span data-bind="text: direct_unpack"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
glitterTranslate.status['Script'] = "$T('stage-script')";
|
||||
glitterTranslate.status['Source'] = "$T('stage-source')";
|
||||
glitterTranslate.status['Servers'] = "$T('stage-servers')";
|
||||
glitterTranslate.status['INFO'] = "$T('log-info')".replace('+ ', '').toUpperCase();
|
||||
glitterTranslate.status['INFO'] = "$T('log-info')".replace('+', '').toUpperCase();
|
||||
glitterTranslate.status['WARNING'] = "$T('Glitter-warning')";
|
||||
glitterTranslate.status['ERROR'] = "$T('Glitter-error')";
|
||||
|
||||
|
||||
16146
interfaces/smpl/templates/static/MochiKit/MochiKit.js
vendored
16146
interfaces/smpl/templates/static/MochiKit/MochiKit.js
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,2 @@
|
||||
dojo.hostenv.conditionalLoadModule({"common": ["MochiKit.MochiKit"]});
|
||||
dojo.hostenv.moduleLoaded("MochiKit.*");
|
||||
dojo.hostenv.conditionalLoadModule({"common": ["MochiKit.MochiKit"]});
|
||||
dojo.hostenv.moduleLoaded("MochiKit.*");
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="clearfix"></div>
|
||||
<iframe style="float: right; width: 315px; height: 315px;" frameborder="0" src="https://resources.sabnzbd.org/wizard/ad/$language"></iframe>
|
||||
<iframe style="float: right; width: 325px; height: 325px;" frameborder="0" src="https://sabnzbd.org/wizard#$language"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="session" value="$session" />
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
The original author of SABnzbd based his work on Pynewsleecher by Freddy@madcowdesease.org.
|
||||
|
||||
Few parts of Pynewsleecher have survived the generations of SABnzbd in a
|
||||
recognizable form.
|
||||
Still, we wish to thank Freddy for his inspiration.
|
||||
|
||||
The home of the Pynewsleecher project:
|
||||
http://www.madcowdisease.org/mcd/pynewsleecher
|
||||
|
||||
The software does not carry any license information.
|
||||
|
||||
The original author of SABnzbd based his work on Pynewsleecher by Freddy@madcowdesease.org.
|
||||
|
||||
Few parts of Pynewsleecher have survived the generations of SABnzbd in a
|
||||
recognizable form.
|
||||
Still, we wish to thank Freddy for his inspiration.
|
||||
|
||||
The home of the Pynewsleecher project:
|
||||
http://www.madcowdisease.org/mcd/pynewsleecher
|
||||
|
||||
The software does not carry any license information.
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
On http://www.brunningonline.net/simon/blog/archives/001835.html,
|
||||
the author licensed SysTrayIcon.py under a variant of the WTFPL:
|
||||
|
||||
> Any road up, help yourself. Consider SysTrayIcon.py to be under an
|
||||
> "Aleister Crowley" style license - "Do what thou wilt shall be the
|
||||
> only law".
|
||||
>
|
||||
> Err, but don't sue me if it doesn't work. ;-)
|
||||
On http://www.brunningonline.net/simon/blog/archives/001835.html,
|
||||
the author licensed SysTrayIcon.py under a variant of the WTFPL:
|
||||
|
||||
> Any road up, help yourself. Consider SysTrayIcon.py to be under an
|
||||
> "Aleister Crowley" style license - "Do what thou wilt shall be the
|
||||
> only law".
|
||||
>
|
||||
> Err, but don't sue me if it doesn't work. ;-)
|
||||
|
||||
BIN
osx/unrar/unrar
BIN
osx/unrar/unrar
Binary file not shown.
@@ -5,14 +5,14 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-2.2.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-2.3.0-develop\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: shypike@sabnzbd.org\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ASCII\n"
|
||||
"Content-Transfer-Encoding: 7bit\n"
|
||||
"POT-Creation-Date: 2017-08-02 12:48+W. Europe Daylight Time\n"
|
||||
"POT-Creation-Date: 2017-08-25 09:18+W. Europe Daylight Time\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
||||
@@ -40,10 +40,22 @@ msgstr ""
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr ""
|
||||
@@ -178,10 +190,6 @@ msgstr ""
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr ""
|
||||
@@ -229,6 +237,10 @@ msgstr ""
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr ""
|
||||
@@ -435,10 +447,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr ""
|
||||
@@ -664,7 +680,7 @@ msgstr ""
|
||||
msgid "Undefined server!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr ""
|
||||
|
||||
@@ -712,6 +728,10 @@ msgstr ""
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid "Your password file contains more than 30 passwords, testing all these passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr ""
|
||||
@@ -921,7 +941,7 @@ msgid "Main packet not found..."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgid "Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1759,6 +1779,14 @@ msgstr ""
|
||||
msgid "Disable quota management"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
@@ -2965,6 +2993,14 @@ msgstr ""
|
||||
msgid "Detect identical episodes in series (based on \"name/season/episode\" of items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Bypass series duplicate detection if PROPER, REAL or REPACK is detected in the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr ""
|
||||
@@ -4573,6 +4609,14 @@ msgid ""
|
||||
"It is licensed under the GNU GENERAL PUBLIC LICENSE Version 2 or (at your option) any later version.\n"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "In order to download from usenet you will require access to a provider. Your ISP may provide you with access, however a premium provider is recommended."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Don't have a usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-06-22 07:07+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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: 2017-08-07 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -43,10 +43,22 @@ msgstr "_yenc modul... IKKE fundet!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 binær... IKKE fundet!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr "Din Unrar version er %s, vi anbefaler version %s eller højere.<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar binær... IKKE fundet!"
|
||||
@@ -192,10 +204,6 @@ msgstr "Kan ikke oprette temp fil for %s"
|
||||
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 [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "For lidt diskplads tvinger system i PAUSE"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Fejl i tempfile.mkstemp"
|
||||
@@ -243,6 +251,10 @@ msgstr "Ukendt"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Det lykkedes ikke at kompilere regex for søgestreng: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "For lidt diskplads tvinger system i PAUSE"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disken er fuld! Pauser..."
|
||||
@@ -463,10 +475,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Fejl ved fjernelse af %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Kan ikke læse %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Det lykkedes ikke at tilføje %s, slette"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Kan ikke læse overvåget mappe %s"
|
||||
@@ -727,7 +743,7 @@ msgstr "slået fra"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Udefineret server"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Fejl parameter"
|
||||
|
||||
@@ -775,6 +791,12 @@ msgstr "Det lykkedes ikke at flytte %s til %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Fejl ved oprettelse af SSL-nøgle og certifikat."
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Det lykkedes ikke at ændre rettigheder på %s"
|
||||
@@ -987,8 +1009,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Hovedarkiv mangler..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ugyldig PAR2 filer, kan ikke kontrollere eller reparere"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1869,6 +1892,14 @@ msgstr "Aktivere kvota styring"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Deaktivere kvota styring"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Slået fra"
|
||||
@@ -3184,6 +3215,16 @@ msgstr ""
|
||||
"Fundet identiske episoder i serie (baseret på \"navn /sæson /episode\" af "
|
||||
"elementer i din historik)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Kassér"
|
||||
@@ -4878,6 +4919,13 @@ msgstr ""
|
||||
"Den er licenseret under GNU General Public License version 2 eller (efter "
|
||||
"eget valg) enhver senere version\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Det lykkedes ikke at hente TV info (%s)"
|
||||
@@ -4980,9 +5028,6 @@ msgstr "URL hentning mislykkedes; %s"
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Mislykkedes med importering af OpenSSL modul. Tilslutter uden SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Det lykkedes ikke at tilføje %s, slette"
|
||||
|
||||
#~ msgid "Failed to remove nzo from postproc queue (id)"
|
||||
#~ msgstr "Det lykkedes ikke at fjerne nzo fra efterbehandlings køen (id)"
|
||||
|
||||
@@ -5395,6 +5440,9 @@ msgstr "URL hentning mislykkedes; %s"
|
||||
#~ msgid "Apply maximum retries only to optional servers"
|
||||
#~ msgstr "Påfør maksimalt antal forsøg kun til valgfri servere"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Ugyldig PAR2 filer, kan ikke kontrollere eller reparere"
|
||||
|
||||
#~ msgid "QR Code"
|
||||
#~ msgstr "QR kode"
|
||||
|
||||
|
||||
116
po/main/de.po
116
po/main/de.po
@@ -7,15 +7,19 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"PO-Revision-Date: 2017-08-06 20:37+0000\n"
|
||||
"Last-Translator: fox <Unknown>\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-08-24 15:39+0000\n"
|
||||
"Last-Translator: jcfp <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: 2017-08-07 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr "MultiPar Programmdatei nicht gefunden!"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -48,11 +52,19 @@ msgstr "_yenc-Modul nicht gefunden!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2-Programmdatei nicht gefunden!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr "Überprüfung und Reparatur sind nicht möglich."
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Deine UNRAR-Version ist %s, Wir empfehlen Version %s oder höher.<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr "Downloads werden nicht enpackt."
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar-Programmdatei nicht gefunden!"
|
||||
@@ -63,7 +75,7 @@ msgstr "unzip-Programmdatei nicht gefunden!"
|
||||
|
||||
#: SABnzbd.py
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za-Programm … NICHT gefunden!"
|
||||
msgstr "7za-Programmdatei nicht gefunden"
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid ""
|
||||
@@ -203,10 +215,6 @@ msgstr "Temporäre Datei für %s konnte nicht angelegt werden"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Status für nicht vorhandenen Server wird versucht %s einzustellen"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Angehalten wegen zu wenig freiem Speicherplatz"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Fehler in tempfile.mkstemp"
|
||||
@@ -255,6 +263,10 @@ msgid "Failed to compile regex for search term: %s"
|
||||
msgstr ""
|
||||
"Kompilieren des regulären Ausdrucks für den Suchbegriff %s fehlgeschlagen."
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Angehalten wegen zu wenig freiem Speicherplatz"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Festplatte voll! Downloads werden angehalten."
|
||||
@@ -485,10 +497,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Fehler beim Entfernen von %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "%s kann nicht gelesen werden"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Fehler beim Hinzufügen von %s. Entferne."
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Überwachter Ordner %s kann nicht gelesen werden"
|
||||
@@ -751,7 +767,7 @@ msgstr "Aus"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Undefinierter Server!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Fehlerhafter Parameter"
|
||||
|
||||
@@ -799,6 +815,15 @@ msgstr "Verschieben von %s nach %s fehlgeschlagen"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Fehler beim Anlegen des SSL-Schlüssels und -Zertifikats."
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
"Ihre Passwort-Datei enthält mehr als 30 Passwörter, das Testen aller "
|
||||
"Passwörter dauert sehr lange. Versuchen Sie, nur nützliche Passwörter "
|
||||
"aufzulisten."
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Rechte von %s konnten nicht geändert werden"
|
||||
@@ -1015,8 +1040,11 @@ msgid "Main packet not found..."
|
||||
msgstr "Hauptpaket nicht gefunden …"
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ungültige PAR2-Dateien. Überprüfung oder Reparatur nicht möglich."
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
"Ungültige par2-Dateien oder ungültige PAR2-Parameter, Auftrag konnte nicht "
|
||||
"überprüft oder repariert werden"
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1235,7 +1263,7 @@ msgid ""
|
||||
"%d files with duplicate filenames were discared for \"%s\". Enable "
|
||||
"\"allow_duplicate_files\" to allow duplicate filenames."
|
||||
msgstr ""
|
||||
"%s Dateien mit doppelten Dateinamen wurden für \"%s\" verworfen. Aktiviere "
|
||||
"%d Dateien mit doppelten Dateinamen wurden für \"%s\" verworfen. Aktiviere "
|
||||
"\"allow_duplicate_files\" um doppelte Dateinamen zu erlauben."
|
||||
|
||||
#: sabnzbd/nzbstuff.py
|
||||
@@ -1924,6 +1952,14 @@ msgstr "Quoten-Management einschalten"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Quoten-Management ausschalten"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr "Aufträge mit Kategorie pausieren"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr "Aufträge mit Kategorie fortsetzen"
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Nein"
|
||||
@@ -2900,11 +2936,11 @@ msgstr "Alle Aufträge behalten"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr ""
|
||||
msgstr "Behalte maximale Anzahl an abgeschlossenen Aufträgen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr ""
|
||||
msgstr "Behalte abgeschlossene Aufträge maximal X Tage"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
@@ -3258,6 +3294,18 @@ msgstr ""
|
||||
"Identische Episoden in den Serien entdeckt (basierend auf "
|
||||
"\"name/season/episode\") der Einträge in der Historie"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr "Erlaube \"Proper\" Releases"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
"Umgehe Serien Duplikat-Erkennung, wenn PROPER, REAL oder REPACK im Download-"
|
||||
"Namen erkannt wird"
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Verwerfen"
|
||||
@@ -3268,7 +3316,7 @@ msgstr "Aufgabe abgebrochen (verschoben in die Historie)"
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
msgstr "Markiere Auftrag"
|
||||
|
||||
#: sabnzbd/skintext.py [Three way switch for encrypted posts]
|
||||
msgid "Abort"
|
||||
@@ -3325,13 +3373,15 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use tags from indexer"
|
||||
msgstr ""
|
||||
msgstr "Übernehme Markierungen vom Indexer"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"When sorting, use tags from indexer for title, season, episode, etc. "
|
||||
"Otherwise all naming is derived from the NZB name."
|
||||
msgstr ""
|
||||
"Beim Sortieren, verwende Tags aus Indexer für Titel, Saison, Episode, usw. "
|
||||
"Andernfalls wird alle Namensgebung aus dem NZB-Namen abgeleitet."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable folder rename"
|
||||
@@ -3577,6 +3627,9 @@ msgid ""
|
||||
"Indexers can supply rating information when a job is added and SABnzbd can "
|
||||
"report to the indexer if a job couldn't be completed."
|
||||
msgstr ""
|
||||
"Indexer können Rating Informationen liefern, wenn ein Job hinzugefügt wird "
|
||||
"und SABnzbd kann dem Indexer melden, wenn ein Job nicht abgeschlossen werden "
|
||||
"konnte."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Filtering"
|
||||
@@ -3830,7 +3883,7 @@ msgstr "Von SxxExx"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->RSS filter-type selection menu "From Show Season/Episode"]
|
||||
msgid "From Show SxxEyy"
|
||||
msgstr ""
|
||||
msgstr "Von Show SxxEyy"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->RSS section header]
|
||||
msgid "Matched"
|
||||
@@ -4082,6 +4135,12 @@ msgid ""
|
||||
"separate terms. Wildcards in the terms are supported. <br>More information "
|
||||
"can be found on the Wiki."
|
||||
msgstr ""
|
||||
"Indexer können eine Kategorie innerhalb des NZB liefern, welche SABnzbd "
|
||||
"versuchen wird, mit den unten definierten Kategorien entsprechen. Darüber "
|
||||
"hinaus kannst du Begriffe zu \"Indexer Kategorien / Gruppen\" hinzufügen, um "
|
||||
"mehreren Kategorien zu entsprechen. Verwende Kommas, um Begriffe zu trennen. "
|
||||
"Wildcards in den Begriffen werden unterstützt. <br> Weitere Informationen "
|
||||
"können im Wiki gefunden werden."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
@@ -4972,6 +5031,17 @@ msgstr ""
|
||||
"Sie steht unter der GNU GENERAL PUBLIC LICENSE Version 2 oder (nach Ihrer "
|
||||
"Option) jeder späteren Version.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
"Um aus dem Usenet herunterzuladen, wird ein Zugang zu einem Provider "
|
||||
"benötigt. Dein ISP kann dir Zugriff gewähren, allerdings wird ein Premium-"
|
||||
"Anbieter empfohlen. Noch keinen Usenet-Provider? Wir empfehlen, %s zu "
|
||||
"versuchen."
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Fehler beim Abrufen der TV-Informationen: %s"
|
||||
@@ -5081,9 +5151,6 @@ msgstr "Abrufen der URL fehlgeschlagen; %s"
|
||||
#~ msgstr ""
|
||||
#~ "Fehler beim Importieren des OpenSSL-Moduls. Stelle Verbindung ohne SSL her."
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Fehler beim Hinzufügen von %s. Entferne."
|
||||
|
||||
#~ msgid "Failed to remove nzo from postproc queue (id)"
|
||||
#~ msgstr ""
|
||||
#~ "Fehler beim Entfernen der NZB-Datei von der Nachbearbeitungs-Warteschlange "
|
||||
@@ -5511,6 +5578,9 @@ msgstr "Abrufen der URL fehlgeschlagen; %s"
|
||||
#~ msgid "E.g. 119 or 563 for SSL"
|
||||
#~ msgstr "Z.B. 119 oder 563 für SSL"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Ungültige PAR2-Dateien. Überprüfung oder Reparatur nicht möglich."
|
||||
|
||||
#~ msgid "Filters"
|
||||
#~ msgstr "Filter"
|
||||
|
||||
|
||||
@@ -105,8 +105,8 @@ msgstr "Posts will be paused until they are at least this age. Setting job prior
|
||||
msgid "Support the project, Donate!"
|
||||
msgstr "Support the project, donate!"
|
||||
|
||||
msgid "%d files with duplicate filenames were discared for "%s". Enable "allow_duplicate_files" to allow duplicate filenames."
|
||||
msgstr "%d files with duplicate filenames were discarded for "%s". Enable "allow_duplicate_files" to allow duplicate filenames."
|
||||
msgid "%d files with duplicate filenames were discared for \"%s\". Enable \"allow_duplicate_files\" to allow duplicate filenames."
|
||||
msgstr "%d files with duplicate filenames were discarded for \"%s\". Enable \"allow_duplicate_files\" to allow duplicate filenames."
|
||||
|
||||
msgid "User script can flag job as failed"
|
||||
msgstr "Post-processing script can flag job as failed"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-06-22 07:07+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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: 2017-08-07 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -45,11 +45,23 @@ msgstr "módulo _yenc... NO encontrado!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 binario... NO encontrado!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Su versión UnRAR es %s, recomendamos la versión %s o superior. <br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar binario... NO encontrado"
|
||||
@@ -192,10 +204,6 @@ msgstr "No se puede crear el archivo temporal para %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Intentando cambiar el estado de servidor inexistente %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Muy poco espacio en disco forzando PAUSA"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Fallo en tempfile.mkstemp"
|
||||
@@ -243,6 +251,10 @@ msgstr "desconocido"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Compilación de regex para término fallo: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Muy poco espacio en disco forzando PAUSA"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disco lleno! Pausando la cola"
|
||||
@@ -464,10 +476,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Error al quitar %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "No se puede leer %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Error al añadir %s, eliminando"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Directorio Watched %s no se puede leer"
|
||||
@@ -729,7 +745,7 @@ msgstr "desactivado"
|
||||
msgid "Undefined server!"
|
||||
msgstr "¡Servidor no definido!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Parámetro incorrecto"
|
||||
|
||||
@@ -777,6 +793,12 @@ msgstr "Error al mover %s a %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Error al crear la llave SSL y el certificado"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "No se puede cambiar los permisos de %s"
|
||||
@@ -993,8 +1015,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Paquete principal no encontrado..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ficheros par2 inválidos, no se puede verificar o reparar"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1888,6 +1911,14 @@ msgstr "Habilitar la administración de cuota"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Gestión de cuotas Desactivar"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Apagado"
|
||||
@@ -3198,6 +3229,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Descartar"
|
||||
@@ -4903,6 +4944,13 @@ msgstr ""
|
||||
"Está licenciado bajo la versión 2 ó posterior de GNU GENERAL PUBLIC "
|
||||
"LICENSE.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Error al recuperar info de la serie (%s)"
|
||||
@@ -5009,12 +5057,12 @@ msgstr "Error al recuperar la URL; %s"
|
||||
#~ msgid "Missing expected file: %s => unrar error?"
|
||||
#~ msgstr "Falta el siguiente archivo: %s => ¿Error al descomprimir?"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Ficheros par2 inválidos, no se puede verificar o reparar"
|
||||
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Error al importar módulo OpenSSL. Conectando sin SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Error al añadir %s, eliminando"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " SABnzbd is not compatible with some software firewalls.<br>\n"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-06-22 07:07+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Finnish <fi@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: 2017-08-07 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -43,12 +43,24 @@ msgstr "_yenc moduulia... EI löydy!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 ohjelmaa... EI löydy!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"UNRAR versiosi on %s, suosittelemme käyttämään versiota %s tai uudempaa.<br "
|
||||
"/>"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar ohjelmaa... EI löydy!"
|
||||
@@ -195,10 +207,6 @@ msgstr "Väliaikaistiedostoa ei voida luoda kohteelle %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Yritettiin asettaa tila ei olemassa olevalle palvelimelle %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Levytilaa ei ole tarpeeksi, pakotetaan KESKEYTYS"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Virhe tiedostossa tempfile.mkstemp"
|
||||
@@ -246,6 +254,10 @@ msgstr "tuntematon"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Regex käännös epäonnistui hakutermille: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Levytilaa ei ole tarpeeksi, pakotetaan KESKEYTYS"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Levy täynnä! Pakotetaan keskeytys"
|
||||
@@ -463,10 +475,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Virhe poistettaessa %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Ei voida lukea %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Virhe lisättäessä %s, poistetaan"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Vahdittua kansiota %s ei voida lukea"
|
||||
@@ -725,7 +741,7 @@ msgstr "ei käytössä"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Määrittämätön palvelin!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Virheellinen parametri"
|
||||
|
||||
@@ -773,6 +789,12 @@ msgstr "Kohteen %s siirtäminen kohteeseen %s epäonnistui"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Virhe luotaessa SSL avainta ja sertifikaattia"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Käyttöoikeuksien muuttaminen epäonnistui kohteelle %s"
|
||||
@@ -985,8 +1007,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Pääpakettia ei löydy..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Virheelliset par2 arkistot, varmennus ja korjaus ei mahdollista"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1871,6 +1894,14 @@ msgstr "Ota latausrajoituksen hallinta käyttöön"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Ota latausrajoituksen hallinta pois käytöstä"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Ei käytössä"
|
||||
@@ -3191,6 +3222,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Hylkää"
|
||||
@@ -4894,6 +4935,13 @@ msgstr ""
|
||||
"Se on lisensoitu GNU GENERAL PUBLIC LICENSE Versio 2 alaiseksi ja (oman "
|
||||
"valinnan mukaan) myös myöhempien versioiden.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Virhe noudettaessa TV tietoja (%s)"
|
||||
@@ -4992,6 +5040,9 @@ msgstr "Osoitteen nouto epäonnistui; %s"
|
||||
#~ "Käyttämäsi UNRAR versio ei ole suositeltu, nouda oikea osoitteesta "
|
||||
#~ "http://www.rarlab.com/rar_add.htm<br />"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Virheelliset par2 arkistot, varmennus ja korjaus ei mahdollista"
|
||||
|
||||
#~ msgid "It is likely that you are using ZoneAlarm on Vista.<br>"
|
||||
#~ msgstr ""
|
||||
#~ "On todennäköistä, että käytössäsi on ZoneAlarm ja käyttöjärjestelmäsi on "
|
||||
@@ -5012,9 +5063,6 @@ msgstr "Osoitteen nouto epäonnistui; %s"
|
||||
#~ msgid "Queued"
|
||||
#~ msgstr "Jonossa"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Virhe lisättäessä %s, poistetaan"
|
||||
|
||||
#~ msgid "Complete Dir"
|
||||
#~ msgstr "Valmistuneet-kansio"
|
||||
|
||||
|
||||
@@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"PO-Revision-Date: 2017-08-07 18:53+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-08-21 19:45+0000\n"
|
||||
"Last-Translator: Fred <88com88@gmail.com>\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: 2017-08-08 05:33+0000\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
@@ -48,11 +48,23 @@ msgstr "module _yenc... Introuvable!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "binaire par2... Introuvable!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr "La vérification et la réparation ne seront pas possibles."
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr "Fichier binaire MultiPar... NON trouvé !"
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Votre version de UNRAR est %s, nous recommandons la version %s ou plus.<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr "Les téléchargements ne seront pas décompressés."
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "binaire unrar... Introuvable!"
|
||||
@@ -204,10 +216,6 @@ msgstr "Impossible de créer le fichier temporaire pour %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Test de l'état du serveur inexistant %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Espace disque faible, PAUSE forcée"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Échec dans tempfile.mkstemp"
|
||||
@@ -255,6 +263,10 @@ msgstr "inconnu"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Echec de la compilation de regex pour la recherche du terme : %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Espace disque faible, PAUSE forcée"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disque plein ! Pause forcée"
|
||||
@@ -487,10 +499,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Erreur lors de la suppression de %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Impossible de lire %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Erreur lors de l'ajout de %s, suppression"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Impossible de lire le dossier surveillé %s"
|
||||
@@ -755,7 +771,7 @@ msgstr "non"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Serveur non défini !"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Paramètre incorrect"
|
||||
|
||||
@@ -803,6 +819,15 @@ msgstr "Échec lors du déplacement de %s vers %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Erreur lors de la création de la clé et du certificat SSL"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
"Votre fichier de mot de passe contient plus de 30 mots de passe. Tester tous "
|
||||
"ces mots de passe prend beaucoup de temps. Essayez de n'y lister que les "
|
||||
"mots de passe utiles."
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Impossible de changer les permissions pour %s"
|
||||
@@ -1023,8 +1048,10 @@ msgid "Main packet not found..."
|
||||
msgstr "Paquet principal introuvable..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Fichiers par2 non valides, impossible de vérifier ou réparer"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
"Paramètres ou fichiers PAR2 non valides, impossible de vérifier ou réparer."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1931,6 +1958,14 @@ msgstr "Activer la gestion de quota"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Désactiver la gestion de quota"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr "Mettre en pause les tâches ayant une catégorie"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr "Reprendre les tâches ayant une catégorie"
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Désactivé"
|
||||
@@ -3268,6 +3303,18 @@ msgstr ""
|
||||
"Détecter les épisodes de série identiques (en fonction du modèle "
|
||||
"\"nom/saison/épisode\" des éléments de votre historique)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr "Autoriser les versions corrigées (proper)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
"Contourner la détection des doublons si PROPER, REAL ou REPACK est détecté "
|
||||
"dans l'intitulé du téléchargement"
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Rejeter"
|
||||
@@ -4999,6 +5046,17 @@ msgstr ""
|
||||
"Il est distribué sous licence GNU GENERAL PUBLIC LICENSE Version 2 ou toute "
|
||||
"autre version ultérieure.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
"Vous aurez besoin d'un accès pour télécharger à partir de Usenet. Votre FAI "
|
||||
"peut vous en proposer un, mais il est recommandé de faire appel à un "
|
||||
"fournisseur premium. Vous n'avez pas de fournisseur Usenet ? Nous vous "
|
||||
"recommandons d'essayer %s."
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Erreur lors de l'obtention des information TV (%s)"
|
||||
@@ -5416,6 +5474,9 @@ msgstr "Échec de récupération de l'URL ; %s"
|
||||
#~ msgid "Try again"
|
||||
#~ msgstr "Réessayer"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Fichiers par2 non valides, impossible de vérifier ou réparer"
|
||||
|
||||
#~ msgid "KB/s"
|
||||
#~ msgstr "kbit/s"
|
||||
|
||||
@@ -5522,9 +5583,6 @@ msgstr "Échec de récupération de l'URL ; %s"
|
||||
#~ msgid "pyopenssl module missing, please install for https access"
|
||||
#~ msgstr "module pyopenssl manquant, veuillez l'installer pour l'accès HTTPS"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Erreur lors de l'ajout de %s, suppression"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " SABnzbd needs a free tcp/ip port for its internal web server.<br>\n"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"PO-Revision-Date: 2017-08-06 21:05+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-08-21 19:38+0000\n"
|
||||
"Last-Translator: ION IL <Unknown>\n"
|
||||
"Language-Team: Hebrew <he@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: 2017-08-07 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -41,23 +41,35 @@ msgstr "!לא נמצא ..._yenc פירקן"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "!לא נמצא ...par2 בינארי"
|
||||
msgstr "!בינארי... לא נמצא par2"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ".וידוא ותיקון לא יהיו אפשריים"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr "!בינארי... לא נמצא MultiPar"
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ".שלך היא %s אנו ממליצים על גרסה %s או גבוהה יותר UNRAR גרסת<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ".הורדות לא ייפרקו"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "לא נמצא ...unrar בינארי"
|
||||
msgstr "בינארי... לא נמצא unrar"
|
||||
|
||||
#: SABnzbd.py
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "!לא נמצא ...unzip בינארי"
|
||||
msgstr "!בינארי... לא נמצא unzip"
|
||||
|
||||
#: SABnzbd.py
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "!לא נמצא ...za7 בינארי"
|
||||
msgstr "!בינארי... לא נמצא za7"
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid ""
|
||||
@@ -188,10 +200,6 @@ msgstr "%s לא ניתן ליצור קובץ זמני עבור"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "%s מנסה לקבוע מצב של שרת בלתי-קיים"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "שטח דיסק קטן מדי, מאלץ השהיה"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "tempfile.mkstemp-כישלון ב"
|
||||
@@ -239,6 +247,10 @@ msgstr "בלתי ידוע"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "%s :עבור מונח חיפוש regex נכשל בליקוט"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "שטח דיסק קטן מדי, מאלץ השהיה"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "דיסק מלא! מאלץ השהיה"
|
||||
@@ -459,10 +471,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "%s שגיאה בהסרת"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "לא יכול לקרוא את %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "מסיר ,%s שגיאה בזמן הוספת"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "%s לא ניתן לקרוא את התיקייה המושגחת"
|
||||
@@ -717,7 +733,7 @@ msgstr "כבוי"
|
||||
msgid "Undefined server!"
|
||||
msgstr "!שרת בלתי מוגדר"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "משתנה לא נכון"
|
||||
|
||||
@@ -765,6 +781,14 @@ msgstr "%s אל %s נכשל בהעברת"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "SSL נכשל ביצירה של מפתח ואישור של"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
".קובץ הסיסמאות שלך מכיל יותר מ-30 סיסמאות, בחינת כל הסיסמאות האלו תיקח זמן "
|
||||
"רב. נסה לכתוב ברשימה רק סיסמאות שימושיות"
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "%s לא יכול לשנות הרשאות של"
|
||||
@@ -975,8 +999,10 @@ msgid "Main packet not found..."
|
||||
msgstr "...חפיסה ראשית לא נמצאה"
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "בלתי תקפים, לא יכול לוודא או לתקן par2 קבצי"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
"בלתי תקפים, לא יכול לוודא או לתקן PAR2 בלתי תקפים או פרמטרי par2 קבצי"
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1862,6 +1888,14 @@ msgstr "אפשר ניהול מיכסה"
|
||||
msgid "Disable quota management"
|
||||
msgstr "השבת ניהול מיכסה"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr "השהה עבודות עם מדור"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr "המשך עבודות עם מדור"
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "כבוי"
|
||||
@@ -2129,7 +2163,7 @@ msgstr "סוגיות"
|
||||
|
||||
#: sabnzbd/skintext.py [Main menu item]
|
||||
msgid "Support the project, Donate!"
|
||||
msgstr "תמוך במיזם, תרום!"
|
||||
msgstr "!תמוך במיזם, תרום"
|
||||
|
||||
#: sabnzbd/skintext.py [Main menu item]
|
||||
msgid "General"
|
||||
@@ -2565,12 +2599,12 @@ msgid ""
|
||||
"stability problem.<br />Downloading will be paused before the restart and "
|
||||
"resume afterwards."
|
||||
msgstr ""
|
||||
"SABnzbd זה יפעיל מחדש את.<br />השתמש בזה כשאתה חושב שלתכנית יש בעית "
|
||||
".SABnzbd זה יפעיל מחדש את<br />השתמש בזה כשאתה חושב שלתכנית יש בעית "
|
||||
"יציבות.<br />הורדה תושהה לפני ההפעלה מחדש ותומשך לאחר מכן."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "<br />If authentication is enabled, you will need to login again."
|
||||
msgstr "<br />.אם אימות מאופשר, תצטרך להיכנס שוב"
|
||||
msgstr "<br />אם אימות מאופשר, תצטרך להיכנס שוב."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Advanced"
|
||||
@@ -3158,6 +3192,17 @@ msgid ""
|
||||
msgstr ""
|
||||
"(גלה פרקים זהים בסדרות (על סמך \"שם/עונה/פרק\" של פריטים בהיסטוריה שלך"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr "התר שחרורים תקינים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
".מתגלים בשם ההורדה REPACK או PROPER, REAL עקוף גילוי כפילויות סדרה אם"
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "השלך"
|
||||
@@ -4210,7 +4255,7 @@ msgstr "ערכים"
|
||||
|
||||
#: sabnzbd/skintext.py [Job details page]
|
||||
msgid "Edit NZB Details"
|
||||
msgstr "ערוך פרטי NZB"
|
||||
msgstr "NZB ערוך פרטי"
|
||||
|
||||
#: sabnzbd/skintext.py [Job details page, delete button]
|
||||
msgid "Delete"
|
||||
@@ -4844,6 +4889,15 @@ msgstr ""
|
||||
"תוכנה חינמית, ואתה מוזמן להפיצה מחדש תחת תנאים מסוימים. היא ברשיון תחת רשיון "
|
||||
"ציבורי כללי של SABnzbd\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
".%s אנחנו ממליצים לנסות את ?Usenet נדרשת גישה אל ספק. ספק האינטרנט שלך עשוי "
|
||||
"לספק לך גישה, אמנם ספק פרימיום הוא מומלץ. אין לך ספק Usenet-על מנת להוריד מ"
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "(%s) שגיאה בהשגת מידע טלוויזיה"
|
||||
@@ -4928,8 +4982,8 @@ msgstr "%s ;משיכת כתובת נכשלה"
|
||||
#~ msgid "Folder \"%s\" does not exist"
|
||||
#~ msgstr "אינה קיימת \"%s\" התיקייה"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "מסיר ,%s שגיאה בזמן הוספת"
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "בלתי תקפים, לא יכול לוודא או לתקן par2 קבצי"
|
||||
|
||||
#~ msgid "It is likely that you are using ZoneAlarm on Vista.<br>"
|
||||
#~ msgstr ".Vista על ZoneAlarm-סביר להניח שאתה משתמש ב<br>"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-05-23 11:46+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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: 2017-08-07 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -45,11 +45,23 @@ msgstr "_yenc-modul... IKKE funnet!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2-binærfil... IKKE funnet!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Din Unrar-versjon er %s, vi anbefaler versjon %s eller høyere. <br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar-binærfil... IKKE funnet!"
|
||||
@@ -194,10 +206,6 @@ msgstr "Kan ikke lage midlertidig fil for %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Forsøker å sette status på ikke-eksisterende server %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "For lite diskplass, nedlasting satt på pause"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Feil i tempfil.mkstemp"
|
||||
@@ -245,6 +253,10 @@ msgstr "ukjent"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Kunne ikke lage regex for søkestreng: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "For lite diskplass, nedlasting satt på pause"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disken er full! Pauser..."
|
||||
@@ -459,10 +471,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Feil ved fjerning av %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Kan ikke lese %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Kunne ikke legge til %s, tar bort"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Kan ikke lese den overvåkede mappen %s"
|
||||
@@ -721,7 +737,7 @@ msgstr "av"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Udefinert server!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Feil parameter"
|
||||
|
||||
@@ -769,6 +785,12 @@ msgstr "Kunne ikke flytte %s til %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Kunne ikke lage SSL-nøkkel eller sertifikat."
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Kunne ikke endre rettigheter på %s"
|
||||
@@ -980,8 +1002,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Hovedarkiv mangler..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ugyldige par2-filer, kan ikke kontrollere eller reparere"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1863,6 +1886,14 @@ msgstr "Aktiver kvotebegrensninger"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Deaktiver kvotebegrensninger"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Av"
|
||||
@@ -3161,6 +3192,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Forkast"
|
||||
@@ -4845,6 +4886,13 @@ msgstr ""
|
||||
"Det er lisensier under GNU GENERAL PUBLIC LICENSE Versjon 2 eller senere "
|
||||
"versjoner.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Kunne ikke hente TV info (%s)"
|
||||
@@ -4937,9 +4985,6 @@ msgstr "URL henting mislyktes; %s"
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Mislyktes med importering av OpenSSL modul. Kobler til uten SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Kunne ikke legge til %s, tar bort"
|
||||
|
||||
#~ msgid "Failed to remove nzo from postproc queue (id)"
|
||||
#~ msgstr "Kunne ikke fjerne nzo fra etterbehandlings køen (id)"
|
||||
|
||||
@@ -5243,6 +5288,9 @@ msgstr "URL henting mislyktes; %s"
|
||||
#~ msgid "Step Five"
|
||||
#~ msgstr "Steg fem"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Ugyldige par2-filer, kan ikke kontrollere eller reparere"
|
||||
|
||||
#~ msgid "Unpacking failed, these file(s) are missing:"
|
||||
#~ msgstr "Utpakking feilet, fil(er) mangler:"
|
||||
|
||||
|
||||
359
po/main/nl.po
359
po/main/nl.po
File diff suppressed because it is too large
Load Diff
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2015-12-28 10:22+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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: 2017-08-07 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -43,10 +43,22 @@ msgstr "Moduł _yenc... NIE znaleziono!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "Program par2 ... NIE znaleziono!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr "Twoja wersja unrar to %s, zalecana jest wersja %s lub wyższa.<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "Program unrar ... NIE znaleziono!"
|
||||
@@ -192,10 +204,6 @@ msgstr "Nie można utworzyć tymczasowego pliku dla %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Próba ustawienia statusu nieistniejącego serwera %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Zbyt mało miejsca na dysku, wymuszanie WSTRZYMANIA"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Błąd w tempfile.mkstemp"
|
||||
@@ -243,6 +251,10 @@ msgstr "nieznany"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Błąd kompilacji wyrażenia regularnego dla wyszukiwania: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Zbyt mało miejsca na dysku, wymuszanie WSTRZYMANIA"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Dysk pełny! Wstrzymuję pobieranie"
|
||||
@@ -459,10 +471,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Błąd podczas usuwania %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Nie można odczytać %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Błąd podczas dodawania %s, usuwanie"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Nie można odczytać obserwowanego katalogu %s"
|
||||
@@ -724,7 +740,7 @@ msgstr "wyłączone"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Niezdefiniowany serwer!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Błędny parametr"
|
||||
|
||||
@@ -772,6 +788,12 @@ msgstr "Nie udało się przenieść %s do %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Błąd tworzenia klucza i certyfikatu SSL"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Nie można zmienić uprawnień %s"
|
||||
@@ -984,8 +1006,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Główny pakiet nieznaleziony..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Nieprawidłowe pliki par2, nie można zweryfikować lub naprawić"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1871,6 +1894,14 @@ msgstr "Włącz zarządzanie limitem"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Wyłącz zarządzanie limitem"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Brak"
|
||||
@@ -3173,6 +3204,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Odrzuć"
|
||||
@@ -4862,6 +4903,13 @@ msgstr ""
|
||||
"Program jest wydawany na licencji GNU GENERAL PUBLIC LICENSE w wersji 2 lub "
|
||||
"(według twojego wyboru) którejś z późniejszych wersji.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Błąd pobierania informacji TV (%s)"
|
||||
@@ -5022,6 +5070,9 @@ msgstr "Pobieranie URL nie powiodło się; %s"
|
||||
#~ msgid "E.g. 119 or 563 for SSL"
|
||||
#~ msgstr "Np. 119 lub 563 dla SSL"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Nieprawidłowe pliki par2, nie można zweryfikować lub naprawić"
|
||||
|
||||
#~ msgid "Folder configuration"
|
||||
#~ msgstr "Konfiguracja katalogów"
|
||||
|
||||
@@ -5198,9 +5249,6 @@ msgstr "Pobieranie URL nie powiodło się; %s"
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Błąd importu modułu OpenSSL. Łączenie bez SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Błąd podczas dodawania %s, usuwanie"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " SABnzbd is not compatible with some software firewalls.<br>\n"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2016-01-01 22:58+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: 2017-08-07 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -44,11 +44,23 @@ msgstr "módulo _yenc... NÃO encontrado!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "aplicativo par2... NÃO encontrado!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Sua versão UNRAR é %s, nós recomendamos a versão %s ou superior.<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "aplicativo unrar... NÃO encontrado!"
|
||||
@@ -192,10 +204,6 @@ msgstr "Não é possível criar um arquivo temporário para %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Tentando definir o status do servidor inexistente %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Muito pouco espaço em disco. Forçando PAUSE"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Falha em tempfile.mkstemp"
|
||||
@@ -243,6 +251,10 @@ msgstr "desconhecido"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Falha ao compilar a expressão para o termo pesquisado: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Muito pouco espaço em disco. Forçando PAUSE"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disco cheio! Forçando Pausa"
|
||||
@@ -461,10 +473,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Erro ao remover %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Não é possível ler %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Erro ao adicionar %s. Removendo"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Não é possível ler a Pasta de Assistidos %s"
|
||||
@@ -724,7 +740,7 @@ msgstr "desligado"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Servidor não definido!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Parâmetro incorreto"
|
||||
|
||||
@@ -772,6 +788,12 @@ msgstr "Falha ao mover %s para %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Erro ao criar chave SSL e certificado"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Não é possível alterar permissões de %s"
|
||||
@@ -983,8 +1005,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Pacote principal não encontrado..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Arquivos PAR2 inválidos. Não é possível verificar ou reparar"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1870,6 +1893,14 @@ msgstr "Ativar gerenciamento de cota"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Desativar gerenciamento de cota"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Desligado"
|
||||
@@ -3173,6 +3204,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Descartar"
|
||||
@@ -4862,6 +4903,13 @@ 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/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Erro ao obter informações de TV (%s)"
|
||||
@@ -4962,6 +5010,9 @@ msgstr "A busca da URL falhou; %s"
|
||||
#~ msgid "Missing expected file: %s => unrar error?"
|
||||
#~ msgstr "Faltando arquivo esperado: %s => erro no unrar?"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Arquivos PAR2 inválidos. Não é possível verificar ou reparar"
|
||||
|
||||
#~ msgid "Unpacking failed, these file(s) are missing:"
|
||||
#~ msgstr "A descompactação falhou. Este(s) arquivo(s) estão faltando:"
|
||||
|
||||
@@ -4971,9 +5022,6 @@ msgstr "A busca da URL falhou; %s"
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Erro ao importar o módulo OpenSSL. Conectando-se sem SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Erro ao adicionar %s. Removendo"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " SABnzbd needs a free tcp/ip port for its internal web server.<br>\n"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2016-07-29 16:20+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: 2017-08-07 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -43,12 +43,24 @@ msgstr "modulul _yenc ... Negăsit!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "binar par2 ... Negăsit!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Versiunea ta de UNRAR este %s, noi recomandăm versiunea %s sau mai mare.<br "
|
||||
"/>"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "binar unrar... Negăsit!"
|
||||
@@ -195,10 +207,6 @@ msgstr "Nu pot crea fişier temporar pentru %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Încerc să setez starea unui server nexistent %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Prea puţin spaţiu disc forţez PAUZĂ"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Eroare în tempfile.mkstemp"
|
||||
@@ -246,6 +254,10 @@ msgstr "necunoscut"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Compilarea unei căutări regex nereuşită: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Prea puţin spaţiu disc forţez PAUZĂ"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disc plin! Pauză Forţată"
|
||||
@@ -463,10 +475,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Eroare ştergere %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Nu pot citi %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Eroare adăugare %s, ştergem"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Nu pot citi Dosar Urnărire %s"
|
||||
@@ -727,7 +743,7 @@ msgstr "dezactivat"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Server nedefinit!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Parametru Incorect"
|
||||
|
||||
@@ -775,6 +791,12 @@ msgstr "Mutare %s în %s nereuşită"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Eroare la crearea cheiei şi certificatlui SSL"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Nu pot schimba permisiunile lui %s"
|
||||
@@ -987,8 +1009,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Pachet principal negăsit..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Fișier par2 invalid, nu pot verifica sau repara"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1875,6 +1898,14 @@ msgstr "Activează gestionarea cotelor"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Dezactivează gestionarea cotelor"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Oprit"
|
||||
@@ -3174,6 +3205,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Ignoră"
|
||||
@@ -4868,6 +4909,13 @@ msgstr ""
|
||||
"Este licenţiat sub GNU General Public License versiunea 2 sau (la opţiunea "
|
||||
"dumneavoastră) orice versiune ulterioară.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Eroare obţinere info TV (%s)"
|
||||
@@ -5000,9 +5048,6 @@ msgstr "Descărcare URL nereuşită; %s"
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Eroare importare modul OpenSSL . Se conectează folosind NON-SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Eroare adăugare %s, ştergem"
|
||||
|
||||
#~ msgid "Failed to remove nzo from postproc queue (id)"
|
||||
#~ msgstr "Ştergere nzo din coadă post-procesare nereuşită (id)"
|
||||
|
||||
@@ -5421,6 +5466,9 @@ msgstr "Descărcare URL nereuşită; %s"
|
||||
#~ "Verifică rezultatul dezarhivării ( trebuie să fie dezactivat pentru unele "
|
||||
#~ "sisteme de fișiere )"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Fișier par2 invalid, nu pot verifica sau repara"
|
||||
|
||||
#~ msgid "Only for optional servers"
|
||||
#~ msgstr "Doar pentru servere opționale"
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-0.7.x\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2013-05-05 14:50+0000\n"
|
||||
"Last-Translator: Pavel Maryanov <Unknown>\n"
|
||||
"Language-Team: Russian <gmu@mx.ru>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-07 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
@@ -41,10 +41,22 @@ msgstr "Модуль _yenc... НЕ найден"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "Исполняемый файл par2... НЕ найден"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "Исполняемый файл unrar... НЕ найден"
|
||||
@@ -187,10 +199,6 @@ msgstr "Не удаётся создать временный файл для %s
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Попытка установить статус для несуществующего сервера %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Приостановка из-за нехватки места на диске"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Ошибка в tempfile.mkstemp"
|
||||
@@ -238,6 +246,10 @@ msgstr "неизвестно"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Не удалось составить регулярное выражение поиска: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Приостановка из-за нехватки места на диске"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "На диске нет места Принудительная приостановка"
|
||||
@@ -452,10 +464,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Ошибка удаления %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Не удаётся прочитать %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Не удалось добавить %s: удалён"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Не удаётся прочитать наблюдаемую папку %s"
|
||||
@@ -714,7 +730,7 @@ msgstr "выкл."
|
||||
msgid "Undefined server!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Неправильный параметр"
|
||||
|
||||
@@ -762,6 +778,12 @@ msgstr "Не удалось переместить %s в %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Не удалось создать ключ SSL и сертификат"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Не удаётся изменить права доступа %s"
|
||||
@@ -974,8 +996,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Главный пакет не найден..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Недопустимые PAR2-файлы. Нельзя выполнить проверку или исправление"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1861,6 +1884,14 @@ msgstr ""
|
||||
msgid "Disable quota management"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Выкл."
|
||||
@@ -3156,6 +3187,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Отменить"
|
||||
@@ -4845,6 +4886,13 @@ msgstr ""
|
||||
"Она распространяется по лицензии GNU GENERAL PUBLIC LICENSE версии 2 или (по "
|
||||
"вашему выбору) любой более поздней версии.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Не удалось получить сведения о ТВ (%s)"
|
||||
@@ -4949,12 +4997,12 @@ msgstr "Не удалось загрузить URL: %s"
|
||||
#~ msgid "Unpacking failed, these file(s) are missing:"
|
||||
#~ msgstr "Ошибка распаковки: отсутствуют следующие файлы:"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Недопустимые PAR2-файлы. Нельзя выполнить проверку или исправление"
|
||||
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Ошибка импорта модуля OpenSSL. Подключение НЕ ЧЕРЕЗ SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Не удалось добавить %s: удалён"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " SABnzbd is not compatible with some software firewalls.<br>\n"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: ОZZII <ozzii.translate@gmail.com>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2015-12-28 10:25+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Serbian <sr@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: 2017-08-07 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -43,11 +43,23 @@ msgstr "_yenc modul... NIJE pronađen!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 program...NIJE pronađen!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Verzija vašeg UNRAR-a je %s, mi preporučujemo verziju %s ili noviju.<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar program...NIJE pronađen!"
|
||||
@@ -189,10 +201,6 @@ msgstr "Nemoguće kreiranje privremene datoteke za %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Покушај постављања статуса за непостојећи сервер %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Premalo prostora na disku, prisiljena PAUZA"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Грешка у tempfile.mkstemp"
|
||||
@@ -240,6 +248,10 @@ msgstr "непознато"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Neuspešna kompilacija regularne ekspresije za termin pretrage: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "Premalo prostora na disku, prisiljena PAUZA"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disk je pun! Tera Pause"
|
||||
@@ -456,10 +468,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Greška pri uklanjanju %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Неуспешно читање %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Грешка додавања %s, уклањање"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Неуспешно читање надгледане фасцикле %s"
|
||||
@@ -716,7 +732,7 @@ msgstr "искљ."
|
||||
msgid "Undefined server!"
|
||||
msgstr "Server nije definisan!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Погрешан параметар"
|
||||
|
||||
@@ -764,6 +780,12 @@ msgstr "Neuspešno premeštanje %s u %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Грешка креације SSL кључа и сертификата"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Не може да се промене дозволе од %s"
|
||||
@@ -976,8 +998,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Главни пакет није нађен..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Погрешне par2 дат., не може да се провери/поправи"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1855,6 +1878,14 @@ msgstr "Омогући управљање квота"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Онемогући управљање квота"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Искључено"
|
||||
@@ -3149,6 +3180,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Одбаци"
|
||||
@@ -4828,6 +4869,13 @@ msgstr ""
|
||||
"Лиценциран је под GNU GENERAL PUBLIC LICENSE верзија 2 или (по вашем избору) "
|
||||
"касније верзије.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Грешка преузимању ТВ инфо (%s)"
|
||||
@@ -5157,9 +5205,6 @@ msgstr "Погрешно учитавање УРЛ-а; %s"
|
||||
#~ msgid "You have no permisson to use port %s"
|
||||
#~ msgstr "Није Вам дозвољено да користите порт %s"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Грешка додавања %s, уклањање"
|
||||
|
||||
#~ msgid "Initiating restart...<br />"
|
||||
#~ msgstr "Иницирање поновног покретања...<br />"
|
||||
|
||||
@@ -5231,6 +5276,9 @@ msgstr "Погрешно учитавање УРЛ-а; %s"
|
||||
#~ msgstr ""
|
||||
#~ "Провери резултат издвоја (треба да се угаси за неке системе датотеке)."
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Погрешне par2 дат., не може да се провери/поправи"
|
||||
|
||||
#~ msgid "Only for optional servers"
|
||||
#~ msgstr "Само за опционе сервере"
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2016-02-20 20:34+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: Swedish <sv@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: 2017-08-07 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -43,11 +43,23 @@ msgstr "_yenc modul... EJ funnen!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 binär... EJ funnen!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Din UNRAR version är %s, vi rekommenderar version %s eller högre.<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar binär... EJ funnen!"
|
||||
@@ -190,10 +202,6 @@ msgstr "Kan inte skapa temp -fil för %s"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "Försöker att sätta status på icke existerande server %s"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "För lite diskutrymme pausar systemet"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "Fel i tempfile.mkstemp"
|
||||
@@ -241,6 +249,10 @@ msgstr "okänd"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "Det gick inte att kompilera regex för sök-sträng: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "För lite diskutrymme pausar systemet"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "Disken är full! Pausar..."
|
||||
@@ -457,10 +469,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "Fel vid borttagning av %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "Kan ej läsa %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "Det gick inte att lägga till %s, tar bort"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "Kan ej läsa övervakad mapp %s"
|
||||
@@ -720,7 +736,7 @@ msgstr "av"
|
||||
msgid "Undefined server!"
|
||||
msgstr "Odefinerad server!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "Fel parameter"
|
||||
|
||||
@@ -768,6 +784,12 @@ msgstr "Det gick inte att flyta %s till %s"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "Det gick inte att skapa SSL-nyckel eller certifikat."
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "Det gick inte att ändra rättigheter på %s"
|
||||
@@ -980,8 +1002,9 @@ msgid "Main packet not found..."
|
||||
msgstr "Huvudarkiv saknas..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Korrupta par2 filer, kan inte verifiera eller reparera"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1866,6 +1889,14 @@ msgstr "Aktivera kvothantering"
|
||||
msgid "Disable quota management"
|
||||
msgstr "Avaktivera kvothantering"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "Av"
|
||||
@@ -3161,6 +3192,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "Kasta"
|
||||
@@ -4846,6 +4887,13 @@ msgstr ""
|
||||
"Det är licensierat under GNU GENERAL PUBLIC LICENSE Version 2 eller (ditt "
|
||||
"val) en senare version.\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "Det gick inte att hämta TV info (%s)"
|
||||
@@ -4948,9 +4996,6 @@ msgstr "URL hämtning misslyckades; %s"
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "Misslyckades med importering av OpenSSL modul. Ansluter utan SSL"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "Det gick inte att lägga till %s, tar bort"
|
||||
|
||||
#~ msgid "Failed to remove nzo from postproc queue (id)"
|
||||
#~ msgstr "Det gick inte att ta bort nzo från efterbehandlings kön (id)"
|
||||
|
||||
@@ -5273,6 +5318,9 @@ msgstr "URL hämtning misslyckades; %s"
|
||||
#~ msgid "Step Five"
|
||||
#~ msgstr "Steg fem"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "Korrupta par2 filer, kan inte verifiera eller reparera"
|
||||
|
||||
#~ msgid "Unpacking failed, these file(s) are missing:"
|
||||
#~ msgstr "Uppackning misslyckades, dessa filer saknas:"
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
|
||||
"POT-Creation-Date: 2017-08-24 15:30+0000\n"
|
||||
"PO-Revision-Date: 2017-06-22 07:06+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@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: 2017-08-07 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 18441)\n"
|
||||
"X-Launchpad-Export-Date: 2017-08-25 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18446)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -43,10 +43,22 @@ msgstr "_yenc 模块... *未* 找到!"
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 可执行程序... *未* 找到!"
|
||||
|
||||
#: SABnzbd.py [Error message] # SABnzbd.py [Error message]
|
||||
msgid "Verification and repair will not be possible."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "MultiPar binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr "您的 UNRAR 程序版本为 %s,我们建议使用 %s 或更高版本。<br />"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Downloads will not unpacked."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar 可执行程序... *未* 找到"
|
||||
@@ -186,10 +198,6 @@ msgstr "无法为 %s 创建临时文件"
|
||||
msgid "Trying to set status of non-existing server %s"
|
||||
msgstr "正在尝试设置不存在的服务器 %s 的状态"
|
||||
|
||||
#: sabnzbd/__init__.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "磁盘空间过低,强制 *暂停*"
|
||||
|
||||
#: sabnzbd/__init__.py [Error message]
|
||||
msgid "Failure in tempfile.mkstemp"
|
||||
msgstr "tempfile.mkstemp 出错"
|
||||
@@ -237,6 +245,10 @@ msgstr "未知"
|
||||
msgid "Failed to compile regex for search term: %s"
|
||||
msgstr "为搜索关键词编译正则表达式失败: %s"
|
||||
|
||||
#: sabnzbd/assembler.py [Warning message]
|
||||
msgid "Too little diskspace forcing PAUSE"
|
||||
msgstr "磁盘空间过低,强制 *暂停*"
|
||||
|
||||
#: sabnzbd/assembler.py [Error message]
|
||||
msgid "Disk full! Forcing Pause"
|
||||
msgstr "磁盘已满! 强制暂停"
|
||||
@@ -451,10 +463,14 @@ msgstr ""
|
||||
msgid "Error removing %s"
|
||||
msgstr "移除 %s 时出错"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Warning message]
|
||||
#: sabnzbd/dirscanner.py [Warning message] # sabnzbd/rss.py [Warning message]
|
||||
msgid "Cannot read %s"
|
||||
msgstr "无法读取 %s"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Error while adding %s, removing"
|
||||
msgstr "加载 %s 出错,正在移除"
|
||||
|
||||
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
|
||||
msgid "Cannot read Watched Folder %s"
|
||||
msgstr "无法读取监视文件夹 %s"
|
||||
@@ -703,7 +719,7 @@ msgstr "关"
|
||||
msgid "Undefined server!"
|
||||
msgstr "未定义服务器!"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
#: sabnzbd/interface.py # sabnzbd/interface.py
|
||||
msgid "Incorrect parameter"
|
||||
msgstr "参数不正确"
|
||||
|
||||
@@ -751,6 +767,12 @@ msgstr "将 %s 移动到 %s 失败"
|
||||
msgid "Error creating SSL key and certificate"
|
||||
msgstr "创建 SSL key 及证书出错"
|
||||
|
||||
#: sabnzbd/misc.py [Warning message]
|
||||
msgid ""
|
||||
"Your password file contains more than 30 passwords, testing all these "
|
||||
"passwords takes a lot of time. Try to only list useful passwords."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/misc.py [Error message]
|
||||
msgid "Cannot change permissions of %s"
|
||||
msgstr "无法更改 %s 的权限"
|
||||
@@ -961,8 +983,9 @@ msgid "Main packet not found..."
|
||||
msgstr "主数据包未找到..."
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "par2 文件无效,无法验证或修复"
|
||||
msgid ""
|
||||
"Invalid par2 files or invalid PAR2 parameters, cannot verify or repair"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
|
||||
@@ -1839,6 +1862,14 @@ msgstr "启用配额管理"
|
||||
msgid "Disable quota management"
|
||||
msgstr "禁用配额管理"
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Pause jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Config->Scheduler]
|
||||
msgid "Resume jobs with category"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Prowl priority] # sabnzbd/skintext.py [Three way switch for duplicates]
|
||||
msgid "Off"
|
||||
msgstr "关"
|
||||
@@ -3102,6 +3133,16 @@ msgid ""
|
||||
"items in your History)"
|
||||
msgstr "在剧目中检测相同的剧集 (基于您的历史项目,参照 \"name/season/episode\" 的规则)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow proper releases"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Bypass series duplicate detection if PROPER, REAL or REPACK is detected in "
|
||||
"the download name"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py [Four way switch for duplicates]
|
||||
msgid "Discard"
|
||||
msgstr "舍弃"
|
||||
@@ -4764,6 +4805,13 @@ msgstr ""
|
||||
"这是一款自由软件,欢迎您在约定的条件下传播。\n"
|
||||
"本软件依 GNU GENERAL PUBLIC LICENSE 第 2 版或 (若您愿意) 任意较新版本授权。\n"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"In order to download from Usenet you will require access to a provider. Your "
|
||||
"ISP may provide you with access, however a premium provider is recommended. "
|
||||
"Don't have a Usenet provider? We recommend trying %s."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/tvsort.py [Error message]
|
||||
msgid "Error getting TV info (%s)"
|
||||
msgstr "获取 TV 信息出错 (%s)"
|
||||
@@ -4864,12 +4912,12 @@ msgstr "URL 装取失败; %s"
|
||||
#~ msgid "Unpacking failed, these file(s) are missing:"
|
||||
#~ msgstr "解压失败,缺这些文件:"
|
||||
|
||||
#~ msgid "Invalid par2 files, cannot verify or repair"
|
||||
#~ msgstr "par2 文件无效,无法验证或修复"
|
||||
|
||||
#~ msgid "Error importing OpenSSL module. Connecting with NON-SSL"
|
||||
#~ msgstr "导入 OpenSSL 模块出错。正在通过非 SSL 连接"
|
||||
|
||||
#~ msgid "Error while adding %s, removing"
|
||||
#~ msgstr "加载 %s 出错,正在移除"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " SABnzbd is not compatible with some software firewalls.<br>\n"
|
||||
|
||||
@@ -598,27 +598,22 @@ def backup_nzb(filename, data):
|
||||
|
||||
def save_compressed(folder, filename, data):
|
||||
""" Save compressed NZB file in folder """
|
||||
# Need to go to the save folder to
|
||||
# prevent the pathname being embedded in the GZ file
|
||||
here = os.getcwd()
|
||||
os.chdir(folder)
|
||||
|
||||
if filename.endswith('.nzb'):
|
||||
filename += '.gz'
|
||||
else:
|
||||
filename += '.nzb.gz'
|
||||
logging.info("Backing up %s", os.path.join(folder, filename))
|
||||
try:
|
||||
f = gzip.GzipFile(filename, 'wb')
|
||||
f.write(data)
|
||||
f.flush()
|
||||
f.close()
|
||||
# Have to get around the path being put inside the tgz
|
||||
with open(os.path.join(folder, filename), 'wb') as tgz_file:
|
||||
f = gzip.GzipFile(filename, fileobj=tgz_file)
|
||||
f.write(data)
|
||||
f.flush()
|
||||
f.close()
|
||||
except:
|
||||
logging.error(T('Saving %s failed'), os.path.join(folder, filename))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
|
||||
os.chdir(here)
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Unsynchronized methods
|
||||
@@ -863,6 +858,7 @@ def get_new_id(prefix, folder, check_list=None):
|
||||
except:
|
||||
logging.error(T('Failure in tempfile.mkstemp'))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
break
|
||||
# Cannot create unique id, crash the process
|
||||
raise IOError
|
||||
|
||||
|
||||
@@ -30,13 +30,8 @@ from sabnzbd.constants import GIGI, ANFO
|
||||
|
||||
ARTICLE_LOCK = threading.Lock()
|
||||
|
||||
|
||||
class ArticleCache(object):
|
||||
""" Operations on lists/dicts are atomic enough that we
|
||||
do not have to put locks. Only the cache-size needs
|
||||
a lock since the integer needs to stay synced.
|
||||
With less locking, the decoder and assembler do not
|
||||
have to wait on each other.
|
||||
"""
|
||||
do = None
|
||||
|
||||
def __init__(self):
|
||||
@@ -47,9 +42,11 @@ class ArticleCache(object):
|
||||
self.__article_table = {} # Dict of buffered articles
|
||||
ArticleCache.do = self
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def cache_info(self):
|
||||
return ANFO(len(self.__article_list), abs(self.__cache_size), self.__cache_limit_org)
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def new_limit(self, limit):
|
||||
""" Called when cache limit changes """
|
||||
self.__cache_limit_org = limit
|
||||
@@ -59,28 +56,23 @@ class ArticleCache(object):
|
||||
self.__cache_limit = min(limit, GIGI)
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def increase_cache_size(self, value):
|
||||
self.__cache_size += value
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def decrease_cache_size(self, value):
|
||||
self.__cache_size -= value
|
||||
|
||||
def reserve_space(self, data):
|
||||
""" Is there space left in the set limit? """
|
||||
data_size = sys.getsizeof(data) * 64
|
||||
self.increase_cache_size(data_size)
|
||||
self.__cache_size += data_size
|
||||
if self.__cache_size + data_size > self.__cache_limit:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def free_reserve_space(self, data):
|
||||
""" Remove previously reserved space """
|
||||
data_size = sys.getsizeof(data) * 64
|
||||
self.decrease_cache_size(data_size)
|
||||
self.__cache_size -= data_size
|
||||
return self.__cache_size + data_size < self.__cache_limit
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def save_article(self, article, data):
|
||||
nzf = article.nzf
|
||||
nzo = nzf.nzo
|
||||
@@ -98,6 +90,7 @@ class ArticleCache(object):
|
||||
if self.__cache_limit:
|
||||
if self.__cache_limit < 0:
|
||||
self.__add_to_cache(article, data)
|
||||
|
||||
else:
|
||||
data_size = len(data)
|
||||
|
||||
@@ -106,7 +99,7 @@ class ArticleCache(object):
|
||||
# Flush oldest article in cache
|
||||
old_article = self.__article_list.pop(0)
|
||||
old_data = self.__article_table.pop(old_article)
|
||||
self.decrease_cache_size(len(old_data))
|
||||
self.__cache_size -= len(old_data)
|
||||
# No need to flush if this is a refreshment article
|
||||
if old_article != article:
|
||||
self.__flush_article(old_article, old_data)
|
||||
@@ -120,6 +113,7 @@ class ArticleCache(object):
|
||||
else:
|
||||
self.__flush_article(article, data)
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def load_article(self, article):
|
||||
data = None
|
||||
nzo = article.nzf.nzo
|
||||
@@ -127,7 +121,7 @@ class ArticleCache(object):
|
||||
if article in self.__article_list:
|
||||
data = self.__article_table.pop(article)
|
||||
self.__article_list.remove(article)
|
||||
self.decrease_cache_size(len(data))
|
||||
self.__cache_size -= len(data)
|
||||
elif article.art_id:
|
||||
data = sabnzbd.load_data(article.art_id, nzo.workpath, remove=True,
|
||||
do_pickle=False, silent=True)
|
||||
@@ -137,19 +131,21 @@ class ArticleCache(object):
|
||||
|
||||
return data
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def flush_articles(self):
|
||||
self.__cache_size = 0
|
||||
while self.__article_list:
|
||||
article = self.__article_list.pop(0)
|
||||
data = self.__article_table.pop(article)
|
||||
self.__flush_article(article, data)
|
||||
self.__cache_size = 0
|
||||
|
||||
@synchronized(ARTICLE_LOCK)
|
||||
def purge_articles(self, articles):
|
||||
for article in articles:
|
||||
if article in self.__article_list:
|
||||
self.__article_list.remove(article)
|
||||
data = self.__article_table.pop(article)
|
||||
self.decrease_cache_size(len(data))
|
||||
self.__cache_size -= len(data)
|
||||
if article.art_id:
|
||||
sabnzbd.remove_data(article.art_id, article.nzf.nzo.workpath)
|
||||
|
||||
@@ -172,12 +168,11 @@ class ArticleCache(object):
|
||||
|
||||
def __add_to_cache(self, article, data):
|
||||
if article in self.__article_table:
|
||||
self.decrease_cache_size(len(self.__article_table[article]))
|
||||
self.__cache_size -= len(self.__article_table[article])
|
||||
else:
|
||||
self.__article_list.append(article)
|
||||
|
||||
self.__article_table[article] = data
|
||||
self.increase_cache_size(len(data))
|
||||
self.__cache_size += len(data)
|
||||
|
||||
|
||||
# Create the instance
|
||||
|
||||
@@ -86,15 +86,14 @@ class Assembler(Thread):
|
||||
continue
|
||||
|
||||
# Prepare filename
|
||||
filename = sanitize_filename(nzf.filename)
|
||||
nzf.filename = filename
|
||||
dupe = nzo.check_for_dupe(nzf)
|
||||
filepath = get_filepath(long_path(cfg.download_dir.get_path()), nzo, filename)
|
||||
nzo.verify_nzf_filename(nzf)
|
||||
nzf.filename = sanitize_filename(nzf.filename)
|
||||
filepath = get_filepath(long_path(cfg.download_dir.get_path()), nzo, nzf.filename)
|
||||
|
||||
if filepath:
|
||||
logging.info('Decoding %s %s', filepath, nzf.type)
|
||||
try:
|
||||
filepath = self.assemble(nzf, filepath, dupe)
|
||||
filepath = self.assemble(nzf, filepath)
|
||||
except IOError, (errno, strerror):
|
||||
# If job was deleted, ignore error
|
||||
if not nzo.is_gone():
|
||||
@@ -110,19 +109,23 @@ class Assembler(Thread):
|
||||
logging.error(T('Fatal error in Assembler'), exc_info=True)
|
||||
break
|
||||
|
||||
# Clean-up admin data
|
||||
nzf.remove_admin()
|
||||
setname = nzf.setname
|
||||
if nzf.is_par2 and (nzo.md5packs.get(setname) is None):
|
||||
pack = self.parse_par2_file(filepath, nzo.md5of16k)
|
||||
if pack:
|
||||
nzo.md5packs[setname] = pack
|
||||
logging.debug('Got md5pack for set %s', setname)
|
||||
# Valid md5pack, so use this par2-file as main par2 file for the set
|
||||
if setname in nzo.partable:
|
||||
# First copy the set of extrapars, we need them later
|
||||
nzf.extrapars = nzo.partable[setname].extrapars
|
||||
nzo.partable[setname] = nzf
|
||||
|
||||
# Parse par2 files
|
||||
if nzf.is_par2:
|
||||
# Always parse par2 files to get new md5of16k info
|
||||
pack = self.parse_par2_file(nzf, filepath)
|
||||
if pack and (nzo.md5packs.get(nzf.setname) is None):
|
||||
nzo.md5packs[nzf.setname] = pack
|
||||
logging.debug('Got md5pack for set %s', nzf.setname)
|
||||
# Valid md5pack, so use this par2-file as main par2 file for the set
|
||||
if nzf.setname in nzo.partable:
|
||||
# First copy the set of extrapars, we need them later
|
||||
nzf.extrapars = nzo.partable[nzf.setname].extrapars
|
||||
nzo.partable[nzf.setname] = nzf
|
||||
|
||||
# Encryption and unwanted extension detection
|
||||
rar_encrypted, unwanted_file = check_encrypted_and_unwanted_files(nzo, filepath)
|
||||
if rar_encrypted:
|
||||
if cfg.pause_on_pwrar() == 1:
|
||||
@@ -161,15 +164,8 @@ class Assembler(Thread):
|
||||
sabnzbd.nzbqueue.NzbQueue.do.remove(nzo.nzo_id, add_to_history=False, cleanup=False)
|
||||
PostProcessor.do.process(nzo)
|
||||
|
||||
def assemble(self, nzf, path, dupe):
|
||||
def assemble(self, nzf, path):
|
||||
""" Assemble a NZF from its table of articles """
|
||||
if os.path.exists(path):
|
||||
unique_path = get_unique_filename(path)
|
||||
if dupe:
|
||||
path = unique_path
|
||||
else:
|
||||
renamer(path, unique_path)
|
||||
|
||||
md5 = hashlib.md5()
|
||||
fout = open(path, 'ab')
|
||||
decodetable = nzf.decodetable
|
||||
@@ -200,7 +196,7 @@ class Assembler(Thread):
|
||||
|
||||
return path
|
||||
|
||||
def parse_par2_file(self, fname, table16k):
|
||||
def parse_par2_file(self, nzf, fname):
|
||||
""" Get the hash table and the first-16k hash table from a PAR2 file
|
||||
Return as dictionary, indexed on names or hashes for the first-16 table
|
||||
For a full description of the par2 specification, visit:
|
||||
@@ -220,10 +216,11 @@ class Assembler(Thread):
|
||||
name, hash, hash16k = parse_par2_file_packet(f, header)
|
||||
if name:
|
||||
table[name] = hash
|
||||
if hash16k not in table16k:
|
||||
table16k[hash16k] = name
|
||||
else:
|
||||
# Not unique, remove to avoid false-renames
|
||||
if hash16k not in nzf.nzo.md5of16k:
|
||||
nzf.nzo.md5of16k[hash16k] = name
|
||||
elif nzf.nzo.md5of16k[hash16k] != name:
|
||||
# Not unique and not already linked to this file
|
||||
# Remove to avoid false-renames
|
||||
duplicates16k.append(hash16k)
|
||||
|
||||
header = f.read(8)
|
||||
@@ -240,10 +237,18 @@ class Assembler(Thread):
|
||||
# Have to remove duplicates at the end to make sure
|
||||
# no trace is left in case of multi-duplicates
|
||||
for hash16k in duplicates16k:
|
||||
if hash16k in table16k:
|
||||
old_name = table16k.pop(hash16k)
|
||||
if hash16k in nzf.nzo.md5of16k:
|
||||
old_name = nzf.nzo.md5of16k.pop(hash16k)
|
||||
logging.debug('Par2-16k signature of %s not unique, discarding', old_name)
|
||||
|
||||
# If the filename was changed (duplicate filename) check if we already have the set
|
||||
base_fname = os.path.split(fname)[1]
|
||||
if table and base_fname != nzf.filename and table not in nzf.nzo.md5packs.values():
|
||||
# Re-parse this par2 file to create new set
|
||||
nzf.filename = base_fname
|
||||
nzf.is_par2 = False
|
||||
nzf.nzo.handle_par2(nzf, True)
|
||||
|
||||
return table
|
||||
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ MAX_DECODE_QUEUE = 10
|
||||
LIMIT_DECODE_QUEUE = 100
|
||||
MAX_WARNINGS = 20
|
||||
MAX_WIN_DFOLDER = 60
|
||||
MAX_BAD_ARTICLES = 5
|
||||
|
||||
REPAIR_PRIORITY = 3
|
||||
TOP_PRIORITY = 2
|
||||
|
||||
@@ -31,8 +31,8 @@ from sabnzbd.constants import Status, MAX_DECODE_QUEUE, LIMIT_DECODE_QUEUE, SABY
|
||||
import sabnzbd.articlecache
|
||||
import sabnzbd.downloader
|
||||
import sabnzbd.nzbqueue
|
||||
from sabnzbd.encoding import yenc_name_fixer, platform_encode
|
||||
from sabnzbd.misc import match_str, is_obfuscated_filename
|
||||
from sabnzbd.encoding import yenc_name_fixer
|
||||
from sabnzbd.misc import match_str
|
||||
|
||||
# Check for basic-yEnc
|
||||
try:
|
||||
@@ -336,26 +336,8 @@ class Decoder(Thread):
|
||||
if article.partnum == nzf.lowest_partnum:
|
||||
nzf.md5of16k = hashlib.md5(decoded_data[:16384]).digest()
|
||||
|
||||
# If we have the md5, use it to rename
|
||||
if nzf.md5of16k:
|
||||
# Don't check again, even if no match
|
||||
nzf.filename_checked = True
|
||||
# Find the match and rename
|
||||
if nzf.md5of16k in nzf.nzo.md5of16k:
|
||||
new_filename = platform_encode(nzf.nzo.md5of16k[nzf.md5of16k])
|
||||
# Was it even new?
|
||||
if new_filename != nzf.filename:
|
||||
logging.info('Detected filename based on par2: %s -> %s', nzf.filename, new_filename)
|
||||
nzf.nzo.renamed_file(new_filename, nzf.filename)
|
||||
nzf.filename = new_filename
|
||||
return
|
||||
|
||||
# Fallback to yenc/nzb name (also when there is no partnum=1)
|
||||
# We also keep the NZB name in case it ends with ".par2" (usually correct)
|
||||
if yenc_filename != nzf.filename and not is_obfuscated_filename(yenc_filename) and not nzf.filename.endswith('.par2'):
|
||||
logging.info('Detected filename from yenc: %s -> %s', nzf.filename, yenc_filename)
|
||||
nzf.nzo.renamed_file(yenc_filename, nzf.filename)
|
||||
nzf.filename = yenc_filename
|
||||
# Try the rename
|
||||
nzf.nzo.verify_nzf_filename(nzf, yenc_filename)
|
||||
|
||||
|
||||
def yCheck(data):
|
||||
|
||||
@@ -430,4 +430,4 @@ def test_disk_performance():
|
||||
else:
|
||||
logging.info('Direct Unpack was not enabled, incomplete folder disk speed below 40MB/s')
|
||||
cfg.direct_unpack_tested.set(True)
|
||||
config.save_config()
|
||||
sabnzbd.config.save_config()
|
||||
|
||||
@@ -73,6 +73,7 @@ def is_archive(path):
|
||||
zf = zipfile.ZipFile(path)
|
||||
return 0, zf, '.zip'
|
||||
except:
|
||||
logging.info(T('Cannot read %s'), path, exc_info=True)
|
||||
return -1, None, ''
|
||||
elif rarfile.is_rarfile(path):
|
||||
try:
|
||||
@@ -81,14 +82,17 @@ def is_archive(path):
|
||||
zf = rarfile.RarFile(path)
|
||||
return 0, zf, '.rar'
|
||||
except:
|
||||
logging.info(T('Cannot read %s'), path, exc_info=True)
|
||||
return -1, None, ''
|
||||
elif is_sevenfile(path):
|
||||
try:
|
||||
zf = SevenZip(path)
|
||||
return 0, zf, '.7z'
|
||||
except:
|
||||
logging.info(T('Cannot read %s'), path, exc_info=True)
|
||||
return -1, None, ''
|
||||
else:
|
||||
logging.info('Archive %s is not a real archive!', os.path.basename(path))
|
||||
return 1, None, ''
|
||||
|
||||
|
||||
@@ -127,17 +131,24 @@ def ProcessArchiveFile(filename, path, pp=None, script=None, cat=None, catdir=No
|
||||
try:
|
||||
data = zf.read(name)
|
||||
except:
|
||||
logging.error(T('Cannot read %s'), name, exc_info=True)
|
||||
zf.close()
|
||||
return -1, []
|
||||
name = os.path.basename(name)
|
||||
if data:
|
||||
nzo = None
|
||||
try:
|
||||
nzo = nzbstuff.NzbObject(name, pp, script, data, cat=cat, url=url,
|
||||
priority=priority, nzbname=nzbname)
|
||||
if not nzo.password:
|
||||
nzo.password = password
|
||||
except (TypeError, ValueError) as e:
|
||||
# Duplicate or empty, ignore
|
||||
pass
|
||||
except:
|
||||
nzo = None
|
||||
# Something else is wrong, show error
|
||||
logging.error(T('Error while adding %s, removing'), name, exc_info=True)
|
||||
|
||||
if nzo:
|
||||
if nzo_id:
|
||||
# Re-use existing nzo_id, when a "future" job gets it payload
|
||||
@@ -222,6 +233,8 @@ def ProcessSingleFile(filename, path, pp=None, script=None, cat=None, catdir=Non
|
||||
# Looks like an incomplete file, retry
|
||||
return -2, nzo_ids
|
||||
else:
|
||||
# Something else is wrong, show error
|
||||
logging.error(T('Error while adding %s, removing'), name, exc_info=True)
|
||||
return -1, nzo_ids
|
||||
|
||||
if nzo:
|
||||
|
||||
@@ -84,7 +84,7 @@ class Server(object):
|
||||
self.categories = categories
|
||||
|
||||
# Temporary deprication warning
|
||||
if len(categories) > 1 or 'Default' not in categories:
|
||||
if categories and (len(categories) > 1 or 'Default' not in categories):
|
||||
logging.warning('[%s] Server specific categories option is scheduled to be removed in the next release of SABnzbd', self.host)
|
||||
|
||||
self.busy_threads = []
|
||||
@@ -655,7 +655,7 @@ class Downloader(Thread):
|
||||
logging.error(T('Failed login for server %s'), server.id)
|
||||
penalty = _PENALTY_PERM
|
||||
block = True
|
||||
elif ecode == '502':
|
||||
elif ecode in ('502', '482'):
|
||||
# Cannot connect (other reasons), block this server
|
||||
if server.active:
|
||||
errormsg = T('Cannot connect to server %s [%s]') % ('', display_msg)
|
||||
@@ -795,11 +795,8 @@ class Downloader(Thread):
|
||||
# Remove this server from try_list
|
||||
article.fetcher = None
|
||||
|
||||
nzf = article.nzf
|
||||
nzo = nzf.nzo
|
||||
|
||||
# Allow all servers to iterate over each nzo/nzf again ##
|
||||
sabnzbd.nzbqueue.NzbQueue.do.reset_try_lists(nzf, nzo)
|
||||
# Allow all servers to iterate over each nzo/nzf again
|
||||
sabnzbd.nzbqueue.NzbQueue.do.reset_try_lists(article.nzf, article.nzf.nzo)
|
||||
|
||||
if destroy:
|
||||
nw.terminate(quit=quit)
|
||||
@@ -942,7 +939,8 @@ def clues_too_many(text):
|
||||
""" Check for any "too many connections" clues in the response code """
|
||||
text = text.lower()
|
||||
for clue in ('exceed', 'connections', 'too many', 'threads', 'limit'):
|
||||
if clue in text:
|
||||
# Not 'download limit exceeded' error
|
||||
if (clue in text) and ('download' not in text):
|
||||
return True
|
||||
return False
|
||||
|
||||
@@ -959,7 +957,7 @@ def clues_too_many_ip(text):
|
||||
def clues_pay(text):
|
||||
""" Check for messages about payments """
|
||||
text = text.lower()
|
||||
for clue in ('credits', 'paym', 'expired'):
|
||||
for clue in ('credits', 'paym', 'expired', 'exceeded'):
|
||||
if clue in text:
|
||||
return True
|
||||
return False
|
||||
|
||||
@@ -2414,7 +2414,7 @@ LOG_API_RE = re.compile(r"(apikey|api)(=|:)[\w]+", re.I)
|
||||
LOG_API_JSON_RE = re.compile(r"u'(apikey|api)': u'[\w]+'", re.I)
|
||||
LOG_USER_RE = re.compile(r"(user|username)\s?=\s?[\S]+", re.I)
|
||||
LOG_PASS_RE = re.compile(r"(password)\s?=\s?[\S]+", re.I)
|
||||
LOG_INI_HIDE_RE = re.compile(r"(email_pwd|rating_api_key|pushover_token|pushover_userkey|pushbullet_apikey|prowl_apikey|growl_password|growl_server|IPv[4|6] address)\s?=\s?[\S]+", re.I)
|
||||
LOG_INI_HIDE_RE = re.compile(r"(email_pwd|email_account|email_to|rating_api_key|pushover_token|pushover_userkey|pushbullet_apikey|prowl_apikey|growl_password|growl_server|IPv[4|6] address)\s?=\s?[\S]+", re.I)
|
||||
LOG_HASH_RE = re.compile(r"([a-fA-F\d]{25})", re.I)
|
||||
|
||||
class Status(object):
|
||||
|
||||
@@ -42,9 +42,11 @@ import sabnzbd.config as config
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.encoding import unicoder, special_fixer, gUTF
|
||||
|
||||
RE_VERSION = re.compile(r'(\d+)\.(\d+)\.(\d+)([a-zA-Z]*)(\d*)')
|
||||
RE_UNITS = re.compile(r'(\d+\.*\d*)\s*([KMGTP]{0,1})', re.I)
|
||||
TAB_UNITS = ('', 'K', 'M', 'G', 'T', 'P')
|
||||
RE_UNITS = re.compile(r'(\d+\.*\d*)\s*([KMGTP]{0,1})', re.I)
|
||||
RE_VERSION = re.compile(r'(\d+)\.(\d+)\.(\d+)([a-zA-Z]*)(\d*)')
|
||||
RE_IP4 = re.compile(r'inet\s+(addr:\s*){0,1}(\d+\.\d+\.\d+\.\d+)')
|
||||
RE_IP6 = re.compile(r'inet6\s+(addr:\s*){0,1}([0-9a-f:]+)', re.I)
|
||||
|
||||
# Check if strings are defined for AM and PM
|
||||
HAVE_AMPM = bool(time.strftime('%p', time.localtime()))
|
||||
@@ -92,6 +94,15 @@ def calc_age(date, trans=False):
|
||||
return age
|
||||
|
||||
|
||||
def monthrange(start, finish):
|
||||
""" Calculate months between 2 dates, used in the Config template """
|
||||
months = (finish.year - start.year) * 12 + finish.month + 1
|
||||
for i in xrange(start.month, months):
|
||||
year = (i - 1) / 12 + start.year
|
||||
month = (i - 1) % 12 + 1
|
||||
yield datetime.date(year, month, 1)
|
||||
|
||||
|
||||
def safe_lower(txt):
|
||||
""" Return lowercased string. Return '' for None """
|
||||
if txt:
|
||||
@@ -1348,6 +1359,7 @@ def get_all_passwords(nzo):
|
||||
pw = nzo.nzo_info.get('password')
|
||||
if pw:
|
||||
meta_passwords.append(pw)
|
||||
|
||||
if meta_passwords:
|
||||
if nzo.password == meta_passwords[0]:
|
||||
# this nzo.password came from meta, so don't use it twice
|
||||
@@ -1355,19 +1367,23 @@ def get_all_passwords(nzo):
|
||||
else:
|
||||
passwords.extend(meta_passwords)
|
||||
logging.info('Read %s passwords from meta data in NZB: %s', len(meta_passwords), meta_passwords)
|
||||
|
||||
pw_file = cfg.password_file.get_path()
|
||||
if pw_file:
|
||||
try:
|
||||
pwf = open(pw_file, 'r')
|
||||
lines = pwf.read().split('\n')
|
||||
with open(pw_file, 'r') as pwf:
|
||||
lines = pwf.read().split('\n')
|
||||
# Remove empty lines and space-only passwords and remove surrounding spaces
|
||||
pws = [pw.strip('\r\n ') for pw in lines if pw.strip('\r\n ')]
|
||||
logging.debug('Read these passwords from file: %s', pws)
|
||||
passwords.extend(pws)
|
||||
pwf.close()
|
||||
logging.info('Read %s passwords from file %s', len(pws), pw_file)
|
||||
except IOError:
|
||||
logging.info('Failed to read the passwords file %s', pw_file)
|
||||
except:
|
||||
logging.warning('Failed to read the passwords file %s', pw_file)
|
||||
|
||||
# Check size
|
||||
if len(passwords) > 30:
|
||||
logging.warning(T('Your password file contains more than 30 passwords, testing all these passwords takes a lot of time. Try to only list useful passwords.'))
|
||||
|
||||
if nzo.password:
|
||||
# If an explicit password was set, add a retry without password, just in case.
|
||||
@@ -1397,8 +1413,6 @@ def find_on_path(targets):
|
||||
return None
|
||||
|
||||
|
||||
_RE_IP4 = re.compile(r'inet\s+(addr:\s*){0,1}(\d+\.\d+\.\d+\.\d+)')
|
||||
_RE_IP6 = re.compile(r'inet6\s+(addr:\s*){0,1}([0-9a-f:]+)', re.I)
|
||||
def ip_extract():
|
||||
""" Return list of IP addresses of this system """
|
||||
ips = []
|
||||
@@ -1425,9 +1439,9 @@ def ip_extract():
|
||||
output = p.stdout.read()
|
||||
p.wait()
|
||||
for line in output.split('\n'):
|
||||
m = _RE_IP4.search(line)
|
||||
m = RE_IP4.search(line)
|
||||
if not (m and m.group(2)):
|
||||
m = _RE_IP6.search(line)
|
||||
m = RE_IP6.search(line)
|
||||
if m and m.group(2):
|
||||
ips.append(m.group(2))
|
||||
return ips
|
||||
|
||||
@@ -522,6 +522,23 @@ def rar_unpack(nzo, workdir, workdir_complete, delete, one_folder, rars):
|
||||
logging.debug('rar_unpack(): Newfiles: %s', newfiles)
|
||||
extracted_files.extend(newfiles)
|
||||
|
||||
# Do not fail if this was a recursive unpack
|
||||
if fail and rarpath.startswith(workdir_complete):
|
||||
# Do not delete the files, leave it to user!
|
||||
logging.info('Ignoring failure to do recursive unpack of %s', rarpath)
|
||||
fail = 0
|
||||
success = True
|
||||
newfiles = []
|
||||
|
||||
# Do not fail if this was maybe just some duplicate fileset
|
||||
# Multipar and par2tbb will detect and log them, par2cmdline will not
|
||||
if fail and rar_set.endswith(('.1', '.2')):
|
||||
# Just in case, we leave the raw files
|
||||
logging.info('Ignoring failure of unpack for possible duplicate file %s', rarpath)
|
||||
fail = 0
|
||||
success = True
|
||||
newfiles = []
|
||||
|
||||
# Delete the old files if we have to
|
||||
if success and delete and newfiles:
|
||||
for rar in rars:
|
||||
@@ -606,6 +623,10 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
command = ['%s' % RAR_COMMAND, action, '-idp', overwrite, rename, '-ai', password_command,
|
||||
'%s' % clip_path(rarfile_path), '%s\\' % extraction_path]
|
||||
|
||||
# The subprocess_fix requires time to clear the buffers to work,
|
||||
# otherwise the inputs get send incorrectly and unrar breaks
|
||||
time.sleep(0.5)
|
||||
|
||||
elif RAR_PROBLEM:
|
||||
# Use only oldest options (specifically no "-or")
|
||||
command = ['%s' % RAR_COMMAND, action, '-idp', overwrite, password_command,
|
||||
@@ -1521,7 +1542,12 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, single=False):
|
||||
verifynum += 1
|
||||
nzo.set_action_line(T('Verifying'), '%02d/%02d' % (verifynum, verifytotal))
|
||||
nzo.status = Status.VERIFYING
|
||||
datafiles.append(TRANS(m.group(1)))
|
||||
|
||||
# Remove redundant extra files that are just duplicates of original ones
|
||||
if 'duplicate data blocks' in line:
|
||||
used_for_repair.append(TRANS(m.group(1)))
|
||||
else:
|
||||
datafiles.append(TRANS(m.group(1)))
|
||||
continue
|
||||
|
||||
# Verify done
|
||||
@@ -1943,7 +1969,7 @@ def MultiPar_Verify(parfile, parfile_nzf, nzo, setname, joinables, single=False)
|
||||
if renames:
|
||||
# If succes, we also remove the possibly previously renamed ones
|
||||
if finished:
|
||||
reconstructed.extend(nzo.renames)
|
||||
reconstructed.extend(renames.values())
|
||||
|
||||
# Adding to the collection
|
||||
nzo.renamed_file(renames)
|
||||
@@ -2064,10 +2090,13 @@ def rar_volumelist(rarfile_path, password, known_volumes):
|
||||
""" Extract volumes that are part of this rarset
|
||||
and merge them with existing list, removing duplicates
|
||||
"""
|
||||
# UnRar is required to read some RAR files
|
||||
rarfile.UNRAR_TOOL = RAR_COMMAND
|
||||
zf = rarfile.RarFile(rarfile_path)
|
||||
|
||||
# setpassword can fail due to bugs in RarFile
|
||||
if password:
|
||||
try:
|
||||
# setpassword can fail due to bugs in RarFile
|
||||
zf.setpassword(password)
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -768,10 +768,6 @@ class NzbQueue(object):
|
||||
def end_job(self, nzo):
|
||||
""" Send NZO to the post-processing queue """
|
||||
logging.info('Ending job %s', nzo.final_name)
|
||||
if self.actives(grabs=False) < 2 and cfg.autodisconnect():
|
||||
# This was the last job, close server connections
|
||||
if sabnzbd.downloader.Downloader.do:
|
||||
sabnzbd.downloader.Downloader.do.disconnect()
|
||||
|
||||
# Notify assembler to call postprocessor
|
||||
if not nzo.deleted:
|
||||
@@ -861,6 +857,7 @@ class NzbQueue(object):
|
||||
for nzo in self.__nzo_list:
|
||||
if not nzo.futuretype and not nzo.files and nzo.status not in (Status.PAUSED, Status.GRABBING):
|
||||
empty.append(nzo)
|
||||
|
||||
for nzo in empty:
|
||||
self.end_job(nzo)
|
||||
|
||||
|
||||
@@ -41,11 +41,11 @@ import sabnzbd
|
||||
from sabnzbd.constants import GIGI, ATTRIB_FILE, JOB_ADMIN, \
|
||||
DEFAULT_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY, \
|
||||
PAUSED_PRIORITY, TOP_PRIORITY, DUP_PRIORITY, REPAIR_PRIORITY, \
|
||||
RENAMES_FILE, Status, PNFO
|
||||
RENAMES_FILE, MAX_BAD_ARTICLES, Status, PNFO
|
||||
from sabnzbd.misc import to_units, cat_to_opts, cat_convert, sanitize_foldername, \
|
||||
get_unique_path, get_admin_path, remove_all, sanitize_filename, globber_full, \
|
||||
int_conv, set_permissions, format_time_string, long_path, trim_win_path, \
|
||||
fix_unix_encoding, calc_age
|
||||
fix_unix_encoding, calc_age, is_obfuscated_filename
|
||||
from sabnzbd.decorators import synchronized
|
||||
import sabnzbd.config as config
|
||||
import sabnzbd.cfg as cfg
|
||||
@@ -307,13 +307,27 @@ class NzbFile(TryList):
|
||||
self.blocks = int(blocks)
|
||||
|
||||
def get_article(self, server, servers):
|
||||
""" Get next article to be downloaded """
|
||||
""" Get next article to be downloaded from this server
|
||||
Returns None when there are still articles to try
|
||||
Returns False when all articles are tried
|
||||
"""
|
||||
# Make sure all articles have tried this server before
|
||||
# adding to the NZF-TryList, otherwise there will be stalls!
|
||||
tried_all_articles = True
|
||||
for article in self.articles:
|
||||
article = article.get_article(server, servers)
|
||||
if article:
|
||||
return article
|
||||
article_return = article.get_article(server, servers)
|
||||
if article_return:
|
||||
return article_return
|
||||
elif tried_all_articles and not article.server_in_try_list(server):
|
||||
tried_all_articles = False
|
||||
|
||||
self.add_to_try_list(server)
|
||||
# We are sure they are all tried
|
||||
if tried_all_articles:
|
||||
self.add_to_try_list(server)
|
||||
return False
|
||||
|
||||
# Still articles left to try
|
||||
return None
|
||||
|
||||
def reset_all_try_lists(self):
|
||||
""" Clear all lists of visited servers """
|
||||
@@ -558,7 +572,7 @@ NzbObjectSaver = (
|
||||
'filename', 'work_name', 'final_name', 'created', 'bytes', 'bytes_downloaded', 'bytes_tried',
|
||||
'repair', 'unpack', 'delete', 'script', 'cat', 'url', 'groups', 'avg_date', 'md5of16k',
|
||||
'partable', 'extrapars', 'md5packs', 'files', 'files_table', 'finished_files', 'status',
|
||||
'avg_bps_freq', 'avg_bps_total', 'priority', 'dupe_table', 'saved_articles', 'nzo_id',
|
||||
'avg_bps_freq', 'avg_bps_total', 'priority', 'saved_articles', 'nzo_id',
|
||||
'futuretype', 'deleted', 'parsed', 'action_line', 'unpack_info', 'fail_msg', 'nzo_info',
|
||||
'custom_name', 'password', 'next_save', 'save_timeout', 'encrypted', 'bad_articles',
|
||||
'duplicate', 'oversized', 'precheck', 'incomplete', 'reuse', 'meta',
|
||||
@@ -651,8 +665,6 @@ class NzbObject(TryList):
|
||||
priority = DEFAULT_PRIORITY
|
||||
self.priority = priority
|
||||
|
||||
self.dupe_table = {}
|
||||
|
||||
self.saved_articles = []
|
||||
|
||||
self.nzo_id = None
|
||||
@@ -939,21 +951,6 @@ class NzbObject(TryList):
|
||||
# Raise error, so it's not added
|
||||
raise TypeError
|
||||
|
||||
def check_for_dupe(self, nzf):
|
||||
filename = nzf.filename
|
||||
|
||||
dupe = False
|
||||
|
||||
if filename in self.dupe_table:
|
||||
old_nzf = self.dupe_table[filename]
|
||||
if nzf.article_count <= old_nzf.article_count:
|
||||
dupe = True
|
||||
|
||||
if not dupe:
|
||||
self.dupe_table[filename] = nzf
|
||||
|
||||
return dupe
|
||||
|
||||
@synchronized(NZO_LOCK)
|
||||
def update_download_stats(self, bps, serverid, bytes):
|
||||
if bps:
|
||||
@@ -995,7 +992,8 @@ class NzbObject(TryList):
|
||||
if head and matcher(lparset, head.lower()):
|
||||
xnzf.set_par2(parset, vol, block)
|
||||
# Don't postpone if all par2 are desired and should be kept
|
||||
if not(cfg.enable_all_par() and not cfg.enable_par_cleanup()):
|
||||
# Also don't postpone header-only-files, to extract all possible md5of16k
|
||||
if not(cfg.enable_all_par() and not cfg.enable_par_cleanup()) and block:
|
||||
self.extrapars[parset].append(xnzf)
|
||||
self.files.remove(xnzf)
|
||||
|
||||
@@ -1075,7 +1073,7 @@ class NzbObject(TryList):
|
||||
self.prospective_add(nzf)
|
||||
|
||||
# Sometimes a few CRC errors are still fine, so we continue
|
||||
if self.bad_articles > 5:
|
||||
if self.bad_articles > MAX_BAD_ARTICLES:
|
||||
self.abort_direct_unpacker()
|
||||
|
||||
post_done = False
|
||||
@@ -1275,7 +1273,7 @@ class NzbObject(TryList):
|
||||
while blocks_already < self.bad_articles and extrapars_sorted:
|
||||
new_nzf = extrapars_sorted.pop()
|
||||
# Reset NZF TryList, in case something was on it before it became extrapar
|
||||
new_nzf.reset_try_list()
|
||||
new_nzf.reset_all_try_lists()
|
||||
self.add_parfile(new_nzf)
|
||||
self.extrapars[parset] = extrapars_sorted
|
||||
blocks_already = blocks_already + int_conv(new_nzf.blocks)
|
||||
@@ -1298,6 +1296,12 @@ class NzbObject(TryList):
|
||||
""" Determine amount of articles present on servers
|
||||
and return (gross available, nett) bytes
|
||||
"""
|
||||
# Few missing articles in RAR-only job might still work
|
||||
if self.bad_articles <= MAX_BAD_ARTICLES:
|
||||
logging.debug('Download Quality: bad-articles=%s', self.bad_articles)
|
||||
return True, 200
|
||||
|
||||
# Do the full check
|
||||
need = 0L
|
||||
pars = 0L
|
||||
short = 0L
|
||||
@@ -1384,6 +1388,7 @@ class NzbObject(TryList):
|
||||
def get_article(self, server, servers):
|
||||
article = None
|
||||
nzf_remove_list = []
|
||||
tried_all_articles = True
|
||||
|
||||
for nzf in self.files:
|
||||
if nzf.deleted:
|
||||
@@ -1407,16 +1412,21 @@ class NzbObject(TryList):
|
||||
article = nzf.get_article(server, servers)
|
||||
if article:
|
||||
break
|
||||
if article == None:
|
||||
# None is returned by NZF when server is not tried for all articles
|
||||
tried_all_articles = False
|
||||
|
||||
# Remove all files for which admin could not be read
|
||||
for nzf in nzf_remove_list:
|
||||
nzf.deleted = 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:
|
||||
# Only add to trylist when server has been tried for all articles of all NZF's
|
||||
if not article and tried_all_articles:
|
||||
# No articles for this server, block for next time
|
||||
self.add_to_try_list(server)
|
||||
return article
|
||||
@@ -1489,6 +1499,33 @@ class NzbObject(TryList):
|
||||
self.files[pos + 1] = nzf
|
||||
self.files[pos] = tmp_nzf
|
||||
|
||||
def verify_nzf_filename(self, nzf, yenc_filename=None):
|
||||
""" Get filename from par2-info or from yenc """
|
||||
# Already done?
|
||||
if nzf.filename_checked:
|
||||
return
|
||||
|
||||
# If we have the md5, use it to rename
|
||||
if nzf.md5of16k and self.md5of16k:
|
||||
# Don't check again, even if no match
|
||||
nzf.filename_checked = True
|
||||
# Find the match and rename
|
||||
if nzf.md5of16k in self.md5of16k:
|
||||
new_filename = platform_encode(self.md5of16k[nzf.md5of16k])
|
||||
# Was it even new?
|
||||
if new_filename != nzf.filename:
|
||||
logging.info('Detected filename based on par2: %s -> %s', nzf.filename, new_filename)
|
||||
self.renamed_file(new_filename, nzf.filename)
|
||||
nzf.filename = new_filename
|
||||
return
|
||||
|
||||
# Fallback to yenc/nzb name (also when there is no partnum=1)
|
||||
# We also keep the NZB name in case it ends with ".par2" (usually correct)
|
||||
if yenc_filename and yenc_filename != nzf.filename and not is_obfuscated_filename(yenc_filename) and not nzf.filename.endswith('.par2'):
|
||||
logging.info('Detected filename from yenc: %s -> %s', nzf.filename, yenc_filename)
|
||||
self.renamed_file(yenc_filename, nzf.filename)
|
||||
nzf.filename = yenc_filename
|
||||
|
||||
@synchronized(NZO_LOCK)
|
||||
def renamed_file(self, name_set, old_name=None):
|
||||
""" Save renames at various stages (Download/PP)
|
||||
|
||||
@@ -308,6 +308,11 @@ def process_job(nzo):
|
||||
# Try to get more par files
|
||||
return False
|
||||
|
||||
# If we don't need extra par2, we can disconnect
|
||||
if sabnzbd.nzbqueue.NzbQueue.do.actives(grabs=False) == 0 and cfg.autodisconnect():
|
||||
# This was the last job, close server connections
|
||||
sabnzbd.downloader.Downloader.do.disconnect()
|
||||
|
||||
# Sanitize the resulting files
|
||||
if sabnzbd.WIN32:
|
||||
sanitize_files_in_folder(workdir)
|
||||
|
||||
@@ -28,12 +28,28 @@ import time
|
||||
##############################################################################
|
||||
# Power management for Windows
|
||||
##############################################################################
|
||||
try:
|
||||
import win32security
|
||||
import win32api
|
||||
import ntsecuritycon
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
def win_power_privileges():
|
||||
""" To do any power-options, the process needs higher privileges """
|
||||
flags = ntsecuritycon.TOKEN_ADJUST_PRIVILEGES | ntsecuritycon.TOKEN_QUERY
|
||||
htoken = win32security.OpenProcessToken(win32api.GetCurrentProcess(), flags)
|
||||
id_ = win32security.LookupPrivilegeValue(None, ntsecuritycon.SE_SHUTDOWN_NAME)
|
||||
newPrivileges = [(id_, ntsecuritycon.SE_PRIVILEGE_ENABLED)]
|
||||
win32security.AdjustTokenPrivileges(htoken, 0, newPrivileges)
|
||||
|
||||
|
||||
def win_hibernate():
|
||||
""" Hibernate Windows system, returns after wakeup """
|
||||
try:
|
||||
subprocess.Popen("rundll32 powrprof.dll,SetSuspendState Hibernate")
|
||||
time.sleep(10)
|
||||
win_power_privileges()
|
||||
win32api.SetSystemPowerState(False, True)
|
||||
except:
|
||||
logging.error(T('Failed to hibernate system'))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
@@ -42,8 +58,8 @@ def win_hibernate():
|
||||
def win_standby():
|
||||
""" Standby Windows system, returns after wakeup """
|
||||
try:
|
||||
subprocess.Popen("rundll32 powrprof.dll,SetSuspendState Standby")
|
||||
time.sleep(10)
|
||||
win_power_privileges()
|
||||
win32api.SetSystemPowerState(True, True)
|
||||
except:
|
||||
logging.error(T('Failed to standby system'))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
@@ -52,15 +68,7 @@ def win_standby():
|
||||
def win_shutdown():
|
||||
""" Shutdown Windows system, never returns """
|
||||
try:
|
||||
import win32security
|
||||
import win32api
|
||||
import ntsecuritycon
|
||||
|
||||
flags = ntsecuritycon.TOKEN_ADJUST_PRIVILEGES | ntsecuritycon.TOKEN_QUERY
|
||||
htoken = win32security.OpenProcessToken(win32api.GetCurrentProcess(), flags)
|
||||
id_ = win32security.LookupPrivilegeValue(None, ntsecuritycon.SE_SHUTDOWN_NAME)
|
||||
newPrivileges = [(id_, ntsecuritycon.SE_PRIVILEGE_ENABLED)]
|
||||
win32security.AdjustTokenPrivileges(htoken, 0, newPrivileges)
|
||||
win_power_privileges()
|
||||
win32api.InitiateSystemShutdown("", "", 30, 1, 0)
|
||||
finally:
|
||||
os._exit(0)
|
||||
|
||||
@@ -993,5 +993,6 @@ SKIN_TEXT = {
|
||||
SABnzbd comes with ABSOLUTELY NO WARRANTY.
|
||||
This is free software, and you are welcome to redistribute it under certain conditions.
|
||||
It is licensed under the GNU GENERAL PUBLIC LICENSE Version 2 or (at your option) any later version.
|
||||
''')
|
||||
'''),
|
||||
'wizard-ad': TT('In order to download from Usenet you will require access to a provider. Your ISP may provide you with access, however a premium provider is recommended. Don\'t have a Usenet provider? We recommend trying %s.''')
|
||||
}
|
||||
|
||||
@@ -86,17 +86,20 @@ def CreateProcess(executable, args, _p_attr, _t_attr,
|
||||
Python implementation of CreateProcess using CreateProcessW for Win32
|
||||
|
||||
"""
|
||||
|
||||
si = STARTUPINFOW(
|
||||
dwFlags=startup_info.dwFlags,
|
||||
wShowWindow=startup_info.wShowWindow,
|
||||
cb=sizeof(STARTUPINFOW),
|
||||
## XXXvlab: not sure of the casting here to ints.
|
||||
hStdInput=int(startup_info.hStdInput),
|
||||
hStdOutput=int(startup_info.hStdOutput),
|
||||
hStdError=int(startup_info.hStdError),
|
||||
)
|
||||
|
||||
# Only cast to ints when it's given
|
||||
if startup_info.hStdInput:
|
||||
si.hStdInput = int(startup_info.hStdInput)
|
||||
if startup_info.hStdOutput:
|
||||
si.hStdOutput = int(startup_info.hStdOutput)
|
||||
if startup_info.hStdError:
|
||||
si.hStdError = int(startup_info.hStdError)
|
||||
|
||||
wenv = None
|
||||
if env is not None:
|
||||
## LPCWSTR seems to be c_wchar_p, so let's say CWSTR is c_wchar
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
|
||||
# You MUST use double quotes (so " and not ')
|
||||
|
||||
__version__ = "2.2.0-develop"
|
||||
__baseline__ = "unknown"
|
||||
__version__ = "2.2.1"
|
||||
__baseline__ = "bcc4dd75cfeab41a4b56308709c04fd568859d1f"
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
@echo off
|
||||
rem Example of a post processing script for SABnzbd
|
||||
|
||||
echo.
|
||||
echo Running in directory "%~d0%~p0"
|
||||
echo.
|
||||
echo The first parameter (result-dir) = %1
|
||||
echo The second parameter (nzb-name) = %2
|
||||
echo The third parameter (nice name) = %3
|
||||
echo The fourth parameter (newzbin #) = %4
|
||||
echo The fifth parameter (category) = %5
|
||||
echo The sixth parameter (group) = %6
|
||||
echo The seventh parameter (status) = %7
|
||||
echo The eight parameter (failure_url)= %8
|
||||
echo.
|
||||
@echo off
|
||||
rem Example of a post processing script for SABnzbd
|
||||
|
||||
echo.
|
||||
echo Running in directory "%~d0%~p0"
|
||||
echo.
|
||||
echo The first parameter (result-dir) = %1
|
||||
echo The second parameter (nzb-name) = %2
|
||||
echo The third parameter (nice name) = %3
|
||||
echo The fourth parameter (newzbin #) = %4
|
||||
echo The fifth parameter (category) = %5
|
||||
echo The sixth parameter (group) = %6
|
||||
echo The seventh parameter (status) = %7
|
||||
echo The eight parameter (failure_url)= %8
|
||||
echo.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user