Compare commits

...

35 Commits

Author SHA1 Message Date
SABnzbd Automation
e3a779bbc6 Automatic translation update 2017-08-09 21:44:13 +00:00
Safihre
adfce8c8b6 Update text files for 2.2.0RC2 2017-08-09 23:03:44 +02:00
Safihre
a49d68c0db Double check that we have pynotify version we can work with
Closes #992
2017-08-09 22:56:07 +02:00
Safihre
e4156e76d1 Disable auto-zoom on mobile for adaptive pages 2017-08-09 22:50:53 +02:00
Safihre
35b66eea0e Add more space to Config header just in case 2017-08-09 18:45:01 +03:00
Safihre
4d0cf8d45f Correct naming and small style fix 2017-08-09 18:36:20 +03:00
Safihre
ad9fef5f41 Prevent SQL injection via category-argument with ' in them 2017-08-09 17:43:17 +03:00
Safihre
6235174995 CherryPy 8.1.2 - Correct f6c163b: macOS "Protocol wrong type for socket"
https://github.com/cherrypy/cheroot/pull/31
https://github.com/cherrypy/cheroot/pull/44
2017-08-09 09:55:04 +03:00
Safihre
4b9ca989c4 Correctly log the rar-files used by DirectUnpack
Not just assume we used them all.
2017-08-08 13:39:03 +03:00
Safihre
4d54aecceb Check the workdir after extraction if we got everything
Sometimes there might be a file left that we did not extract. For example there are NZBs that have the main download in abc.part01.rar etc but also a abc.rar file with the NFO or other things. 
SABnzbd would detect this as 1 set and not unpack both.
2017-08-08 13:37:09 +03:00
Safihre
11eeb6f2e9 Glitter filelist would not show 100% for very small files
Plus some cleanup of move-to-top/bottom code
2017-08-08 12:19:07 +03:00
Safihre
00364b1317 Only update RSS URI if it was modified
See #993
2017-08-08 12:04:54 +03:00
shypike
6666663f78 Fix typo in text about "allow duplicate files" 2017-08-08 09:17:25 +02:00
Safihre
3d6dfec47a Disk-space check in Assembler and check if space to write current file 2017-08-06 19:01:59 +03:00
Safihre
0f3d44aa4b safe_fnmatch should only do the matching
Oops, globber and globber_full are not the same!
2017-08-06 12:57:23 +03:00
SABnzbd Automation
d2d2471950 Automatic translation update 2017-08-06 09:42:54 +00:00
Safihre
b71343e8ab Safe fnmatch everywhere, just to be sure
Linked #990
2017-08-06 11:46:00 +03:00
Safihre
489f3f4ba0 Catch special chars like "[]!*" to break fnmatch and thus repair
Closes #990
2017-08-06 11:25:27 +03:00
Safihre
3765e8c350 Add warning when many duplicate files were discarded
Linked #531, Closes #986
2017-08-02 12:50:26 +02:00
Safihre
28d4f527b8 Fix the server-graphs
They did not display anything if it was the first of the month. Plus some style-fixes.
2017-08-01 13:31:18 +02:00
Safihre
1d8af8f97d Correct counts if one_folder is enabled 2017-08-01 11:28:34 +02:00
Safihre
829ef4bee8 Only one_folder is a reason not to delete the folder in DircetUnpack 2017-08-01 11:06:40 +02:00
Safihre
7e40c12e47 Get rarfiles to delete from both RarFile and parsing Unrar output
RarFile will fail to list all volumes when the job is encrypted, it will only list the first volume. But parsing the output of Unrar will fail on special-char filenames (probably limited to Windows). So now only jobs that are encrypted *and* have many special-chars will not have all rars deleted correctly,
2017-07-31 23:45:56 +02:00
Safihre
37d8d659f5 Show deprication warning for Server Categories 2017-07-31 22:26:21 +02:00
Safihre
0a29291be2 Abort all direct unpackers when disk-full 2017-07-31 22:26:04 +02:00
Safihre
7f3a5f309b Don't postpone if all par2 are desired and should be kept
Prevents downloading of all par2 in case people just wanted to keep some par2, but not all. If people really want all and no-cleanup, they should enable 'All par2'
2017-07-31 16:51:48 +02:00
Safihre
60ec5f9191 Less aggresive cache-busting 2017-07-31 10:38:45 +02:00
Safihre
d03e801e74 Only show import warnings when not gone
Can be removed if #952 is resolved
2017-07-30 20:29:28 +02:00
Safihre
56bf484e77 Also show Verifying Repair status for par2cmdline 2017-07-30 16:51:28 +02:00
Safihre
66674469d5 Return of the DIR_LOCK
Yeah, turns out we probably do need that. In case automation adds a new job while the old one is still getting deleted. Hopefully solving #952
2017-07-30 15:57:34 +02:00
Safihre
09a86683e5 Retry icon was too red in Glitter Night 2017-07-30 15:56:49 +02:00
Safihre
fc9a13879e CSS Tweaks to Night theme 2017-07-30 11:32:35 +02:00
Safihre
73f0885566 Schedule to deprecate Categories setting for Servers in next release
This option only gives headaches because users do not use it correctly or edge cases where downloads stall. 
If users report that they really want to keep this option, we can of course consider it.
2017-07-29 13:29:10 +02:00
Safihre
090b22f193 Revert "CherryPy 8.1.2 - Catch error of Python 2 in combination with new OpenSSL"
Not catching the right error because it's of the general Error class, not SSLError.
2017-07-28 18:46:46 +02:00
Safihre
f9c092ae8f Move Notification Script up on the Config page and add Wiki-link
So they can see other services
2017-07-28 09:52:25 +02:00
40 changed files with 1214 additions and 743 deletions

View File

@@ -1,7 +1,7 @@
Metadata-Version: 1.0
Name: SABnzbd
Version: 2.2.0RC1
Summary: SABnzbd-2.2.0RC1
Version: 2.2.0RC2
Summary: SABnzbd-2.2.0RC2
Home-page: https://sabnzbd.org
Author: The SABnzbd Team
Author-email: team@sabnzbd.org

View File

@@ -1,4 +1,4 @@
Release Notes - SABnzbd 2.2.0 Release Candidate 1
Release Notes - SABnzbd 2.2.0 Release Candidate 2
=========================================================
NOTE: Due to changes in this release, the queue will be converted when 2.2.0
@@ -6,6 +6,23 @@ 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
@@ -25,14 +42,12 @@ fetching before the upgrade will be lost!
- Correct value in "Speed" Extra History Column
- Remove video and audio rating icons from Queue
- Show vote buttons instead of video and audio rating buttons in History
- If enable_par_cleanup is disabled all par2 files be downloaded
- If enabled, replace dots in filenames also when there are spaces already
- 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: Better indication of verification process before and after repair
- Windows: MultiPar verification of a job is skipped after blocks are fetched
- Windows & macOS: removed par2cmdline in favor of par2tbb/MultiPar

View File

@@ -200,8 +200,8 @@ socket_errors_nonblocking = plat_specific_errors(
'EAGAIN', 'EWOULDBLOCK', 'WSAEWOULDBLOCK')
if sys.platform == 'darwin':
socket_errors_to_ignore.append(plat_specific_errors('EPROTOTYPE'))
socket_errors_nonblocking.append(plat_specific_errors('EPROTOTYPE'))
socket_errors_to_ignore.extend(plat_specific_errors('EPROTOTYPE'))
socket_errors_nonblocking.extend(plat_specific_errors('EPROTOTYPE'))
comma_separated_headers = [
ntob(h) for h in

View File

@@ -85,7 +85,7 @@ class BuiltinSSLAdapter(wsgiserver.SSLAdapter):
# Check if it's one of the known errors
# Errors that are caught by PyOpenSSL, but thrown by built-in ssl
_block_errors = ('unknown protocol', 'unknown ca', 'unknown error', 'errno 0',
_block_errors = ('unknown protocol', 'unknown ca', 'unknown_ca', 'unknown error',
'https proxy request', 'inappropriate fallback', 'wrong version number',
'no shared cipher', 'certificate unknown', 'ccs received early')
for error_text in _block_errors:

View File

@@ -22,7 +22,7 @@
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1" />
<meta name="apple-mobile-web-app-title" content="SABnzbd" />
<link rel="apple-touch-icon" sizes="76x76" href="${root}staticcfg/ico/apple-touch-icon-76x76-precomposed.png" />
@@ -33,7 +33,7 @@
<link rel="stylesheet" type="text/css" href="${root}staticcfg/bootstrap/css/bootstrap.min.css?v=$version" />
<link rel="stylesheet" type="text/css" href="${root}staticcfg/css/chartist.min.css" />
<link rel="stylesheet" type="text/css" href="${root}staticcfg/css/style.css?p=$pid" />
<link rel="stylesheet" type="text/css" href="${root}staticcfg/css/style.css?v=$version" />
<link rel="shortcut icon" href="${root}staticcfg/ico/favicon.ico?v=$version" />

View File

@@ -178,6 +178,45 @@
</div>
</div>
<!--#end if#-->
<div class="section" id="nscript">
<div class="col2">
<h3>$T('section-NScript')</h3>
<table>
<tr>
<td><input type="checkbox" name="nscript_enable" id="nscript_enable" value="1" <!--#if int($nscript_enable) > 0 then 'checked="checked"' else ""#--> /></td>
<td><label for="nscript_enable"> $T('opt-nscript_enable')</label></td>
</tr>
</table>
<em>$T('explain-nscript_enable')</em><br><a href="$helpuri$help_uri#nscript" target="_blank">$T('readwiki')</a>
$show_cat_box('nscript')
</div>
<div class="col1" <!--#if int($nscript_enable) > 0 then '' else 'style="display:none"'#-->>
<fieldset>
<div class="field-pair">
<label class="config" for="nscript_script">$T('opt-nscript_script')</label>
<select name="nscript_script">
<!--#for $sc in $scripts#-->
<option value="$sc" <!--#if $nscript_script == $sc then 'selected="selected"' else ""#-->>$Tspec($sc)</option>
<!--#end for#-->
</select>
<span class="desc">$T('explain-nscript_script')</span>
</div>
<div class="field-pair">
<label class="config" for="nscript_parameters">$T('opt-nscript_parameters')</label>
<input type="text" name="nscript_parameters" id="nscript_parameters" value="$nscript_parameters" />
<span class="desc">$T('Optional') - $T('explain-nscript_parameters')</span>
</div>
$show_notify_checkboxes('nscript')
<div class="field-pair">
<button class="btn btn-default saveButton"><span class="glyphicon glyphicon-ok"></span> $T('button-saveChanges')</button>
<button class="btn btn-default" type="button" id="test_nscript"><span class="glyphicon glyphicon-comment"></span> $T('testNotify')</button>
</div>
<div class="field-pair result-box">
<div class="alert"></div>
</div>
</fieldset>
</div>
</div>
<div class="section" id="growl">
<div class="col2">
<h3>$T('growlSettings') <a href="$helpuri$help_uri#toc3" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a></h3>
@@ -350,45 +389,6 @@
</fieldset>
</div>
</div>
<div class="section" id="nscript">
<div class="col2">
<h3>$T('section-NScript')</h3>
<table>
<tr>
<td><input type="checkbox" name="nscript_enable" id="nscript_enable" value="1" <!--#if int($nscript_enable) > 0 then 'checked="checked"' else ""#--> /></td>
<td><label for="nscript_enable"> $T('opt-nscript_enable')</label></td>
</tr>
</table>
<em>$T('explain-nscript_enable')</em>
$show_cat_box('nscript')
</div>
<div class="col1" <!--#if int($nscript_enable) > 0 then '' else 'style="display:none"'#-->>
<fieldset>
<div class="field-pair">
<label class="config" for="nscript_script">$T('opt-nscript_script')</label>
<select name="nscript_script">
<!--#for $sc in $scripts#-->
<option value="$sc" <!--#if $nscript_script == $sc then 'selected="selected"' else ""#-->>$Tspec($sc)</option>
<!--#end for#-->
</select>
<span class="desc">$T('explain-nscript_script')</span>
</div>
<div class="field-pair">
<label class="config" for="nscript_parameters">$T('opt-nscript_parameters')</label>
<input type="text" name="nscript_parameters" id="nscript_parameters" value="$nscript_parameters" />
<span class="desc">$T('Optional') - $T('explain-nscript_parameters')</span>
</div>
$show_notify_checkboxes('nscript')
<div class="field-pair">
<button class="btn btn-default saveButton"><span class="glyphicon glyphicon-ok"></span> $T('button-saveChanges')</button>
<button class="btn btn-default" type="button" id="test_nscript"><span class="glyphicon glyphicon-comment"></span> $T('testNotify')</button>
</div>
<div class="field-pair result-box">
<div class="alert"></div>
</div>
</fieldset>
</div>
</div>
</form>
</div><!-- /colmask -->

View File

@@ -116,7 +116,7 @@
var serverData = {}
var chartOptions = {
fullWidth: true,
showPoint: false,
showArea: true,
axisX: {
labelOffset: {
x: -5
@@ -149,7 +149,7 @@
<!--#set min_date = datetime.date.today()#-->
<!--#for date in $server['amounts'][4]#-->
<!--#set split_date = $date.split('-')#-->
<!--#set min_date = min(min_date, datetime.date(int(split_date[0]), int(split_date[1]), int(split_date[2])))#-->
<!--#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))#-->
<select class="chart-selector" name="chart-selector-${id}" id="chart-selector-${id}" data-id="${id}">
@@ -258,7 +258,7 @@
</option>
<!--#end for#-->
</select>
<span class="desc">$T('srv-explain-categories')</span>
<span class="desc">$T('srv-explain-categories')<br><span class="label label-warning">$T('warning').upper()</span> <strong>This option is scheduled to be removed in the next release of SABnzbd.</strong></span>
<div class="alert alert-info alert-no-category">
<span class="glyphicon glyphicon-info-sign"></span>
$T('srv-explain-no-categories')
@@ -378,15 +378,16 @@
// Show the chart
chart = new Chartist.Line('#server-chart-'+server_id, data, chartOptions);
chart.on('created', function(context) {
// Make sure to add this as the first child so it's at the bottom
context.svg.elem('rect', {
x: context.chartRect.x1,
y: context.chartRect.y2,
y: context.chartRect.y2-1,
width: context.chartRect.width(),
height: context.chartRect.height()+2,
fill: 'none',
stroke: '#B9B9B9',
'stroke-width': '1px'
})
}, '', context.svg, true)
\$('#server-chart-'+server_id+' .ct-label.ct-vertical').each(function(index, elmn) {
elmn.innerHTML += axisLabel
})

View File

@@ -3,7 +3,7 @@
<title>SABnzbd - $T('login')</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1" />
<meta name="apple-mobile-web-app-title" content="SABnzbd" />
<link rel="apple-touch-icon" sizes="76x76" href="../staticcfg/ico/apple-touch-icon-76x76-precomposed.png" />

View File

@@ -619,7 +619,6 @@ h2.activeRSS {
padding: 0 0 .5em;
}
.feed-row div {
padding-right: 10px;
overflow:hidden;
white-space: nowrap;
text-overflow: ellipsis;
@@ -1010,6 +1009,15 @@ input[type="checkbox"] {
stroke: #666666;
}
.Servers .ct-series-a .ct-point {
stroke: #666666;
stroke-width: 4px;
}
.Servers .ct-series-a .ct-area {
fill: #666666
}
.Servers .ct-label {
font-size: 1em;
color: black;
@@ -1159,7 +1167,7 @@ input[type="checkbox"] {
.navbar-nav {
/* For extra wide languages like Polish */
margin-right: -50px;
margin-right: -150px;
}
}

View File

@@ -16,7 +16,7 @@
<title data-bind="text: title">SABnzbd</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="application-name" content="SABnzbd">
<meta name="apple-mobile-web-app-capable" content="yes" />
@@ -30,13 +30,13 @@
<link rel="apple-touch-icon" sizes="152x152" href="./staticcfg/ico/apple-touch-icon-152x152-precomposed.png" />
<link rel="apple-touch-icon" sizes="180x180" href="./staticcfg/ico/apple-touch-icon-180x180-precomposed.png" />
<link rel="apple-touch-icon" sizes="192x192" href="./staticcfg/ico/android-192x192.png" />
<link rel="shortcut icon" type="image/ico" href="./staticcfg/ico/favicon.ico?v=1.0.0" data-bind="attr: { 'href': SABIcon }" />
<link rel="shortcut icon" type="image/ico" href="./staticcfg/ico/favicon.ico?v=$version" data-bind="attr: { 'href': SABIcon }" />
<link rel="stylesheet" type="text/css" href="./static/bootstrap/css/bootstrap.min.css?p=$pid" />
<link rel="stylesheet" type="text/css" href="./static/stylesheets/glitter.css?p=$pid" />
<link rel="stylesheet" type="text/css" href="./static/stylesheets/glitter.mobile.css?p=$pid" media="all and (max-width: 768px)" />
<link rel="stylesheet" type="text/css" href="./static/bootstrap/css/bootstrap.min.css?v=$version" />
<link rel="stylesheet" type="text/css" href="./static/stylesheets/glitter.css?v=$version" />
<link rel="stylesheet" type="text/css" href="./static/stylesheets/glitter.mobile.css?v=$version" media="all and (max-width: 768px)" />
<!--#if $color_scheme not in ('Default', '') #-->
<link rel="stylesheet" type="text/css" href="./static/stylesheets/colorschemes/${color_scheme}.css?p=$pid"/>
<link rel="stylesheet" type="text/css" href="./static/stylesheets/colorschemes/${color_scheme}.css?v=$version"/>
<!--#end if#-->
<!-- Make translations available in scripts -->

View File

@@ -37,19 +37,10 @@ function Fileslisting(parent) {
// Move to top and bottom buttons
self.moveButton = function (item,event) {
var ITEMKEY = "ko_sortItem",
INDEXKEY = "ko_sourceIndex",
LISTKEY = "ko_sortList",
PARENTKEY = "ko_parentList",
DRAGKEY = "ko_dragItem",
unwrap = ko.utils.unwrapObservable,
dataGet = ko.utils.domData.get,
dataSet = ko.utils.domData.set;
var targetRow,sourceRow,tbody;
var targetRow, sourceRow, tbody;
sourceRow = $(event.currentTarget).parents("tr").filter(":first");
tbody = sourceRow.parents("tbody").filter(":first");
//debugger;
dataSet(sourceRow[0], INDEXKEY, ko.utils.arrayIndexOf(sourceRow.parent().children(), sourceRow[0]));
ko.utils.domData.set(sourceRow[0], "ko_sourceIndex", ko.utils.arrayIndexOf(sourceRow.parent().children(), sourceRow[0]));
sourceRow = sourceRow.detach();
if ($(event.currentTarget).is(".buttonMoveToTop")) {
// we are moving to the top
@@ -67,7 +58,7 @@ function Fileslisting(parent) {
}
tbody.sortable('option', 'update').call(tbody[0],null, { item: sourceRow });
};
// Trigger update
self.triggerUpdate = function() {
// Call API
@@ -230,9 +221,9 @@ function FileslistingModel(parent, data) {
self.nzf_id = ko.observable(data.nzf_id);
self.file_age = ko.observable(data.age);
self.mb = ko.observable(data.mb);
self.percentage = ko.observable(fixPercentages((100 - (data.mbleft / data.mb * 100)).toFixed(0)));
self.canselect = ko.observable(data.status != "finished" && data.status != "queued");
self.isdone = ko.observable(data.status == "finished");
self.percentage = ko.observable(self.isdone() ? fixPercentages(100) : fixPercentages((100 - (data.mbleft / data.mb * 100)).toFixed(0)));
// Update internally
self.updateFromData = function(data) {
@@ -240,9 +231,10 @@ function FileslistingModel(parent, data) {
self.nzf_id(data.nzf_id)
self.file_age(data.age)
self.mb(data.mb)
self.percentage(fixPercentages((100 - (data.mbleft / data.mb * 100)).toFixed(0)));
self.canselect(data.status != "finished" && data.status != "queued")
self.isdone(data.status == "finished")
// Data is given in MB, would always show 0% for small files even if completed
self.percentage(self.isdone() ? fixPercentages(100) : fixPercentages((100 - (data.mbleft / data.mb * 100)).toFixed(0)))
}
}

View File

@@ -76,7 +76,7 @@ legend,
background-color: #666;
}
.navbar-collapse.in .dropdown-menu {
.navbar-collapse.in .dropdown-menu, {
border: none;
}
@@ -111,6 +111,7 @@ legend,
color: #EBEBEB;
}
table,
.table-striped>tbody>tr:nth-child(even)>td,
.table>tbody>tr:nth-child(even)>td,
.table th,
@@ -158,7 +159,9 @@ select.form-control,
.retry-button, .retry-button-inactive,
.history-options-show-failed,
.queue-error-info,
.options-bad-status {
.options-bad-status,
.history-failed-download:hover .retry-button .glyphicon:before,
.retry-button:hover .glyphicon:before {
color: #F95151 !important;
}
@@ -205,6 +208,10 @@ hr {
border-bottom: none !important;
}
#modal-item-files .item-files-table {
border-bottom: 1px solid black;
}
.history-queue-swicher .nav-tabs>li>a,
.history-queue-swicher .nav-tabs>li.active>a {
border-bottom: none;
@@ -222,6 +229,11 @@ hr {
box-shadow: inset 1px 0px 1px rgba(0, 0, 0, 1);
}
.modal-content {
border-color: #727272;
border-top: none;
}
/* Placeholders - Will not work if grouped! */
::-webkit-input-placeholder {
color: #EBEBEB !important;

View File

@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-06-22 20:42+0000\n"
"PO-Revision-Date: 2017-07-22 17:36+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
"PO-Revision-Date: 2017-08-01 16:45+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-07-23 06:02+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-02 06:03+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: email/email.tmpl:1
msgid ""
@@ -72,11 +72,11 @@ msgstr ""
"## !שורות חדשות ורווחים לבנים הם משמעותיים\n"
"##\n"
"## אלו כותרות הדוא\"ל\n"
"To: $to\n"
"From: $from\n"
"Date: $date\n"
"Subject: SABnzbd has <!--#if $status then \"completed\" else \"failed\" #--> "
"job $name\n"
"$to :אל\n"
"$from :מאת\n"
"תאריך: $date\n"
"<!--#if $status then \"completed\" else \"failed\" #--> $name יש עבודה אשר "
"SABnzbd-נושא: ל\n"
"## !אחרי זה בא הגוף, השורה הריקה דרושה\n"
"\n"
",היי\n"
@@ -87,7 +87,7 @@ msgstr ""
"SABnzbd נכשל להוריד את \"$name\" <!--#if $msgid==\"\" then \"\" else "
"\"(newzbin #\" + $msgid + \")\"#-->\n"
"<!--#end if#-->\n"
"הסתיים ב $end_time\n"
"הסתיים ב-$end_time\n"
"הורדו $size\n"
"\n"
":תוצאות העבודה\n"
@@ -143,10 +143,10 @@ msgstr ""
"## !שורות חדשות ורווחים לבנים הם משמעותיים\n"
"##\n"
"## אלו כותרות הדוא\"ל\n"
"To: $to\n"
"From: $from\n"
"Date: $date\n"
"הוסיף $amount עבודות לתור Subject: SABnzbd\n"
"$to :אל\n"
"$from :מאת\n"
"תאריך: $date\n"
"הוסיף $amount עבודות לתור SABnzbd :נושא\n"
"## !אחרי זה בא הגוף, השורה הריקה דרושה\n"
"\n"
",היי\n"
@@ -185,18 +185,17 @@ msgid ""
"Bye\n"
msgstr ""
"##\n"
"## Bad URL Fetch Email template for SABnzbd רעה עבור URL תבנית דוא\"ל של "
"משיכת\n"
"## SABnzbd רעה עבור URL תבנית דוא\"ל של משיכת\n"
"## זאת תבנית ברדלס\n"
"## http://sabnzbd.wikidot.com/email-templates :תיעוד\n"
"##\n"
"## !שורות חדשות ורווחים לבנים הם משמעותיים\n"
"##\n"
"## אלו כותרות הדוא\"ל\n"
"To: $to\n"
"From: $from\n"
"Date: $date\n"
"NZB נכשל במשיכת Subject: SABnzbd\n"
"$to :אל\n"
"$from :מאת\n"
"תאריך: $date\n"
"NZB נכשל במשיכת SABnzbd :נושא\n"
"## !אחרי זה בא הגוף, השורה הריקה דרושה\n"
"\n"
",היי\n"

View File

@@ -12,7 +12,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 7bit\n"
"POT-Creation-Date: 2017-07-27 15:58+W. Europe Daylight Time\n"
"POT-Creation-Date: 2017-08-02 12:48+W. Europe Daylight Time\n"
"Generated-By: pygettext.py 1.5\n"
@@ -946,6 +946,11 @@ msgstr ""
msgid "[%s] Repaired in %s"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -962,10 +967,6 @@ msgstr ""
msgid "Checking"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1123,6 +1124,10 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr ""
#: sabnzbd/nzbstuff.py [Warning message]
msgid "%d files with duplicate filenames were discared for \"%s\". Enable \"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr ""

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:10+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -656,7 +656,7 @@ msgstr ""
"Brugeroplysninger mangler, indtast brugernavn / password fra Konfiguration-> "
"Generelt i dit tredjepartsprogram:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1012,6 +1012,11 @@ msgstr "Reparerer"
msgid "[%s] Repaired in %s"
msgstr "[%s] Repareret i %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1028,10 +1033,6 @@ msgstr "Bekræfter"
msgid "Checking"
msgstr "Kontrollerer"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr "Python script '%s' har ikke udfør (+x) tilladelsessæt"
@@ -1091,7 +1092,7 @@ msgid "Not available"
msgstr "Ikke tilgængelig"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Kan ikke sende, mangler nødvendige data"
@@ -1191,6 +1192,12 @@ msgstr "Dublet NZB"
msgid "Pausing duplicate NZB \"%s\""
msgstr "Pause duplikeret NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Afbrudt, kan ikke afsluttes"
@@ -1632,6 +1639,22 @@ msgstr "Fejl ved lukning af system"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Indexer id (%s) ikke fundet for ratings fil"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Serveradresse"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-nøgle"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Denne nøgle indeholder identitet indekseringen. Tjek din profil på "
"indekseringens hjemmeside."
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Forkert RSS-feed beskrivelse \"%s\""
@@ -2823,9 +2846,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historie Elementbegrænsning"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2855,10 +2878,6 @@ msgstr ""
"Hjælp os med at oversætte SABnzbd på dit sprog! <br/> Tilføj uoversatte "
"tekster eller forbedrede eksisterende oversættelser her:"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-nøgle"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "Denne nøgle vil give 3. parts programmer fuld adgang til SABnzbd."
@@ -3227,6 +3246,16 @@ msgstr "Ved fejl, prøv alternativ NZB"
msgid "Some servers provide an alternative NZB when a download fails."
msgstr "Nogle servere levere en alternativ NZB når et download mislykkes."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Aktiver mappe omdøbning"
@@ -3455,20 +3484,8 @@ msgstr "Aktiver indekseringen Integration"
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
"report to the indexer if a job couldn't be completed."
msgstr ""
"Indeksatorer kan levere klassifikationsoplysninger, når et job er tilføjet "
"og SABnzbd kan rapportere indekseringen, hvis et job ikke kunne fuldføres. "
"Afhængigt af din indekseringen, kan API tasteindstillingen stå tomt."
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Denne nøgle indeholder identitet indekseringen. Tjek din profil på "
"indekseringens hjemmeside."
#: sabnzbd/skintext.py
msgid "Enable Filtering"
@@ -3822,10 +3839,6 @@ msgstr "Aktiver Growl"
msgid "Send notifications to Growl"
msgstr "Send meddelelser til Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Serveradresse"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Bruges kun ved Growl fjern server (vært: port)"
@@ -4349,6 +4362,10 @@ msgstr "Brug globale grænseflade indstillinger"
msgid "Queue item limit"
msgstr "Køen elementbegrænsning"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historie Elementbegrænsning"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Datoformat"
@@ -4878,7 +4895,7 @@ msgstr "Kunne ikke omdøbe lignende fil: %s til %s"
msgid "Server name does not resolve"
msgstr "Servernavnet løser ikke"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Uautoriseret adgang"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"PO-Revision-Date: 2017-07-27 00:34+0000\n"
"Last-Translator: Tobias Bannert <tobannert@gmail.com>\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"
"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-07-27 05:55+0000\n"
"X-Generator: Launchpad (build 18439)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -457,7 +457,7 @@ msgstr "%s wurde auf keinem Server gefunden und daher übersprungen"
#: sabnzbd/directunpacker.py # sabnzbd/directunpacker.py
#: sabnzbd/directunpacker.py # sabnzbd/skintext.py
msgid "Direct Unpack"
msgstr ""
msgstr "Direkt entpacken"
#: sabnzbd/directunpacker.py # sabnzbd/skintext.py [PP status]
#: sabnzbd/skintext.py [History: job status]
@@ -470,13 +470,16 @@ msgstr "%s Datei(en)/Ordner entpackt in %s"
#: sabnzbd/directunpacker.py [Warning message]
msgid "Direct Unpack was automatically enabled."
msgstr ""
msgstr "Direkt entpacken wurde automatisch aktiviert"
#: sabnzbd/directunpacker.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Jobs will start unpacking during the downloading to reduce post-processing "
"time. Only works for jobs that do not need repair."
msgstr ""
"Aufträge werden bereits während des Download-Vorgangs entpackt, um die "
"Nachbearbeitungszeit zu verkürzen. Nur für Aufträge, die nicht repariert "
"werden müssen."
#: sabnzbd/dirscanner.py [Error message] # sabnzbd/dirscanner.py [Error message]
msgid "Error removing %s"
@@ -678,7 +681,7 @@ msgstr ""
"Authentifizierung fehlt. Bitte Benutzernamen und Passwort aus Einstellungen-"
">Allgemein in die externe Anwendung eingeben:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1039,6 +1042,11 @@ msgstr "Reparieren"
msgid "[%s] Repaired in %s"
msgstr "[%s] Repariert in %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr "Überprüfe Reparatur"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1055,10 +1063,6 @@ msgstr "Überprüfen"
msgid "Checking"
msgstr "Wird überprüft"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr "Dem Pythonskript \"%s\" fehlen die Ausführenrechte (+x)"
@@ -1072,10 +1076,13 @@ msgid ""
"Certificate hostname mismatch: the server hostname is not listed in the "
"certificate. This is a server issue."
msgstr ""
"Zertifikat ungültig: Der Server-Host ist nicht im angegeben Zertifikat "
"enthalten. Dies ist ein Serverproblem."
#: sabnzbd/newswrapper.py
msgid "Certificate not valid. This is most probably a server issue."
msgstr ""
"Zertifikat ist nicht gültig. Dies ist wahrscheinlich ein Serverproblem."
#: sabnzbd/newswrapper.py
msgid "Server %s uses an untrusted certificate [%s]"
@@ -1118,7 +1125,7 @@ msgid "Not available"
msgstr "Nicht verfügbar"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Absenden nicht möglich, benötigte Daten fehlen"
@@ -1223,6 +1230,14 @@ msgstr "Doppelte NZB"
msgid "Pausing duplicate NZB \"%s\""
msgstr "Doppelt vorhandene NZB \"%s\" angehalten"
#: sabnzbd/nzbstuff.py [Warning message]
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 "
"\"allow_duplicate_files\" um doppelte Dateinamen zu erlauben."
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Abgebrochen, kann nicht fertiggestellt werden"
@@ -1512,6 +1527,8 @@ msgid ""
"Unable to bind to port %s on %s. Some other software uses the port or "
"SABnzbd is already running."
msgstr ""
"Konnte nicht an Port %s auf %s starten. Eine andere Software nutzt diesen "
"Port oder SABnzbd läuft bereits."
#: sabnzbd/panic.py # sabnzbd/panic.py
msgid "Fatal error"
@@ -1677,6 +1694,22 @@ msgstr "Fehler beim Herunterfahren des Systems"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Indexer ID (%s) für Bewertung nicht gefunden"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Server-Adresse"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-Schlüssel"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Der Schlüssel liefert die Identität des Indexers. Prüfe dein Profil auf der "
"indexer Webseite."
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Ungültige RSS-Feed-Beschreibung \"%s\""
@@ -2647,7 +2680,7 @@ msgstr "7zip aktivieren"
#: sabnzbd/skintext.py
msgid "Multicore Par2"
msgstr ""
msgstr "Multicore Par2"
#: sabnzbd/skintext.py
msgid ""
@@ -2851,17 +2884,19 @@ msgstr ""
#: sabnzbd/skintext.py
msgid "History Retention"
msgstr ""
msgstr "Verlaufsgröße"
#: sabnzbd/skintext.py
msgid ""
"Automatically delete completed jobs from History. Beware that Duplicate "
"Detection and some external tools rely on History information."
msgstr ""
"Fertige Aufträge automatisch aus dem Verlauf entfernen. Duplikatserkennung "
"und manche externe Skripte benötigen Informationen aus dem Verlauf."
#: sabnzbd/skintext.py
msgid "Keep all jobs"
msgstr ""
msgstr "Alle Aufträge behalten"
#: sabnzbd/skintext.py
msgid "Keep maximum number of completed jobs"
@@ -2873,11 +2908,11 @@ msgstr ""
#: sabnzbd/skintext.py
msgid "Do not keep any completed jobs"
msgstr ""
msgstr "Fertige Aufträge nicht behalten"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limit der Objekte im Verlauf"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr "Aufträge"
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2907,10 +2942,6 @@ msgstr ""
"Hilf uns beim Übersetzen von SABnzbd in deiner Sprache! <br/>Neue "
"Übersetzungen hinzufügen oder bestehende verbessern kannst du hier:"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-Schlüssel"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ""
@@ -3292,6 +3323,16 @@ msgstr ""
"Manche Server stellen ein alternatives NZB zur Verfügung, falls ein Download "
"fehlschlägt."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Ordner-Umbenennung aktivieren"
@@ -3534,18 +3575,9 @@ msgstr "Indexer Integration eingeschaltet"
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Der Schlüssel liefert die Identität des Indexers. Prüfe dein Profil auf der "
"indexer Webseite."
#: sabnzbd/skintext.py
msgid "Enable Filtering"
msgstr "Filter aktivieren"
@@ -3680,7 +3712,7 @@ msgstr "Optional"
#: sabnzbd/skintext.py [Explain server optional tickbox]
msgid "For unreliable servers, will be ignored longer in case of failures"
msgstr ""
msgstr "Für unzuverlässige Server, wird bei Fehlern länger ignoriert"
#: sabnzbd/skintext.py [Enable server tickbox]
msgid "Enable"
@@ -3902,10 +3934,6 @@ msgstr "Growl aktivieren"
msgid "Send notifications to Growl"
msgstr "Benachrichtigungen an Growl senden"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Server-Adresse"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Nur für entfernten Growl-Server verwenden (Rechnername:Port)"
@@ -4426,6 +4454,10 @@ msgstr "die globalen Interface-Einstellungen verwenden"
msgid "Queue item limit"
msgstr "Limit der Objekte in der Warteschlange"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limit der Objekte im Verlauf"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Datumsformat"
@@ -4957,7 +4989,7 @@ msgstr "Umbenennen der gleichen Datei von %s nach %s fehlgeschlagen."
msgid "Server name does not resolve"
msgstr "Konnte Servernamen nicht auflösen"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Unerlaubter Zugriff"

View File

@@ -105,3 +105,11 @@ 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 "User script can flag job as failed"
msgstr "Post-processing script can flag job as failed"
msgid "When the user script returns a non-zero exit code, the job will be flagged as failed."
msgstr "When the post-processing script returns a non-zero exit code, the job will be flagged as failed."

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:54+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -658,7 +658,7 @@ msgstr ""
"Faltaron datos de cuenta, favor ingresar usuario/contraseña desde Config-"
">General en tu aplicacion externa:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1020,6 +1020,11 @@ msgstr "Reparando"
msgid "[%s] Repaired in %s"
msgstr "[%s] Reparado en %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1036,10 +1041,6 @@ msgstr "Verificando"
msgid "Checking"
msgstr "Verificando"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1099,7 +1100,7 @@ msgid "Not available"
msgstr "No disponible"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "No se ha podido enviar, faltan datos"
@@ -1202,6 +1203,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Pausando NZB duplicados \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Abortado, No puede ser completado"
@@ -1651,6 +1658,20 @@ msgstr ""
"Identificación del indexador (%s) no encontrado para archivo de "
"calificaciones"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Dirección del Servidor"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Clave API"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "iaDescripción de canal RSS incorrecta \"%s\""
@@ -2840,9 +2861,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Límite del historial"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2872,10 +2893,6 @@ msgstr ""
"¡Ayúdanos a traducir SABnzbd en tu idioma!<br/>Traduce textos que aun no "
"tienen ninguna traducción o mejora los que ya lo están traducidos aquí:"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Clave API"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ""
@@ -3245,6 +3262,16 @@ msgid "Some servers provide an alternative NZB when a download fails."
msgstr ""
"Algunos servidores ofrecen una NZB alternativa cuando falla una descarga ."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Habilitar renombrado de directorios"
@@ -3480,14 +3507,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3846,10 +3866,6 @@ msgstr "Habilitar Growl"
msgid "Send notifications to Growl"
msgstr "Enviar notificaciones a Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Dirección del Servidor"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Usar sólo para un servidor Growl remoto (servidor:puerto)"
@@ -4370,6 +4386,10 @@ msgstr "Usar ajustes de la interfaz global"
msgid "Queue item limit"
msgstr "Límite de elementos encolables"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Límite del historial"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Formato de fecha"
@@ -4900,7 +4920,7 @@ msgstr "Error al renombrar ficheros similares: %s a %s"
msgid "Server name does not resolve"
msgstr "No se puede resolver el nombre de servidor"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Acceso no autorizado"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:10+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -655,7 +655,7 @@ msgstr ""
"Authentikointi puuttuu, ole hyvä ja syötä käyttäjänimi/salasana Asetukset-"
">Yleiset kolmannen osapuolen ohjelmaasi:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1010,6 +1010,11 @@ msgstr "Korjataan"
msgid "[%s] Repaired in %s"
msgstr "[%s] Korjattiin ajassa %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1026,10 +1031,6 @@ msgstr "Varmennetaan"
msgid "Checking"
msgstr "Tarkistetaan"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1089,7 +1090,7 @@ msgid "Not available"
msgstr "Ei saatavilla"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Ei voida lähettää, vaaditut tiedot ovat puutteelliset"
@@ -1191,6 +1192,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Keskeytetään kaksoiskappale NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Peruutettu, ei voi valmistua"
@@ -1636,6 +1643,20 @@ msgstr "Virhe sammutettaessa järjestelmää"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Indeksoijan id:tä (%s) ei löydetty arviointitiedostolle"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Palvelimen osoite"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API avain"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Virheellinen RSS syötteen kuvaus \"%s\""
@@ -2830,9 +2851,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historian pituusrajoitus"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2862,10 +2883,6 @@ msgstr ""
"Auta meitä kääntämään SABnzbd sinun kielellesi!<br/>Käännä tai muokkaa "
"olemassaolevia käännöksiä täällä:"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API avain"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ""
@@ -3238,6 +3255,16 @@ msgid "Some servers provide an alternative NZB when a download fails."
msgstr ""
"Jotkin palvelimet tarjoavat vaihtoehtoisen NZB:n kun lataus epäonnistuu."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Kansion uudelleennimeäminen käytössä"
@@ -3468,14 +3495,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3831,10 +3851,6 @@ msgstr "Growl käytössä"
msgid "Send notifications to Growl"
msgstr "Lähetä ilmoitukset Growliin"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Palvelimen osoite"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Käytä vain Growl etäpalvelimelle (isäntä:portti)"
@@ -4361,6 +4377,10 @@ msgstr "Käytä yleisiä käyttöliittymän asetuksia"
msgid "Queue item limit"
msgstr "Jonon pituusrajoitus"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historian pituusrajoitus"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Päivämäärän muoto"
@@ -4891,7 +4911,7 @@ msgstr "Samankaltaisen tiedoston uudelleennimeäminen epäonnistui: %s %s"
msgid "Server name does not resolve"
msgstr "Palvelimen osoitetta ei voitu selvittää"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Luvaton käyttö"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"PO-Revision-Date: 2017-07-24 20:58+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
"PO-Revision-Date: 2017-08-07 18:53+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-07-25 06:10+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-08 05:33+0000\n"
"X-Generator: Launchpad (build 18446)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -684,7 +684,7 @@ msgstr ""
"Authentification manquante, entrez vos identifiant/mot de passe de la "
"configuration générale dans votre application tierce :"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1048,6 +1048,11 @@ msgstr "Réparation en cours"
msgid "[%s] Repaired in %s"
msgstr "[%s] Réparé(s) dans %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr "Vérification de la réparation"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1064,10 +1069,6 @@ msgstr "Vérification en cours"
msgid "Checking"
msgstr "Vérification"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr "Vérification de la réparation"
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1132,7 +1133,7 @@ msgid "Not available"
msgstr "Non disponible"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Impossible d'envoyer, données requises manquantes"
@@ -1234,6 +1235,14 @@ msgstr "Dupliquer NZB"
msgid "Pausing duplicate NZB \"%s\""
msgstr "Mise en pause du doublon NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
"%d fichiers avec des noms en double ont été rejetés pour \"%s\". Cochez "
"\"allow_duplicate_files\" pour autoriser les noms de fichiers en double."
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Interrompu, ne peut être achevé"
@@ -1690,6 +1699,22 @@ msgstr "Erreur lors de l'arrêt du système"
msgid "Indexer id (%s) not found for ratings file"
msgstr "id de l'Indexer (%s) non trouvé pour le fichier des classements"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Adresse du serveur"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Clé API"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Cette clé fournit l'identité à l'indexeur. Vérifiez votre profil sur le site "
"web de l'indexeur."
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Description du flux RSS incorrecte \"%s\""
@@ -2894,9 +2919,9 @@ msgstr "Durée maximale d'historisation des tâches complétées"
msgid "Do not keep any completed jobs"
msgstr "Ne conserver aucune tâche terminée"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limite des éléments historisés"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr "Tâches"
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2926,10 +2951,6 @@ msgstr ""
"Aidez-nous à traduire SABnzbd dans votre langue ! <br/>Améliorez les "
"traductions existantes ou ajoutez celles qui manquent ici :"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Clé API"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ""
@@ -3313,6 +3334,19 @@ msgstr ""
"Certains serveurs proposent un NZB alternatif lorsqu'un téléchargement "
"échoue."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr "Utiliser les tags de l'indexeur"
#: 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 ""
"Lors du tri, utiliser les tags de l'indexeur pour le titre, la saison, "
"l'episode, etc. Sinon, toutes les dénominations seront dérivées du fichier "
"NZB."
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Activer le renommage du dossier"
@@ -3551,21 +3585,11 @@ msgstr "Activer l'intégration de l'indexeur"
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
"report to the indexer if a job couldn't be completed."
msgstr ""
"Les indexeurs peuvent fournir des informations de notation lorsqu'une tâche "
"est ajoutée, et SABnzbd peut signaler à l'indexeur si une tâche n'a pu être "
"terminée. Le paramètre de clé API peut être laissé vide en fonction de votre "
"indexeur."
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Cette clé fournit l'identité à l'indexeur. Vérifiez votre profil sur le site "
"web de l'indexeur."
"est ajoutée, et SABnzbd peut signaler à l'indexeur si une tâche n'a pas pu "
"être terminée."
#: sabnzbd/skintext.py
msgid "Enable Filtering"
@@ -3927,10 +3951,6 @@ msgstr "Activer Growl"
msgid "Send notifications to Growl"
msgstr "Envoie les notifications à Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Adresse du serveur"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Utiliser seulement pour le serveur Growl à distance (hôte:port)"
@@ -4459,6 +4479,10 @@ msgstr "Utiliser les paramètres globaux de l'interface"
msgid "Queue item limit"
msgstr "Limite des éléments de la file d'attente"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limite des éléments historisés"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Format de la date"
@@ -4992,7 +5016,7 @@ msgstr "Impossible de renommer le fichier similaire : %s en %s"
msgid "Server name does not resolve"
msgstr "Resolution du nom de serveur impossible"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Accès non autorisé"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"PO-Revision-Date: 2017-07-18 20:20+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
"PO-Revision-Date: 2017-08-06 21:05+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -648,7 +648,7 @@ msgstr ""
":אימות חסר, אנא הכנס שם משתמש/סיסמה מתוך תצורה->כללי לתוך תכנית הצד השלישי "
"שלך"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1000,6 +1000,11 @@ msgstr "מתקן"
msgid "[%s] Repaired in %s"
msgstr "%s-תוקן ב [%s]"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr "מוודא תיקון"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1016,10 +1021,6 @@ msgstr "מוודא"
msgid "Checking"
msgstr "בודק"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr "מוודא תיקון"
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr "(+x) אין ערכת הרשאות ביצוע \"%s\" לתסריט פייתון"
@@ -1081,7 +1082,7 @@ msgid "Not available"
msgstr "לא זמין"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "לא ניתן לשלוח, נתונים דרושים חסרים"
@@ -1181,6 +1182,14 @@ msgstr "NZB שכפל"
msgid "Pausing duplicate NZB \"%s\""
msgstr "\"%s\" NZB משהה שכפול"
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
".כדי להתיר שמות כפולים של קבצים \"allow_duplicate_files\" אפשר את .\"%s\" "
"הושלכו %d קבצים עם שמות כפולים עבור"
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "בוטל, לא יכול להיות שלם"
@@ -1607,7 +1616,7 @@ msgstr "נכשלו בוידוא RAR קבצי"
#: sabnzbd/postproc.py [Error message] # sabnzbd/postproc.py [Error message]
msgid "Removing %s failed"
msgstr "הסרת %s נכשלה"
msgstr "נכשלה %s הסרת"
#: sabnzbd/powersup.py [Error message]
msgid "Failed to hibernate system"
@@ -1625,6 +1634,20 @@ msgstr "שגיאה בזמן כיבוי מערכת"
msgid "Indexer id (%s) not found for ratings file"
msgstr "לא נמצאה עבור קובץ מידרגים (%s) זהות מדדן"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "כתובת שרת"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API מפתח"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ".מפתח זה מספק זהות למדדן. בדוק את המתאר שלך באתר של המדדן"
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "\"%s\" לא נכון RSS תיאור הזנת"
@@ -1801,7 +1824,7 @@ msgstr "RSS קרא הזנות"
#: sabnzbd/skintext.py [Config->Scheduler]
msgid "Remove failed jobs"
msgstr "הסר עבודות כושלות"
msgstr "הסר עבודות נכשלות"
#: sabnzbd/skintext.py [Config->Scheduler]
msgid "Remove completed jobs"
@@ -1921,51 +1944,51 @@ msgstr "שנה"
#: sabnzbd/skintext.py
msgid "January"
msgstr ""
msgstr "ינואר"
#: sabnzbd/skintext.py
msgid "February"
msgstr ""
msgstr "פברואר"
#: sabnzbd/skintext.py
msgid "March"
msgstr ""
msgstr "מרץ"
#: sabnzbd/skintext.py
msgid "April"
msgstr ""
msgstr "אפריל"
#: sabnzbd/skintext.py
msgid "May"
msgstr ""
msgstr "מאי"
#: sabnzbd/skintext.py
msgid "June"
msgstr ""
msgstr "יוני"
#: sabnzbd/skintext.py
msgid "July"
msgstr ""
msgstr "יולי"
#: sabnzbd/skintext.py
msgid "August"
msgstr ""
msgstr "אוגוסט"
#: sabnzbd/skintext.py
msgid "September"
msgstr ""
msgstr "ספטמבר"
#: sabnzbd/skintext.py
msgid "October"
msgstr ""
msgstr "אוקטובר"
#: sabnzbd/skintext.py
msgid "November"
msgstr ""
msgstr "נובמבר"
#: sabnzbd/skintext.py
msgid "December"
msgstr ""
msgstr "דצמבר"
#: sabnzbd/skintext.py
msgid "Day of month"
@@ -2306,15 +2329,15 @@ msgstr "ומחק קבצים NZB טהר"
#: sabnzbd/skintext.py [Retry all failed jobs dialog box]
msgid "Retry all failed jobs"
msgstr "נסה שוב את כל העבודות שנכשלו"
msgstr "נסה שוב את כל העבודות הנכשלות"
#: sabnzbd/skintext.py [Queue page button]
msgid "Remove NZB"
msgstr "הסר NZB"
msgstr "NZB הסר"
#: sabnzbd/skintext.py [Queue page button] # sabnzbd/skintext.py
msgid "Remove NZB & Delete Files"
msgstr "הסר NZB ומחק קבצים"
msgstr "ומחק קבצים NZB הסר"
#: sabnzbd/skintext.py [Queue page, as in "4G *of* 10G"]
msgid "of"
@@ -2362,11 +2385,11 @@ msgstr "גודל"
#: sabnzbd/skintext.py [Button to delete all failed jobs in History]
msgid "Purge Failed NZBs"
msgstr "שנכשלו NZB טהר"
msgstr "נכשלים NZB טהר"
#: sabnzbd/skintext.py [Button to delete all failed jobs in History, including files]
msgid "Purge Failed NZBs & Delete Files"
msgstr "שנכשלו ומחק קבצים NZB טהר"
msgstr "נכשלים ומחק קבצים NZB טהר"
#: sabnzbd/skintext.py [Button to delete all completed jobs in History]
msgid "Purge Completed NZBs"
@@ -2783,33 +2806,35 @@ msgstr ""
#: sabnzbd/skintext.py
msgid "History Retention"
msgstr ""
msgstr "שימור היסטוריה"
#: sabnzbd/skintext.py
msgid ""
"Automatically delete completed jobs from History. Beware that Duplicate "
"Detection and some external tools rely on History information."
msgstr ""
".מחק באופן אוטומטי עבודות שלמות מההיסטוריה. שים לב ששימור כפול ומספר כלים "
"חיצוניים מסתמכים על מידע היסטוריה"
#: sabnzbd/skintext.py
msgid "Keep all jobs"
msgstr ""
msgstr "שמור את כל העבודות"
#: sabnzbd/skintext.py
msgid "Keep maximum number of completed jobs"
msgstr ""
msgstr "שמור מספר מרבי של עבודות שלמות"
#: sabnzbd/skintext.py
msgid "Keep completed jobs maximum number of days"
msgstr ""
msgstr "שמור מספר ימים מרבי של עבודות שלמות"
#: sabnzbd/skintext.py
msgid "Do not keep any completed jobs"
msgstr ""
msgstr "אל תשמור עבודות שלמות כלשהן"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "מגבלת פריטי היסטוריה"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr "עבודות"
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2839,10 +2864,6 @@ msgstr ""
"!לעברית SABnzbd עזור לנו לתרגם את<br/>הוסף מלל לא מתורגם או שפר תרגומים "
"קיימים כאן:"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API מפתח"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ".SABnzbd מפתח זה יתן לתכניות צד שלישי גישה מלאה אל"
@@ -3147,7 +3168,7 @@ msgstr "הכשל עבודה (העבר להיסטוריה)"
#: sabnzbd/skintext.py [Four way switch for duplicates]
msgid "Tag job"
msgstr ""
msgstr "הצמד תג לעבודה"
#: sabnzbd/skintext.py [Three way switch for encrypted posts]
msgid "Abort"
@@ -3198,6 +3219,18 @@ msgstr "חלופי NZB בכישלון, נסה"
msgid "Some servers provide an alternative NZB when a download fails."
msgstr ".חלופי כאשר הורדת נכשלת NZB מספר שרתים מספקים"
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr "השתמש בתגים ממדדן"
#: 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 ""
".NZB-בעת מיון, השתמש בתגים ממדדן עבור כותרת, עונה, פרק וכדומה. אחרת כל מתן "
"השמות נגזר משם ה"
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "אפשר שינוי שם תיקייה"
@@ -3421,18 +3454,10 @@ msgstr "אפשר מיזוג מדדן"
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
"report to the indexer if a job couldn't be completed."
msgstr ""
".יכול לדווח למדדן במקרה שעבודה לא יכלה להיות מושלמת SABnzbd-מדדנים יכולים "
"לספק מידע מידרג כאשר עבודה מתווספת ו\r\n"
".שלך יכולה להישאר ריקה API-תלוי במדדן שלך, קביעת מפתח ה"
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ".מפתח זה מספק זהות למדדן. בדוק את המתאר שלך באתר של המדדן"
"יכול לדווח למדדן במקרה שעבודה לא יכלה להישלם SABnzbd-מדדנים יכולים לספק מידע "
"מידרג כאשר עבודה מתווספת ו"
#: sabnzbd/skintext.py
msgid "Enable Filtering"
@@ -3786,10 +3811,6 @@ msgstr "Growl אפשר"
msgid "Send notifications to Growl"
msgstr "Growl שלח התראות אל"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "כתובת שרת"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "מרוחק (מארח:פתחה) Growl השתמש רק עבור שרת"
@@ -4311,6 +4332,10 @@ msgstr "השתמש בקביעות ממשק עולמיות"
msgid "Queue item limit"
msgstr "מגבלת פריטי תור"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "מגבלת פריטי היסטוריה"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "תסדיר תאריך"
@@ -4337,7 +4362,7 @@ msgstr "מאמרים"
#: sabnzbd/skintext.py
msgid "Rename"
msgstr ""
msgstr "שנה שם"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "Queue repair"
@@ -4569,7 +4594,7 @@ msgstr "?לטהר את התור"
#: sabnzbd/skintext.py
msgid "Retry all failed jobs in History?"
msgstr "לנסות שוב את כל העבודות שנכשלו בהיסטוריה?"
msgstr "לנסות שוב את כל העבודות הנכשלות בהיסטוריה?"
#: sabnzbd/skintext.py
msgid "Purge"
@@ -4647,7 +4672,7 @@ msgstr "מחק שלמים"
#: sabnzbd/skintext.py
msgid "Delete the all failed items from the history?"
msgstr "למחוק את כל הפריטים שנכשלו מההיסטוריה?"
msgstr "למחוק את כל הפריטים הנכשלים מההיסטוריה?"
#: sabnzbd/skintext.py
msgid "Delete Failed"
@@ -4655,7 +4680,7 @@ msgstr "מחק נכשלים"
#: sabnzbd/skintext.py
msgid "Retry all failed jobs?"
msgstr "לנסות שוב את העבודות שנכשלו?"
msgstr "לנסות שוב את העבודות הנכשלות?"
#: sabnzbd/skintext.py
msgid "Links"
@@ -4836,7 +4861,7 @@ msgstr "%s אל %s :נכשל בשינוי שם של קובץ דומה"
msgid "Server name does not resolve"
msgstr "שם השרת אינו פותר"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "גישה בלתי מורשת"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -651,7 +651,7 @@ msgstr ""
"Autentisering mangler, angi brukernavn/passord fra Konfigurasjon->Generelt i "
"ditt tredjepartsprogram:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1006,6 +1006,11 @@ msgstr "Reparerer"
msgid "[%s] Repaired in %s"
msgstr "[%s] Reparert på %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1022,10 +1027,6 @@ msgstr "Verifiserer"
msgid "Checking"
msgstr "Undersøker"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1085,7 +1086,7 @@ msgid "Not available"
msgstr "Ikke tilgjengelig"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Kan ikke sendes, mangler nødvendig data"
@@ -1185,6 +1186,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Stanser duplikatfil \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Avbrutt, kan ikke fullføres"
@@ -1628,6 +1635,20 @@ msgstr "Feil under avslutting av systemet"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Fant ikke indekser id (%s) for rangeringsfil."
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Tjeneradresse"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-nøkkel"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Feilaktig RSS-kilde beskrivelse \"%s\""
@@ -2812,9 +2833,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historikk-grense"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2842,10 +2863,6 @@ msgid ""
"improved existing translations here:"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-nøkkel"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "Denne nøkkelen vil gi tredjepartsprogrammer full tilgang til SABnzbd"
@@ -3207,6 +3224,16 @@ msgstr "Når den feiler, prøv alternativ NZB-fil"
msgid "Some servers provide an alternative NZB when a download fails."
msgstr "Noen servere vil gi en alternativ NZB når en nedlasting mislykkes."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Aktiver omdøping av mappe"
@@ -3432,14 +3459,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3791,10 +3811,6 @@ msgstr "Aktiver Growl"
msgid "Send notifications to Growl"
msgstr "Send varsler til Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Tjeneradresse"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Brukes kun for fjerntliggende Growl tjener (vert:port)"
@@ -4316,6 +4332,10 @@ msgstr "Bruk globale grensesnittinnstillinger"
msgid "Queue item limit"
msgstr "Kø-grense"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historikk-grense"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Datoformat"
@@ -4842,7 +4862,7 @@ msgstr "Kunne ikke endre navn på lik fil: %s til %s"
msgid "Server name does not resolve"
msgstr "Kunne ikke finne servernavn"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Uautorisert tilgang"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"PO-Revision-Date: 2017-07-25 11:01+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+0000\n"
"PO-Revision-Date: 2017-07-27 19:33+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
"Language-Team: Dutch <nl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2017-07-26 05:37+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -673,7 +673,7 @@ msgstr ""
"Autenticatie ontbreekt; vul gebruikersnaam en wachtwoord van 'Configuratie' "
"=> 'Algemeen' in bij het externe programma:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1028,6 +1028,11 @@ msgstr "Repareren"
msgid "[%s] Repaired in %s"
msgstr "[%s] Reparatie in %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr "Reparatie controleren"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1044,10 +1049,6 @@ msgstr "Verifiëren"
msgid "Checking"
msgstr "Controleren"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr "Reparatie controleren"
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr "Python-script '%s' heeft geen uitvoerpermissie (+x)"
@@ -1110,7 +1111,7 @@ msgid "Not available"
msgstr "Niet beschikbaar"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Versturen kan niet, vereiste gegevens ontbreken"
@@ -1210,6 +1211,12 @@ msgstr "Dubbele NZB"
msgid "Pausing duplicate NZB \"%s\""
msgstr "Pauzeer dubbele NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Afgebroken, kan niet voltooid worden"
@@ -1658,6 +1665,22 @@ msgstr "Fout bij het afsluiten van het systeem"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Indexer id (%s) niet gevonden in het bestand met beoordelingen"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Server adres"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-sleutel"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Deze sleutel is voor je identificatie door de indexer. Kijk in je profiel op "
"de website van de indexer."
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Foutieve RSS-feed definitie \"%s\""
@@ -1838,7 +1861,7 @@ msgstr "Verwijder mislukte opdrachten"
#: sabnzbd/skintext.py [Config->Scheduler]
msgid "Remove completed jobs"
msgstr "Verwijder afgehandelde taken"
msgstr "Verwijder voltooide opdrachten"
#: sabnzbd/skintext.py [Config->Scheduler]
msgid "Pause low prioirty jobs"
@@ -2857,9 +2880,9 @@ msgstr "Behoud voltooide downloads maximaal aantal dagen"
msgid "Do not keep any completed jobs"
msgstr "Behoud geen enkele download"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Items in geschiedenis"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr "Downloads"
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2889,10 +2912,6 @@ msgstr ""
"Help ons om SABnzbd in jouw taal te vertalen! <br/>Met nieuwe vertalingen of "
"verbeteringen kun je hier terecht:"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-sleutel"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ""
@@ -3260,6 +3279,19 @@ msgid "Some servers provide an alternative NZB when a download fails."
msgstr ""
"Sommige indexers hebben een alternatieve NZB wanneer een download mislukt"
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr "Gebruik indexer informatie"
#: 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 ""
"Maak tijdens het sorteren gebruik van informatie van de indexer zoals titel, "
"seizoen, aflevering, enz. Anders wordt alle informatie uit de naam van de "
"download gehaald."
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Gebruik tijdelijke mapnamen"
@@ -3493,20 +3525,11 @@ msgstr "Sta integratie met index websites toe"
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
"report to the indexer if a job couldn't be completed."
msgstr ""
"Indexers kunnen waarderingsinformatie leveren wanneer een NZB wordt "
"opgehaald. SABnzbd kan mislukte downloads aanmelden bij de indexer. Sommige "
"indexers hebben een API sleutel nodig."
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
"Deze sleutel is voor je identificatie door de indexer. Kijk in je profiel op "
"de website van de indexer."
"Indexers kunnen beoordelingen meesturen wanneer een opdracht wordt "
"toegevoegd en SABnzbd kan de indexer informeren wanneer een download niet "
"slaagt."
#: sabnzbd/skintext.py
msgid "Enable Filtering"
@@ -3868,10 +3891,6 @@ msgstr "Growl meldingen activeren"
msgid "Send notifications to Growl"
msgstr "Zend meldingen naar Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Server adres"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr ""
@@ -4398,6 +4417,10 @@ msgstr "Instellen voor alle sessies"
msgid "Queue item limit"
msgstr "Items in wachtrij"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Items in geschiedenis"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Datumnotatie"
@@ -4926,7 +4949,7 @@ msgstr "Hernoemen van gelijkaardig bestand %s naar %s mislukt"
msgid "Server name does not resolve"
msgstr "Servernaam niet te vinden"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Geen toegangsrechten"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -653,7 +653,7 @@ msgstr ""
"Brak danych uwierzytelniających, wprowadź nazwę użytkownika/hasło z sekcji "
"Konfiguracja->Ogólne do zewnętrznego programu:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1011,6 +1011,11 @@ msgstr "Naprawianie"
msgid "[%s] Repaired in %s"
msgstr "[%s] Naprawiono w %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1027,10 +1032,6 @@ msgstr "Weryfikowanie"
msgid "Checking"
msgstr "Sprawdzanie"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1090,7 +1091,7 @@ msgid "Not available"
msgstr "Niedostępne"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Nie można wysłać wiadomości, brak wymaganych danych"
@@ -1192,6 +1193,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Wstrzymuję zduplikowany NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Przerwano, nie można ukończyć"
@@ -1636,6 +1643,20 @@ msgstr "Wyłączenie systemu nie powiodło się"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Identyfikator indeksera (%s) nie został znaleziony w pliku ocen"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Adres serwera"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Klucz API"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Nieprawidłowy opis kanału RSS \"%s\""
@@ -2821,9 +2842,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limit wyświetlanych pozycji historii"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2851,10 +2872,6 @@ msgid ""
"improved existing translations here:"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Klucz API"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "Ten klucz umożliwi innym programom dostęp do SABnzbd"
@@ -3222,6 +3239,16 @@ msgstr ""
"Niektóre serwery udostępniają alternatywne NZB, kiedy pobieranie kończy się "
"niepowodzeniem"
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Włącz zmianę nazw katalogów"
@@ -3450,14 +3477,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3809,10 +3829,6 @@ msgstr "Włącz Growl"
msgid "Send notifications to Growl"
msgstr "Wysyłaj powiadomienia Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Adres serwera"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Tylko dla zdalnych serwerów Growl (host:port)"
@@ -4334,6 +4350,10 @@ msgstr "Użyj globalnych ustawień interfejsu"
msgid "Queue item limit"
msgstr "Limit wyświetlanych pozycji kolejki"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limit wyświetlanych pozycji historii"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Format daty"
@@ -4859,7 +4879,7 @@ msgstr "Nie udało się zmienić nazwy podobnego pliku %s na %s"
msgid "Server name does not resolve"
msgstr "Nie udało się rozwiązać nazwy serwera"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Dostęp zabroniony"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:54+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -654,7 +654,7 @@ msgstr ""
"Autenticação faltando. Por favor insira usuário/senha de Configuração->Geral "
"em seu programa de terceiros:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1008,6 +1008,11 @@ msgstr "Reparando"
msgid "[%s] Repaired in %s"
msgstr "[%s] Reparado em %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1024,10 +1029,6 @@ msgstr "Verificando"
msgid "Checking"
msgstr "Verificando"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1087,7 +1088,7 @@ msgid "Not available"
msgstr "Não disponível"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Não foi possível enviar, faltam dados obrigatórios"
@@ -1189,6 +1190,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Pausando NZB duplicado \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Cancelado, não é possível concluir"
@@ -1634,6 +1641,20 @@ msgstr "Erro ao desligar o sistema"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Indexador id (%s) não foi encontrador para avaliar arquivos"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Endereço do servidor"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Chave API"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Descrição de feed RSS incorreta \"%s\""
@@ -2820,9 +2841,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limite de itens no histórico"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2850,10 +2871,6 @@ msgid ""
"improved existing translations here:"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Chave API"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "Esta chave dará a programas de terceiros pleno acesso ao SABnzbd."
@@ -3220,6 +3237,16 @@ msgid "Some servers provide an alternative NZB when a download fails."
msgstr ""
"Alguns servidores fornecem um NZB alternativo quando um download falha."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Habilitar renomeação de pasta"
@@ -3447,14 +3474,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3807,10 +3827,6 @@ msgstr "Habilitar Growl"
msgid "Send notifications to Growl"
msgstr "Enviar notificações ao Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Endereço do servidor"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Utilize apenas para servidor remoto Growl (host: porta)"
@@ -4332,6 +4348,10 @@ msgstr "Usar configurações globais de interface"
msgid "Queue item limit"
msgstr "Limite de itens na fila"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limite de itens no histórico"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Formato da data"
@@ -4859,7 +4879,7 @@ msgstr "Falha ao renomear arquivo similar: %s para %s"
msgid "Server name does not resolve"
msgstr "Nome de servidor não encontrado"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Acesso não autorizado"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:53+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -656,7 +656,7 @@ msgstr ""
"Autentificare lipsă, vă rugăm să introduceţi numele de utilizator/parola de "
"la Configurare->General în programul dumneavoastră terţ:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1012,6 +1012,11 @@ msgstr "Se repară"
msgid "[%s] Repaired in %s"
msgstr "[%s] Reparat în %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1028,10 +1033,6 @@ msgstr "Se verifică"
msgid "Checking"
msgstr "Se verifică"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1091,7 +1092,7 @@ msgid "Not available"
msgstr "Indisponibil"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Nu pot trimite, informații necesare lipsă"
@@ -1194,6 +1195,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Întrerupem duplicat NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Anulat nu poate fi finalizat"
@@ -1640,6 +1647,20 @@ msgstr "Eroare la oprirea sistemului"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Id-ul indexului (%s) nu a fost găsit pentru fișierul de rating"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Adresă server"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Cheie API"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Descriere flux RSS incorectă \"%s\""
@@ -2825,9 +2846,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limită maximă la Istoric"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2855,10 +2876,6 @@ msgid ""
"improved existing translations here:"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Cheie API"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "Această cheie va oferi programelor terţe acces deplin la SABnzbd."
@@ -3219,6 +3236,16 @@ msgstr "La eroare, încearcă NZB alternativ"
msgid "Some servers provide an alternative NZB when a download fails."
msgstr "Unele server oferă o alternativă dacă un NZB eșuează."
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Activează redenumire dosar"
@@ -3449,14 +3476,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3812,10 +3832,6 @@ msgstr "Activează Growl"
msgid "Send notifications to Growl"
msgstr "Trimite notificări Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Adresă server"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Foloseşte doar pentru server Growl de la distanţă (gazdă:port)"
@@ -4335,6 +4351,10 @@ msgstr "Folosește setările globale de interfață"
msgid "Queue item limit"
msgstr "Limită maximă la coadă"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limită maximă la Istoric"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Format dată"
@@ -4865,7 +4885,7 @@ msgstr "Redenumire fişiere similare : %s în %s nereuşită"
msgid "Server name does not resolve"
msgstr "Numele de server nu se rezolvă la DNS"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Acces neautorizat"

View File

@@ -2,15 +2,15 @@ msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-0.7.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:54+0000\n"
"X-Generator: Launchpad (build 18441)\n"
"Generated-By: pygettext.py 1.5\n"
#: SABnzbd.py [Error message]
@@ -646,7 +646,7 @@ msgstr ""
"Отсутствуют учётные данные. Введите в сторонней программе имя пользователя и "
"пароль из раздела «Настройка -> Общие»:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1000,6 +1000,11 @@ msgstr "Исправление"
msgid "[%s] Repaired in %s"
msgstr "[%s] Исправлено за %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1016,10 +1021,6 @@ msgstr "Проверка"
msgid "Checking"
msgstr "Проверка"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1079,7 +1080,7 @@ msgid "Not available"
msgstr ""
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr ""
@@ -1179,6 +1180,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Приостановлен повторяющийся NZB-файл «%s»"
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr ""
@@ -1626,6 +1633,20 @@ msgstr "Не удалось завершить работу системы"
msgid "Indexer id (%s) not found for ratings file"
msgstr ""
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Адрес сервера"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Ключ API"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Неправильное описание RSS-ленты «%s»"
@@ -2807,8 +2828,8 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2837,10 +2858,6 @@ msgid ""
"improved existing translations here:"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "Ключ API"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr ""
@@ -3198,6 +3215,16 @@ msgstr ""
msgid "Some servers provide an alternative NZB when a download fails."
msgstr ""
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Переименовывать папки"
@@ -3424,14 +3451,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3790,10 +3810,6 @@ msgstr "Использовать Growl"
msgid "Send notifications to Growl"
msgstr "Отправлять уведомления в Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Адрес сервера"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Используется только для удалённого сервера Growl (адрес:порт)"
@@ -4313,6 +4329,10 @@ msgstr ""
msgid "Queue item limit"
msgstr ""
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr ""
#: sabnzbd/skintext.py
msgid "Date format"
msgstr ""
@@ -4842,7 +4862,7 @@ msgstr "Не удалось переименовать похожий файл:
msgid "Server name does not resolve"
msgstr ""
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr ""

View File

@@ -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-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:54+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -646,7 +646,7 @@ msgstr ""
"Недостаје аутентификација, унети у спољни програм име/лозинку из Подешавања-"
">Опште:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1001,6 +1001,11 @@ msgstr "Поправљање"
msgid "[%s] Repaired in %s"
msgstr "[%s] Поправљено за %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1017,10 +1022,6 @@ msgstr "Проверавање"
msgid "Checking"
msgstr "Провера"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1080,7 +1081,7 @@ msgid "Not available"
msgstr "Недоступно"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Nemoguće poslati, nedostaju obavezni podaci"
@@ -1180,6 +1181,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Паузирам због дуплог NZB-а \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Поништено, не може да се заврши"
@@ -1620,6 +1627,20 @@ msgstr "Greška pri gašenju sistema"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Indekser id (%s) nije pronađen za datoteku ocenjivanja"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Адреса сервера"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API кључ"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Погрешан опис RSS фида \"%s\""
@@ -2799,9 +2820,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limit stavki u istoriji"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2829,10 +2850,6 @@ msgid ""
"improved existing translations here:"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API кључ"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "Овај кључ допушта пун приступ SABnzbd-а другим програмима."
@@ -3194,6 +3211,16 @@ msgstr "U slučaju neuspeha, pokušaj sa alternativnim NZB-om"
msgid "Some servers provide an alternative NZB when a download fails."
msgstr "Neki serveri nude alternativni NZB pri neuspešnom preuzimanju"
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Упали преименовање фасцикле"
@@ -3418,14 +3445,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3776,10 +3796,6 @@ msgstr "Упали „Growl“"
msgid "Send notifications to Growl"
msgstr "Пошаљи обавештења у „Growl“"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Адреса сервера"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Користи само удаљен „Growl“ сервер (хост:порт)"
@@ -4300,6 +4316,10 @@ msgstr "Koristi globalna podešavanja interfejsa"
msgid "Queue item limit"
msgstr "Limit stavku u redu"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Limit stavki u istoriji"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Формат датума"
@@ -4825,7 +4845,7 @@ msgstr "Неуспешно преименовање сличне датотек
msgid "Server name does not resolve"
msgstr "Ime servera se ne može odrediti"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Neautorizovan pristup"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:54+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -649,7 +649,7 @@ msgstr ""
"Autentisering saknas, ange användarnamn / lösenord från Konfiguration-> "
"Allmänt i ditt tredjepartsprogram:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -1006,6 +1006,11 @@ msgstr "Reparerar"
msgid "[%s] Repaired in %s"
msgstr "[%s] Reparerad i %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1022,10 +1027,6 @@ msgstr "Verifierar"
msgid "Checking"
msgstr "Kontrollerar"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr ""
@@ -1085,7 +1086,7 @@ msgid "Not available"
msgstr "Ej tillgänglig"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "Kunde inte skicka, saknar nödvändig data"
@@ -1185,6 +1186,12 @@ msgstr ""
msgid "Pausing duplicate NZB \"%s\""
msgstr "Pausar dubblett för NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "Avbrutet, kan inte slutföras"
@@ -1631,6 +1638,20 @@ msgstr "Fel uppstod då systemet skulle stängas"
msgid "Indexer id (%s) not found for ratings file"
msgstr "Index id (%s) inte hittad för betygsfil"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Serveradress"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-nyckel"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr ""
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "Felaktigt RSS-flödesbeskrivning \"%s\""
@@ -2813,9 +2834,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historik artikelgräns"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2843,10 +2864,6 @@ msgid ""
"improved existing translations here:"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API-nyckel"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "Denna nyckel ger tredjepartsprogram full tillgång till SABnzbd."
@@ -3207,6 +3224,16 @@ msgid "Some servers provide an alternative NZB when a download fails."
msgstr ""
"Vissa servrar kan förse en alternativ NZB när en nerladdning misslyckas"
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "Döp om mappar"
@@ -3432,14 +3459,7 @@ msgstr ""
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
msgstr ""
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
"report to the indexer if a job couldn't be completed."
msgstr ""
#: sabnzbd/skintext.py
@@ -3791,10 +3811,6 @@ msgstr "Aktivera Growl"
msgid "Send notifications to Growl"
msgstr "Skicka notis till Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "Serveradress"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "Använd endast för extern Growl.server (host:port)"
@@ -4314,6 +4330,10 @@ msgstr "Använda globala gränsnittsinställningar"
msgid "Queue item limit"
msgstr "Kö artikelgräns"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "Historik artikelgräns"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "Datumformat"
@@ -4843,7 +4863,7 @@ msgstr "Det gick inte att döpa om liknande fil: %s till %s"
msgid "Server name does not resolve"
msgstr "Servernamn kunde inte läsas"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "Otillåten åtkomst"

View File

@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: sabnzbd\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2017-07-24 08:21+0000\n"
"POT-Creation-Date: 2017-08-06 09:51+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-07-25 06:11+0000\n"
"X-Generator: Launchpad (build 18419)\n"
"X-Launchpad-Export-Date: 2017-08-07 05:54+0000\n"
"X-Generator: Launchpad (build 18441)\n"
#: SABnzbd.py [Error message]
msgid "Failed to start web-interface"
@@ -636,7 +636,7 @@ msgid ""
"into your 3rd party program:"
msgstr "缺身份认证信息,请在第三方程序中输入“配置”->“常规”中的用户名/密码:"
#: sabnzbd/interface.py [Warning message]
#: sabnzbd/interface.py [Warning message] # sabnzbd/skintext.py
msgid ""
"Try our new skin Glitter! Fresh new design that is optimized for desktop and "
"mobile devices. Go to Config -> General to change your skin."
@@ -986,6 +986,11 @@ msgstr "正在修复"
msgid "[%s] Repaired in %s"
msgstr "[%s] 已修复,耗时 %s"
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py # sabnzbd/newsunpack.py
#: sabnzbd/notifier.py [Notification]
msgid "Disk full"
@@ -1002,10 +1007,6 @@ msgstr "正在验证"
msgid "Checking"
msgstr "正在检查"
#: sabnzbd/newsunpack.py
msgid "Verifying repair"
msgstr ""
#: sabnzbd/newsunpack.py [Error message]
msgid "Python script \"%s\" does not have execute (+x) permission set"
msgstr "Python 脚本 \"%s\" 不具有执行 (+x) 权限"
@@ -1065,7 +1066,7 @@ msgid "Not available"
msgstr "不可用"
#: sabnzbd/notifier.py # sabnzbd/notifier.py # sabnzbd/notifier.py
#: sabnzbd/notifier.py
#: sabnzbd/notifier.py # sabnzbd/rating.py # sabnzbd/rating.py
msgid "Cannot send, missing required data"
msgstr "无法发送,缺少必要的数据"
@@ -1165,6 +1166,12 @@ msgstr "重复的 NZB 文件"
msgid "Pausing duplicate NZB \"%s\""
msgstr "正在暂停重复 NZB \"%s\""
#: sabnzbd/nzbstuff.py [Warning message]
msgid ""
"%d files with duplicate filenames were discared for \"%s\". Enable "
"\"allow_duplicate_files\" to allow duplicate filenames."
msgstr ""
#: sabnzbd/nzbstuff.py
msgid "Aborted, cannot be completed"
msgstr "已中止,无法完成"
@@ -1604,6 +1611,20 @@ msgstr "关闭系统时出错"
msgid "Indexer id (%s) not found for ratings file"
msgstr "评分文件的索引器 id (%s) 未找到"
#: sabnzbd/rating.py # sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "服务器地址"
#: sabnzbd/rating.py # sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API Key"
#: sabnzbd/rating.py # sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr "这个密钥用来向服务器表明身份。查看您在索引网站上的个人档案。"
#: sabnzbd/rss.py [Error message] # sabnzbd/rss.py
msgid "Incorrect RSS feed description \"%s\""
msgstr "RSS feed 描述不正确 \"%s\""
@@ -2775,9 +2796,9 @@ msgstr ""
msgid "Do not keep any completed jobs"
msgstr ""
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "History item limit"
msgstr "历史数目限制"
#: sabnzbd/skintext.py
msgid "Jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Save Changes"
@@ -2805,10 +2826,6 @@ msgid ""
"improved existing translations here:"
msgstr "帮助我们来本地化 SABnzbd <br/>您可以在这里来添加未被翻译的文字或者改进现有的翻译:"
#: sabnzbd/skintext.py # sabnzbd/skintext.py
msgid "API Key"
msgstr "API Key"
#: sabnzbd/skintext.py
msgid "This key will give 3rd party programs full access to SABnzbd."
msgstr "该 key 将授予第三方程序 SABnzbd 的完整权限。"
@@ -3144,6 +3161,16 @@ msgstr "失败时,尝试备用 NZB"
msgid "Some servers provide an alternative NZB when a download fails."
msgstr "部分服务器在下载失败时可提供备用 NZB 文件。"
#: sabnzbd/skintext.py
msgid "Use tags from indexer"
msgstr ""
#: 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 ""
#: sabnzbd/skintext.py
msgid "Enable folder rename"
msgstr "启用文件夹重命名"
@@ -3361,16 +3388,8 @@ msgstr "启用索引集成"
#: sabnzbd/skintext.py
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. Depending on your "
"indexer, the API key setting can be left blank."
"report to the indexer if a job couldn't be completed."
msgstr ""
"当任务添加时索引服务可提供评分信息。当任务无法完成时SABnzbd 也可发送报告给索引服务。有些时候 API 密钥设定可以留空,取决于索引服务的要求。"
#: sabnzbd/skintext.py
msgid ""
"This key provides identity to indexer. Check your profile on the indexer's "
"website."
msgstr "这个密钥用来向服务器表明身份。查看您在索引网站上的个人档案。"
#: sabnzbd/skintext.py
msgid "Enable Filtering"
@@ -3719,10 +3738,6 @@ msgstr "启用 Growl"
msgid "Send notifications to Growl"
msgstr "将通知发送到 Growl"
#: sabnzbd/skintext.py [Address of Growl server]
msgid "Server address"
msgstr "服务器地址"
#: sabnzbd/skintext.py [Don't translate "Growl"]
msgid "Only use for remote Growl server (host:port)"
msgstr "仅当使用远程 Growl 服务器时需要 (主机:端口)"
@@ -4241,6 +4256,10 @@ msgstr "使用全局界面设置"
msgid "Queue item limit"
msgstr "队列数目限制"
#: sabnzbd/skintext.py
msgid "History item limit"
msgstr "历史数目限制"
#: sabnzbd/skintext.py
msgid "Date format"
msgstr "日期格式"
@@ -4762,7 +4781,7 @@ msgstr "重命名相似文件失败: %s 为 %s"
msgid "Server name does not resolve"
msgstr "服务器名无法解析"
#: sabnzbd/urlgrabber.py # sabnzbd/urlgrabber.py
#: sabnzbd/urlgrabber.py
msgid "Unauthorized access"
msgstr "未授权访问"

View File

@@ -108,7 +108,7 @@ import sabnzbd.lang as lang
import sabnzbd.api
import sabnzbd.directunpacker as directunpacker
from sabnzbd.decorators import synchronized, notify_downloader
from sabnzbd.constants import NORMAL_PRIORITY, VALID_ARCHIVES, GIGI, \
from sabnzbd.constants import NORMAL_PRIORITY, VALID_ARCHIVES, \
REPAIR_REQUEST, QUEUE_FILE_NAME, QUEUE_VERSION, QUEUE_FILE_TMPL
import sabnzbd.getipaddress as getipaddress
@@ -843,16 +843,6 @@ def keep_awake():
sleepless.allow_sleep()
def CheckFreeSpace():
""" Check if enough disk space is free, if not pause downloader and send email """
if cfg.download_free() and not sabnzbd.downloader.Downloader.do.paused:
if misc.diskspace(force=True)['download_dir'][1] < cfg.download_free.get_float() / GIGI:
logging.warning(T('Too little diskspace forcing PAUSE'))
# Pause downloader, but don't save, since the disk is almost full!
Downloader.do.pause(save=False)
emailer.diskfull()
################################################################################
# Data IO #
################################################################################

View File

@@ -30,8 +30,8 @@ import hashlib
import sabnzbd
from sabnzbd.misc import get_filepath, sanitize_filename, get_unique_filename, renamer, \
set_permissions, long_path, clip_path, has_win_device, get_all_passwords
from sabnzbd.constants import Status
set_permissions, long_path, clip_path, has_win_device, get_all_passwords, diskspace
from sabnzbd.constants import Status, GIGI
import sabnzbd.cfg as cfg
from sabnzbd.articlecache import ArticleCache
from sabnzbd.postproc import PostProcessor
@@ -69,8 +69,23 @@ class Assembler(Thread):
nzo, nzf = job
if nzf:
sabnzbd.CheckFreeSpace()
# Check if enough disk space is free, if not pause downloader and send email
if diskspace(force=True)['download_dir'][1] < (cfg.download_free.get_float() + nzf.bytes) / GIGI:
# Only warn and email once
if not sabnzbd.downloader.Downloader.do.paused:
logging.warning(T('Too little diskspace forcing PAUSE'))
# Pause downloader, but don't save, since the disk is almost full!
sabnzbd.downloader.Downloader.do.pause(save=False)
sabnzbd.emailer.diskfull()
# Abort all direct unpackers, just to be sure
sabnzbd.directunpacker.abort_all()
# Place job back in queue and wait 30 seconds to hope it gets resolved
self.process(job)
sleep(30)
continue
# Prepare filename
filename = sanitize_filename(nzf.filename)
nzf.filename = filename
dupe = nzo.check_for_dupe(nzf)

View File

@@ -982,17 +982,21 @@ def get_rss():
# We have to remove non-seperator commas by detecting if they are valid URL's
for feed_key in database['rss']:
feed = database['rss'][feed_key]
# Only modify if we have to, to prevent repeated config-saving
have_new_uri = False
# Create a new corrected list
new_feed_uris = []
for feed_uri in feed.uri():
if new_feed_uris and not urlparse(feed_uri).scheme and urlparse(new_feed_uris[-1]).scheme:
# Current one has no scheme but previous one does, append to previous
new_feed_uris[-1] += '%2C' + feed_uri
have_new_uri = True
continue
# Add full working URL
new_feed_uris.append(feed_uri)
# Set new list
feed.uri.set(new_feed_uris)
if have_new_uri:
feed.uri.set(new_feed_uris)
return database['rss']
except KeyError:

View File

@@ -154,7 +154,8 @@ class HistoryDB(object):
return 'duplicate column name' not in error
else:
logging.error(T('SQL Command Failed, see log'))
logging.debug("SQL: %s", command)
logging.info("SQL: %s", command)
logging.info("Arguments: %s", repr(args))
logging.info("Traceback: ", exc_info=True)
try:
self.con.rollback()
@@ -286,19 +287,20 @@ class HistoryDB(object):
def fetch_history(self, start=None, limit=None, search=None, failed_only=0, categories=None):
""" Return records for specified jobs """
search = convert_search(search)
command_args = [convert_search(search)]
post = ''
if categories:
categories = ['*' if c == 'Default' else c for c in categories]
post = " AND (CATEGORY = '"
post += "' OR CATEGORY = '".join(categories)
post += "' )"
post = " AND (CATEGORY = ?"
post += " OR CATEGORY = ? " * (len(categories)-1)
post += ")"
command_args.extend(categories)
if failed_only:
post += ' AND STATUS = "Failed"'
cmd = 'SELECT COUNT(*) FROM history WHERE name LIKE ?'
res = self.execute(cmd + post, (search,))
res = self.execute(cmd + post, tuple(command_args))
total_items = -1
if res:
try:
@@ -311,9 +313,9 @@ class HistoryDB(object):
if not limit:
limit = total_items
t = (search, start, limit)
command_args.extend([start, limit])
cmd = 'SELECT * FROM history WHERE name LIKE ?'
fetch_ok = self.execute(cmd + post + ' ORDER BY completed desc LIMIT ?, ?', t)
fetch_ok = self.execute(cmd + post + ' ORDER BY completed desc LIMIT ?, ?', tuple(command_args))
if fetch_ok:
items = self.c.fetchall()

View File

@@ -29,8 +29,8 @@ import logging
import sabnzbd
import sabnzbd.cfg as cfg
from sabnzbd.misc import int_conv, clip_path, remove_all, globber, format_time_string, has_win_device
from sabnzbd.encoding import unicoder
from sabnzbd.newsunpack import build_command
from sabnzbd.encoding import TRANS, unicoder
from sabnzbd.newsunpack import build_command, EXTRACTFROM_RE, rar_volumelist
from sabnzbd.postproc import prepare_extraction_path
from sabnzbd.utils.rarfile import RarFile
from sabnzbd.utils.diskspeed import diskspeedmeasure
@@ -65,7 +65,7 @@ class DirectUnpacker(threading.Thread):
self.total_volumes = {}
self.unpack_time = 0.0
self.success_sets = []
self.success_sets = {}
self.next_sets = []
nzo.direct_unpacker = self
@@ -149,6 +149,7 @@ class DirectUnpacker(threading.Thread):
linebuf = ''
last_volume_linebuf = ''
unrar_log = []
rarfiles = []
start_time = time.time()
# Need to read char-by-char because there's no newline after new-disk message
@@ -171,6 +172,11 @@ class DirectUnpacker(threading.Thread):
logging.info('Error in DirectUnpack of %s', self.cur_setname)
self.abort()
if linebuf.startswith('Extracting from') and linebuf.endswith('\n'):
filename = TRANS((re.search(EXTRACTFROM_RE, linebuf.strip()).group(1)))
if filename not in rarfiles:
rarfiles.append(filename)
# Did we reach the end?
if linebuf.endswith('All OK'):
# Stop timer and finish
@@ -178,15 +184,17 @@ class DirectUnpacker(threading.Thread):
ACTIVE_UNPACKERS.remove(self)
# Add to success
self.success_sets.append(self.cur_setname)
rarfile_path = os.path.join(self.nzo.downpath, self.rarfile_nzf.filename)
self.success_sets[self.cur_setname] = rar_volumelist(rarfile_path, self.nzo.password, rarfiles)
logging.info('DirectUnpack completed for %s', self.cur_setname)
self.nzo.set_action_line(T('Direct Unpack'), T('Completed'))
# Write current log
# Write current log and clear
unrar_log.append(linebuf.strip())
linebuf = ''
logging.debug('DirectUnpack Unrar output %s', '\n'.join(unrar_log))
unrar_log = []
rarfiles = []
# Are there more files left?
while self.nzo.files and not self.next_sets:
@@ -246,7 +254,9 @@ class DirectUnpacker(threading.Thread):
# Save information if success
if self.success_sets:
msg = T('Unpacked %s files/folders in %s') % (len(globber(self.unpack_dir_info[0])), format_time_string(self.unpack_time))
# The number is wrong if one_folder, just leave empty
nr_files = '' if self.unpack_dir_info[3] else len(globber(self.unpack_dir_info[0]))
msg = T('Unpacked %s files/folders in %s') % (nr_files, format_time_string(self.unpack_time))
msg = '%s - %s' % (T('Direct Unpack'), msg)
self.nzo.set_unpack_info('Unpack', '[%s] %s' % (unicoder(self.cur_setname), msg))
@@ -349,13 +359,13 @@ class DirectUnpacker(threading.Thread):
# No new sets
self.next_sets = []
self.success_sets = []
self.success_sets = {}
# Remove files
if self.unpack_dir_info:
extraction_path, _, _, one_folder, _ = self.unpack_dir_info
# In case of flat-unpack we need to remove the files manually
if one_folder or cfg.flat_unpack():
if one_folder:
# RarFile can fail for mysterious reasons
try:
rar_contents = RarFile(os.path.join(self.nzo.downpath, rarfile_nzf.filename), all_names=True).filelist()

View File

@@ -83,6 +83,10 @@ class Server(object):
self.categories = categories
# Temporary deprication warning
if 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 = []
self.idle_threads = []
self.active = True

View File

@@ -100,13 +100,22 @@ def safe_lower(txt):
return ''
def safe_fnmatch(f, pattern):
""" fnmatch will fail if the pattern contains any of it's
key characters, like [, ] or !.
"""
try:
return fnmatch.fnmatch(f, pattern)
except re.error:
return False
def globber(path, pattern=u'*'):
""" Return matching base file/folder names in folder `path` """
# Cannot use glob.glob() because it doesn't support Windows long name notation
if os.path.exists(path):
return [f for f in os.listdir(path) if fnmatch.fnmatch(f, pattern)]
else:
return []
return [f for f in os.listdir(path) if safe_fnmatch(f, pattern)]
return []
def globber_full(path, pattern=u'*'):
@@ -114,13 +123,12 @@ def globber_full(path, pattern=u'*'):
# Cannot use glob.glob() because it doesn't support Windows long name notation
if os.path.exists(path):
try:
return [os.path.join(path, f) for f in os.listdir(path) if fnmatch.fnmatch(f, pattern)]
return [os.path.join(path, f) for f in os.listdir(path) if safe_fnmatch(f, pattern)]
except UnicodeDecodeError:
# This happens on Linux when names are incorrectly encoded, retry using a non-Unicode path
path = path.encode('utf-8')
return [os.path.join(path, f) for f in os.listdir(path) if fnmatch.fnmatch(f, pattern)]
else:
return []
return [os.path.join(path, f) for f in os.listdir(path) if safe_fnmatch(f, pattern)]
return []
def cat_to_opts(cat, pp=None, script=None, priority=None):
@@ -843,9 +851,11 @@ def get_cache_limit():
##############################################################################
# Directory operations
# Locked directory operations to avoid problems with simultaneous add/remove
##############################################################################
DIR_LOCK = threading.RLock()
@synchronized(DIR_LOCK)
def get_unique_path(dirpath, n=0, create_dir=True):
""" Determine a unique folder or filename """
@@ -865,6 +875,7 @@ def get_unique_path(dirpath, n=0, create_dir=True):
return get_unique_path(dirpath, n=n + 1, create_dir=create_dir)
@synchronized(DIR_LOCK)
def get_unique_filename(path):
""" Check if path is unique. If not, add number like: "/path/name.NUM.ext". """
num = 1
@@ -877,6 +888,7 @@ def get_unique_filename(path):
return path
@synchronized(DIR_LOCK)
def create_dirs(dirpath):
""" Create directory tree, obeying permissions """
if not os.path.exists(dirpath):
@@ -887,6 +899,7 @@ def create_dirs(dirpath):
return dirpath
@synchronized(DIR_LOCK)
def move_to_path(path, new_path):
""" Move a file to a new path, optionally give unique filename
Return (ok, new_path)
@@ -927,6 +940,7 @@ def move_to_path(path, new_path):
return ok, new_path
@synchronized(DIR_LOCK)
def cleanup_empty_directories(path):
""" Remove all empty folders inside (and including) 'path' """
path = os.path.normpath(path)
@@ -947,6 +961,7 @@ def cleanup_empty_directories(path):
pass
@synchronized(DIR_LOCK)
def get_filepath(path, nzo, filename):
""" Create unique filepath """
# This procedure is only used by the Assembler thread
@@ -983,6 +998,94 @@ def get_filepath(path, nzo, filename):
return fullPath
@synchronized(DIR_LOCK)
def renamer(old, new):
""" Rename file/folder with retries for Win32 """
# Sanitize last part of new name
path, name = os.path.split(new)
# Use the more stringent folder rename to end up with a nicer name,
# but do not trim size
new = os.path.join(path, sanitize_foldername(name, False))
logging.debug('Renaming "%s" to "%s"', old, new)
if sabnzbd.WIN32:
retries = 15
while retries > 0:
# First we try 3 times with os.rename
if retries > 12:
try:
os.rename(old, new)
return
except:
retries -= 1
time.sleep(3)
continue
# Now we try the back-up method
logging.debug('Could not rename, trying move for %s to %s', old, new)
try:
shutil.move(old, new)
return
except WindowsError, err:
logging.debug('Error renaming "%s" to "%s" <%s>', old, new, err)
if err[0] == 32:
logging.debug('Retry rename %s to %s', old, new)
retries -= 1
else:
raise WindowsError(err)
time.sleep(3)
raise WindowsError(err)
else:
shutil.move(old, new)
@synchronized(DIR_LOCK)
def remove_dir(path):
""" Remove directory with retries for Win32 """
logging.debug('Removing dir %s', path)
if sabnzbd.WIN32:
retries = 15
while retries > 0:
try:
os.rmdir(path)
return
except WindowsError, err:
if err[0] == 32:
logging.debug('Retry delete %s', path)
retries -= 1
else:
raise WindowsError(err)
time.sleep(3)
raise WindowsError(err)
else:
os.rmdir(path)
@synchronized(DIR_LOCK)
def remove_all(path, pattern='*', keep_folder=False, recursive=False):
""" Remove folder and all its content (optionally recursive) """
if os.path.exists(path):
files = globber_full(path, pattern)
if pattern == '*' and not sabnzbd.WIN32:
files.extend(globber_full(path, '.*'))
for f in files:
if os.path.isfile(f):
try:
logging.debug('Removing file %s', f)
os.remove(f)
except:
logging.info('Cannot remove file %s', f)
elif recursive:
remove_all(f, pattern, False, True)
if not keep_folder:
try:
logging.debug('Removing dir %s', path)
os.rmdir(path)
except:
logging.info('Cannot remove folder %s', path)
def trim_win_path(path):
""" Make sure Windows path stays below 70 by trimming last part """
if sabnzbd.WIN32 and len(path) > 69:
@@ -1330,91 +1433,6 @@ def ip_extract():
return ips
def renamer(old, new):
""" Rename file/folder with retries for Win32 """
# Sanitize last part of new name
path, name = os.path.split(new)
# Use the more stringent folder rename to end up with a nicer name,
# but do not trim size
new = os.path.join(path, sanitize_foldername(name, False))
logging.debug('Renaming "%s" to "%s"', old, new)
if sabnzbd.WIN32:
retries = 15
while retries > 0:
# First we try 3 times with os.rename
if retries > 12:
try:
os.rename(old, new)
return
except:
retries -= 1
time.sleep(3)
continue
# Now we try the back-up method
logging.debug('Could not rename, trying move for %s to %s', old, new)
try:
shutil.move(old, new)
return
except WindowsError, err:
logging.debug('Error renaming "%s" to "%s" <%s>', old, new, err)
if err[0] == 32:
logging.debug('Retry rename %s to %s', old, new)
retries -= 1
else:
raise WindowsError(err)
time.sleep(3)
raise WindowsError(err)
else:
shutil.move(old, new)
def remove_dir(path):
""" Remove directory with retries for Win32 """
logging.debug('Removing dir %s', path)
if sabnzbd.WIN32:
retries = 15
while retries > 0:
try:
os.rmdir(path)
return
except WindowsError, err:
if err[0] == 32:
logging.debug('Retry delete %s', path)
retries -= 1
else:
raise WindowsError(err)
time.sleep(3)
raise WindowsError(err)
else:
os.rmdir(path)
def remove_all(path, pattern='*', keep_folder=False, recursive=False):
""" Remove folder and all its content (optionally recursive) """
if os.path.exists(path):
files = globber_full(path, pattern)
if pattern == '*' and not sabnzbd.WIN32:
files.extend(globber_full(path, '.*'))
for f in files:
if os.path.isfile(f):
try:
logging.debug('Removing file %s', f)
os.remove(f)
except:
logging.info('Cannot remove file %s', f)
elif recursive:
remove_all(f, pattern, False, True)
if not keep_folder:
try:
logging.debug('Removing dir %s', path)
os.rmdir(path)
except:
logging.info('Cannot remove folder %s', path)
def is_writable(path):
""" Return True is file is writable (also when non-existent) """
if os.path.isfile(path):

View File

@@ -33,7 +33,7 @@ from sabnzbd.encoding import TRANS, UNTRANS, unicoder, platform_encode, deunicod
import sabnzbd.utils.rarfile as rarfile
from sabnzbd.misc import format_time_string, find_on_path, make_script_path, int_conv, \
real_path, globber, globber_full, get_all_passwords, renamer, clip_path, \
has_win_device, calc_age
has_win_device, calc_age, long_path
from sabnzbd.tvsort import SeriesSorter
import sabnzbd.cfg as cfg
from sabnzbd.constants import Status
@@ -226,9 +226,10 @@ def unpack_magic(nzo, workdir, workdir_complete, dele, one_folder, joinables, zi
# First time, ignore anything in workdir_complete
xjoinables, xzips, xrars, xsevens, xts = build_filelists(workdir)
else:
xjoinables, xzips, xrars, xsevens, xts = build_filelists(workdir, workdir_complete)
xjoinables, xzips, xrars, xsevens, xts = build_filelists(workdir, workdir_complete, check_both=dele)
rerun = False
force_rerun = False
newfiles = []
error = 0
new_joins = new_rars = new_zips = new_ts = None
@@ -290,7 +291,14 @@ def unpack_magic(nzo, workdir, workdir_complete, dele, one_folder, joinables, zi
if nzo.reuse and depth == 1 and any(build_filelists(workdir, workdir_complete)):
rerun = True
if rerun and (cfg.enable_recursive() or new_ts or new_joins):
# Double-check that we didn't miss any files in workdir
# But only if dele=True, otherwise of course there will be files left
if rerun and dele and depth == 1 and any(build_filelists(workdir)):
force_rerun = True
# Clear lists to force re-scan of files
xjoinables, xzips, xrars, xsevens, xts = ([], [], [], [], [])
if rerun and (cfg.enable_recursive() or new_ts or new_joins or force_rerun):
z, y = unpack_magic(nzo, workdir, workdir_complete, dele, one_folder,
xjoinables, xzips, xrars, xsevens, xts, depth)
if z:
@@ -483,11 +491,10 @@ def rar_unpack(nzo, workdir, workdir_complete, delete, one_folder, rars):
# Did we already direct-unpack it? Not when recursive-unpacking
if nzo.direct_unpacker and rar_set in nzo.direct_unpacker.success_sets:
logging.info("Set %s completed by DirectUnpack", rar_set)
fail = 0
success = 1
rars = rar_sets[rar_set]
fail = False
success = True
rars = nzo.direct_unpacker.success_sets.pop(rar_set)
newfiles = globber(extraction_path)
nzo.direct_unpacker.success_sets.remove(rar_set)
else:
logging.info("Extracting rarfile %s (belonging to %s) to %s",
rarpath, rar_set, extraction_path)
@@ -496,7 +503,7 @@ def rar_unpack(nzo, workdir, workdir_complete, delete, one_folder, rars):
one_folder, nzo, rar_set, extraction_path)
# Was it aborted?
if not nzo.pp_active:
fail = 1
fail = True
break
success = not fail
except:
@@ -615,8 +622,6 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
# Get list of all the volumes part of this set
logging.debug("Analyzing rar file ... %s found", rarfile.is_rarfile(rarfile_path))
rarfiles = rarfile.RarFile(rarfile_path).volumelist()
logging.debug("Running unrar %s", command)
p = Popen(command, shell=need_shell, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
@@ -631,6 +636,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
# Loop over the output from rar!
curr = 0
extracted = []
rarfiles = []
fail = 0
inrecovery = False
lines = []
@@ -653,6 +659,9 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
lines.append(line)
if line.startswith('Extracting from'):
filename = TRANS((re.search(EXTRACTFROM_RE, line).group(1)))
if filename not in rarfiles:
rarfiles.append(filename)
curr += 1
nzo.set_action_line(T('Unpacking'), '%02d/%02d' % (curr, numrars))
@@ -777,6 +786,9 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
proc.close()
p.wait()
# Which files did we use to extract this?
rarfiles = rar_volumelist(rarfile_path, password, rarfiles)
logging.debug('UNRAR output %s', '\n'.join(lines))
nzo.fail_msg = ''
msg = T('Unpacked %s files/folders in %s') % (str(len(extracted)), format_time_string(time.time() - start))
@@ -1217,6 +1229,8 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, single=False):
verifytotal = 0
verified = 0
in_verify_repaired = False
# Loop over the output, whee
while 1:
char = proc.read(1)
@@ -1278,6 +1292,9 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, single=False):
format_time_string(time.time() - start))
start = time.time()
verified = 1
# Reset to use them again for verification of repair
verifytotal = 0
verifynum = 0
elif line.startswith('Loading "'):
# Found an extra par2 file. Only the next line will tell whether it's usable
@@ -1369,9 +1386,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, single=False):
else:
block_table.pop(block_size)
logging.info('Added %s blocks to %s',
added_blocks, nzo.final_name)
logging.info('Added %s blocks to %s', added_blocks, nzo.final_name)
if not force:
msg = T('Fetching %s blocks...') % str(added_blocks)
@@ -1401,6 +1416,20 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, single=False):
logging.info('Repaired in %s', format_time_string(time.time() - start))
finished = 1
elif verified and line.endswith(('are missing.', 'exist but are damaged.')):
# Files that will later be verified after repair
chunks = line.split()
verifytotal += int(chunks[0])
elif line.startswith('Verifying repaired files'):
in_verify_repaired = True
nzo.set_action_line(T('Verifying repair'), '%02d/%02d' % (verifynum, verifytotal))
elif in_verify_repaired and line.startswith('Target'):
verifynum += 1
if verifynum <= verifytotal:
nzo.set_action_line(T('Verifying repair'), '%02d/%02d' % (verifynum, verifytotal))
elif line.startswith('File:') and line.find('data blocks from') > 0:
m = _RE_BLOCK_FOUND.search(line)
if m:
@@ -1979,6 +2008,7 @@ def userxbit(filename):
xbitset = (rwxbits & userxbit) > 0
return xbitset
def build_command(command):
""" Prepare list from running an external program """
if not sabnzbd.WIN32:
@@ -2030,6 +2060,28 @@ def build_command(command):
return stup, need_shell, command, creationflags
def rar_volumelist(rarfile_path, password, known_volumes):
""" Extract volumes that are part of this rarset
and merge them with existing list, removing duplicates
"""
zf = rarfile.RarFile(rarfile_path)
if password:
try:
# setpassword can fail due to bugs in RarFile
zf.setpassword(password)
except:
pass
zf_volumes = zf.volumelist()
# Remove duplicates
known_volumes_base = [os.path.basename(vol) for vol in known_volumes]
for zf_volume in zf_volumes:
if os.path.basename(zf_volume) not in known_volumes_base:
# Long-path notation just to be sure
known_volumes.append(long_path(zf_volume))
return known_volumes
# Sort the various RAR filename formats properly :\
def rar_sort(a, b):
""" Define sort method for rar file names """
@@ -2046,8 +2098,9 @@ def rar_sort(a, b):
return cmp(a, b)
def build_filelists(workdir, workdir_complete=None, check_rar=True):
def build_filelists(workdir, workdir_complete=None, check_both=False, check_rar=True):
""" Build filelists, if workdir_complete has files, ignore workdir.
Optionally scan both directories.
Optionally test content to establish RAR-ness
"""
sevens, joinables, zips, rars, ts, filelist = ([], [], [], [], [], [])
@@ -2063,7 +2116,7 @@ def build_filelists(workdir, workdir_complete=None, check_rar=True):
# Just skip failing names
pass
if workdir and not filelist:
if workdir and (not filelist or check_both):
for root, dirs, files in os.walk(workdir):
for _file in files:
if '.AppleDouble' not in root and '.DS_Store' not in root:

View File

@@ -42,12 +42,14 @@ from sabnzbd.newsunpack import external_script
from gntp.core import GNTPRegister
from gntp.notifier import GrowlNotifier
import gntp.errors
try:
import Growl
# Detect classic Growl (older than 1.3)
_HAVE_CLASSIC_GROWL = os.path.isfile('/Library/PreferencePanes/Growl.prefPane/Contents/MacOS/Growl')
except ImportError:
_HAVE_CLASSIC_GROWL = False
try:
import warnings
# Make any warnings exceptions, so that pynotify is ignored
@@ -56,6 +58,10 @@ try:
warnings.simplefilter("error")
import pynotify
_HAVE_NTFOSD = True
# Check for working version, not all pynotify are the same
if not hasattr(pynotify, 'init'):
_HAVE_NTFOSD = False
except:
_HAVE_NTFOSD = False

View File

@@ -279,7 +279,7 @@ class NzbFile(TryList):
self.decodetable[partnum] = article
self.import_finished = True
else:
elif not self.nzo.is_gone():
# TEMPORARY ERRORS
if not os.path.exists(os.path.join(self.nzf_id, self.nzo.workpath)):
logging.warning('Article DB file not found %s', self)
@@ -492,6 +492,11 @@ class NzbParser(xml.sax.handler.ContentHandler):
nzo_matches = filter(lambda x: (x.filename == nzf.filename), self.nzo.files)
if nzo_matches:
logging.info('File %s occured twice in NZB, discarding smaller file', nzf.filename)
# Keep some logging how many were duplicates
if 'duplicate_files' not in self.nzo.nzo_info:
self.nzo.nzo_info['duplicate_files'] = 0
self.nzo.nzo_info['duplicate_files'] += 1
# Which is smaller? Current or old one
if nzo_matches[0].bytes >= nzf.bytes:
# Skip this new one
@@ -881,6 +886,10 @@ class NzbObject(TryList):
else:
self.files.sort(cmp=nzf_cmp_name)
# Warn if there were many duplicate files
if 'duplicate_files' in self.nzo_info and self.nzo_info['duplicate_files'] >= 10:
logging.warning(T('%d files with duplicate filenames were discared for "%s". Enable "allow_duplicate_files" to allow duplicate filenames.'), self.nzo_info['duplicate_files'], self.final_name)
# In the hunt for Unwanted Extensions:
# The file with the unwanted extension often is in the first or the last rar file
# So put the last rar immediately after the first rar file so that it gets detected early
@@ -985,8 +994,8 @@ class NzbObject(TryList):
head, vol, block = analyse_par2(name)
if head and matcher(lparset, head.lower()):
xnzf.set_par2(parset, vol, block)
# Don't postpone if all par2 should be kept
if cfg.enable_par_cleanup():
# Don't postpone if all par2 are desired and should be kept
if not(cfg.enable_all_par() and not cfg.enable_par_cleanup()):
self.extrapars[parset].append(xnzf)
self.files.remove(xnzf)