mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-01-10 08:30:45 -05:00
Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e69eeebdd8 | ||
|
|
be5bebb574 | ||
|
|
4ca2a7a65e | ||
|
|
eed8c9bf50 | ||
|
|
11d5855430 | ||
|
|
b13413b1e5 | ||
|
|
9809474615 | ||
|
|
9ee3a61ae9 | ||
|
|
c71ffa02f8 | ||
|
|
2e862da292 | ||
|
|
08d762c6c9 | ||
|
|
2ef6f9e0e7 | ||
|
|
b8f84cf18d | ||
|
|
7e88af7047 | ||
|
|
2fc365dd57 | ||
|
|
434170862c | ||
|
|
1eb6c426fd | ||
|
|
e2c46d73e4 | ||
|
|
eef02ac7ce | ||
|
|
0d9614755e | ||
|
|
aa0557656c | ||
|
|
2c750f98cb | ||
|
|
82cf2b33cf | ||
|
|
b9cfe0d6f0 | ||
|
|
a0166a4011 | ||
|
|
c9f765813c | ||
|
|
2f52590587 | ||
|
|
fd581fffa5 | ||
|
|
fcdac1cb32 | ||
|
|
a824fa617b | ||
|
|
1fd0c23e55 | ||
|
|
884d4ee91b | ||
|
|
0c7d303568 | ||
|
|
a8ac8609d6 | ||
|
|
0d98a24c67 | ||
|
|
31eeb5e539 | ||
|
|
82dacda359 | ||
|
|
c3f82e49bf | ||
|
|
86a0e734b1 | ||
|
|
934db752bf | ||
|
|
ed379da657 |
@@ -1,5 +1,5 @@
|
||||
*******************************************
|
||||
*** This is SABnzbd 2.0.0 ***
|
||||
*** This is SABnzbd 2.0.1 ***
|
||||
*******************************************
|
||||
SABnzbd is an open-source cross-platform binary newsreader.
|
||||
It simplifies the process of downloading from Usenet dramatically,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SABnzbd 2.0.0
|
||||
SABnzbd 2.0.1
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
0) LICENSE
|
||||
|
||||
4
PKG-INFO
4
PKG-INFO
@@ -1,7 +1,7 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: SABnzbd
|
||||
Version: 2.0.0
|
||||
Summary: SABnzbd-2.0.0
|
||||
Version: 2.0.1
|
||||
Summary: SABnzbd-2.0.1
|
||||
Home-page: http://sabnzbd.org
|
||||
Author: The SABnzbd Team
|
||||
Author-email: team@sabnzbd.org
|
||||
|
||||
88
README.mkd
88
README.mkd
@@ -1,57 +1,34 @@
|
||||
Release Notes - SABnzbd 2.0.0
|
||||
Release Notes - SABnzbd 2.0.1
|
||||
=========================================================
|
||||
|
||||
## New in 2.0.0: SABYenc
|
||||
- To improve SABnzbd's performance on systems where CPU power is limiting
|
||||
download speed, we developed a new C-module called SABYenc to accelerate the
|
||||
decoding of usenet articles that can use multiple threads and is more efficient.
|
||||
Not only low-powered systems like NAS's or Raspberry Pi's benefit, with this
|
||||
new module speeds can increase up to 2x compared to 1.x.x releases on any
|
||||
system where the connection/newsserver capacity was not fully used.
|
||||
The Windows and macOS releases automatically include this module, for other
|
||||
platforms an installation guide can be found here: https://sabnzbd.org/sabyenc
|
||||
## Changes since 2.0.0
|
||||
- No longer change ports if the configured port is not available during startup.
|
||||
- 'Proof' files also ignored when Ignore Samples is enabled.
|
||||
- Redundant SFV and RAR checks no longer performed if par2 verification failed.
|
||||
- More repair/unpack info is retained in the History information.
|
||||
- Windows: remove option to start SABnzbd from installer, it would start the
|
||||
program as administrator.
|
||||
|
||||
## Changes/improvements in 2.0.0:
|
||||
- Windows and macOS releases now also come in 64bit versions.
|
||||
The installers will install the appropriate version automatically.
|
||||
Therefore, on 64bit Windows the installation directory will change to
|
||||
'Program Files' instead of 'Program Files (x86)'.
|
||||
On Windows our tests showed an additional 5-10% gain in download speed
|
||||
when using 64bit SABnzbd on 64bit Windows.
|
||||
- Linux: Detect if Multicore Par2 is installed.
|
||||
Multicore Par2 is now easily available through the PPA and other channels:
|
||||
https://sabnzbd.org/wiki/installation/multicore-par2
|
||||
- Post-processing scripts now get additional job information via SAB environment
|
||||
variables. https://sabnzbd.org/wiki/scripts/post-processing-scripts
|
||||
- Certificate Validation set to 'Strict' for newly added newsservers
|
||||
The insecure Certificate Verification level 'Default' is now called 'Minimal'.
|
||||
In case of problems, see: https://sabnzbd.org/certificate-errors
|
||||
- Removed Secondary Web Interface option.
|
||||
## Bugfixes since 2.0.0
|
||||
- Some users experienced slower download speeds.
|
||||
- Revert changes to handling of missing articles introduced in 2.0.0 that
|
||||
turned out to be slow for some users.
|
||||
- Missing first par2-file would cause repair to be skipped.
|
||||
- Better handling of 7zip unpacking.
|
||||
- Log X-Forwarded-For of API calls and logins.
|
||||
- Handle more URLGrabber exceptions.
|
||||
- Command-line parameters were not listed correctly.
|
||||
- Queue-finish-action picker in Glitter more stable.
|
||||
- Custom Pause interpreter in Glitter more reliable.
|
||||
- Pre-check would fail if download was on SMBv3 share.
|
||||
- Windows: NZB-icon association lost sometimes.
|
||||
- Windows: Unrar could fail on some archives containing very long paths.
|
||||
|
||||
## Smaller changes/improvements in 2.0.0
|
||||
- Schedule items can now be enabled and disabled
|
||||
- HTTP-redirects in interface are now relative URL's
|
||||
- Moved some lesser used settings to Config->Specials
|
||||
- Cache usage is now updated continuously in the Status Window
|
||||
- On macOS SABnzbd was set to have low IO-priority, this is now set to normal
|
||||
- Previously set password is now shown on Retry
|
||||
- Remove listquote module dependency
|
||||
- Warn if Complete folder is on FAT filesystem (4GB size limit)
|
||||
|
||||
## Bug fixes in 2.0.0
|
||||
- Malformed articles could break the Downloader
|
||||
- Unexpected characters in CRC part of an article could crash the Decoder
|
||||
- Retry ADMIN-data saving 3x before giving error
|
||||
- Checking for encryption during downloading could fail
|
||||
- QuickCheck could crash when renaming already renamed files
|
||||
- `skip_dashboard` set to 1 by default in `fullstatus` API-call
|
||||
- Top-only switch now really only downloads top job
|
||||
- Unblock Server button did not work
|
||||
- par2cmdline would fail to repair jobs with split posts (.001, etc)
|
||||
- Fixed QuickCheck renaming issues
|
||||
- Show warning if job is paused because it appears cloaked
|
||||
- Linux: Warn in case encoding is not set to UTF-8
|
||||
- Windows: Incomplete folders would sometimes end in a dot
|
||||
## Upgrading from 0.7.x and older
|
||||
- Finish queue
|
||||
- Stop SABnzbd
|
||||
- Install new version
|
||||
- Start SABnzbd
|
||||
|
||||
## Upgrade notices
|
||||
- Windows: When starting the Post-Processing script, the path to the job folder
|
||||
@@ -60,18 +37,9 @@ Release Notes - SABnzbd 2.0.0
|
||||
- Schedule items are converted when upgrading to 2.x.x and will break when
|
||||
reverted back to pre-2.x.x releases.
|
||||
- The organization of the download queue is different from 0.7.x releases.
|
||||
So 2.x.x will not see the existing queue, but you can go to Status->QueueRepair
|
||||
So 2.x.x will not see the existing queue, but you can go to Status->Queue Repair
|
||||
and "Repair" the old queue.
|
||||
|
||||
## Upgrading from 0.7.x and older
|
||||
- Finish queue
|
||||
- Stop SABnzbd
|
||||
- Install new version
|
||||
- Start SABnzbd
|
||||
|
||||
## IMPORTANT INFORMATION about release 2.x.x
|
||||
<https://sabnzbd.org/wiki/new-features-and-changes>
|
||||
|
||||
## Known problems and solutions
|
||||
- Read the file "ISSUES.txt"
|
||||
|
||||
|
||||
79
SABnzbd.py
79
SABnzbd.py
@@ -91,7 +91,7 @@ from sabnzbd.misc import real_path, \
|
||||
split_host, get_ext, create_https_certificates, \
|
||||
windows_variant, ip_extract, set_serv_parms, get_serv_parms, globber_full
|
||||
from sabnzbd.panic import panic_tmpl, panic_port, panic_host, panic_fwall, \
|
||||
panic_sqlite, panic, launch_a_browser, panic_xport
|
||||
panic_sqlite, panic, launch_a_browser
|
||||
import sabnzbd.scheduler as scheduler
|
||||
import sabnzbd.config as config
|
||||
import sabnzbd.cfg
|
||||
@@ -184,7 +184,6 @@ def print_help():
|
||||
print " -f --config-file <ini> Location of config file"
|
||||
print " -s --server <srv:port> Listen on server:port [*]"
|
||||
print " -t --templates <templ> Template directory [*]"
|
||||
print " -2 --template2 <templ> Secondary template dir [*]"
|
||||
print
|
||||
print " -l --logging <0..2> Set logging level (-1=off, 0= least, 2= most) [*]"
|
||||
print " -w --weblogging Enable cherrypy access logging"
|
||||
@@ -197,7 +196,6 @@ def print_help():
|
||||
print " --pid <path> Create a PID file in the given folder (full path)"
|
||||
print " --pidfile <path> Create a PID file with the given name (full path)"
|
||||
print
|
||||
print " --force Discard web-port timeout (see Wiki!)"
|
||||
print " -h --help Print this message"
|
||||
print " -v --version Print version information"
|
||||
print " -c --clean Remove queue, cache and logs"
|
||||
@@ -206,6 +204,7 @@ def print_help():
|
||||
print " --repair-all Try to reconstruct the queue from the incomplete folder"
|
||||
print " with full data reconstruction"
|
||||
print " --https <port> Port to use for HTTPS server"
|
||||
print " --no-login Start with username and password reset"
|
||||
print " --log-all Log all article handling (for developers)"
|
||||
print " --console Force console logging for OSX app"
|
||||
print " --new Run a new instance of SABnzbd"
|
||||
@@ -256,9 +255,7 @@ def Bail_Out(browserhost, cherryport, err=''):
|
||||
""" Abort program because of CherryPy troubles """
|
||||
logging.error(T('Failed to start web-interface') + ' : ' + str(err))
|
||||
if not sabnzbd.DAEMON:
|
||||
if '13' in err:
|
||||
panic_xport(browserhost, cherryport)
|
||||
elif '49' in err:
|
||||
if '49' in err:
|
||||
panic_host(browserhost, cherryport)
|
||||
else:
|
||||
panic_port(browserhost, cherryport)
|
||||
@@ -844,7 +841,6 @@ def main():
|
||||
web_dir = None
|
||||
vista_plus = False
|
||||
vista64 = False
|
||||
force_web = False
|
||||
repair = 0
|
||||
api_url = None
|
||||
no_login = False
|
||||
@@ -903,9 +899,6 @@ def main():
|
||||
exit_sab(0)
|
||||
elif opt in ('-p', '--pause'):
|
||||
pause = True
|
||||
elif opt in ('--force',):
|
||||
force_web = True
|
||||
sabnzbd.RESTART_ARGS.append(opt)
|
||||
elif opt in ('--https',):
|
||||
https_port = int(arg)
|
||||
sabnzbd.RESTART_ARGS.append(opt)
|
||||
@@ -1023,13 +1016,13 @@ def main():
|
||||
if sabnzbd.DAEMON:
|
||||
if enable_https and https_port:
|
||||
try:
|
||||
cherrypy.process.servers.check_port(cherryhost, https_port, timeout=0.025)
|
||||
cherrypy.process.servers.check_port(cherryhost, https_port, timeout=0.05)
|
||||
except IOError, error:
|
||||
Bail_Out(browserhost, cherryport)
|
||||
except:
|
||||
Bail_Out(browserhost, cherryport, '49')
|
||||
try:
|
||||
cherrypy.process.servers.check_port(cherryhost, cherryport, timeout=0.025)
|
||||
cherrypy.process.servers.check_port(cherryhost, cherryport, timeout=0.05)
|
||||
except IOError, error:
|
||||
Bail_Out(browserhost, cherryport)
|
||||
except:
|
||||
@@ -1042,58 +1035,62 @@ def main():
|
||||
if url and check_for_sabnzbd(url, upload_nzbs, autobrowser):
|
||||
exit_sab(0)
|
||||
|
||||
# If an instance of sabnzbd(same version) is already running on this port, launch the browser
|
||||
# If another program or sabnzbd version is on this port, try 10 other ports going up in a step of 5
|
||||
# If 'Port is not bound' (firewall) do not do anything (let the script further down deal with that).
|
||||
notify_port_change = False
|
||||
|
||||
# SSL
|
||||
if enable_https:
|
||||
port = https_port or cherryport
|
||||
try:
|
||||
cherrypy.process.servers.check_port(browserhost, port, timeout=0.025)
|
||||
cherrypy.process.servers.check_port(browserhost, port, timeout=0.05)
|
||||
except IOError, error:
|
||||
if str(error) == 'Port not bound.':
|
||||
pass
|
||||
else:
|
||||
if not url:
|
||||
url = 'https://%s:%s/sabnzbd/api?' % (browserhost, port)
|
||||
if not sabnzbd.cfg.fixed_ports():
|
||||
if new_instance or not check_for_sabnzbd(url, upload_nzbs, autobrowser):
|
||||
newport = find_free_port(browserhost, port)
|
||||
if newport > 0:
|
||||
notify_port_change = True
|
||||
# Save the new port
|
||||
if https_port:
|
||||
https_port = newport
|
||||
sabnzbd.cfg.https_port.set(newport)
|
||||
else:
|
||||
# In case HTTPS == HTTP port
|
||||
http_port = newport
|
||||
sabnzbd.cfg.port.set(newport)
|
||||
if new_instance or not check_for_sabnzbd(url, upload_nzbs, autobrowser):
|
||||
# Bail out if we have fixed our ports after first start-up
|
||||
if sabnzbd.cfg.fixed_ports():
|
||||
Bail_Out(browserhost, cherryport)
|
||||
# Find free port to bind
|
||||
newport = find_free_port(browserhost, port)
|
||||
if newport > 0:
|
||||
# Save the new port
|
||||
if https_port:
|
||||
https_port = newport
|
||||
sabnzbd.cfg.https_port.set(newport)
|
||||
else:
|
||||
# In case HTTPS == HTTP port
|
||||
http_port = newport
|
||||
sabnzbd.cfg.port.set(newport)
|
||||
except:
|
||||
# Something else wrong, probably badly specified host
|
||||
Bail_Out(browserhost, cherryport, '49')
|
||||
|
||||
# NonSSL check if there's no HTTPS or we only use 1 port
|
||||
if not (enable_https and not https_port):
|
||||
try:
|
||||
cherrypy.process.servers.check_port(browserhost, cherryport, timeout=0.025)
|
||||
cherrypy.process.servers.check_port(browserhost, cherryport, timeout=0.05)
|
||||
except IOError, error:
|
||||
if str(error) == 'Port not bound.':
|
||||
pass
|
||||
else:
|
||||
if not url:
|
||||
url = 'http://%s:%s/sabnzbd/api?' % (browserhost, cherryport)
|
||||
if not sabnzbd.cfg.fixed_ports():
|
||||
if new_instance or not check_for_sabnzbd(url, upload_nzbs, autobrowser):
|
||||
port = find_free_port(browserhost, cherryport)
|
||||
if port > 0:
|
||||
sabnzbd.cfg.cherryport.set(port)
|
||||
notify_port_change = True
|
||||
cherryport = port
|
||||
if new_instance or not check_for_sabnzbd(url, upload_nzbs, autobrowser):
|
||||
# Bail out if we have fixed our ports after first start-up
|
||||
if sabnzbd.cfg.fixed_ports():
|
||||
Bail_Out(browserhost, cherryport)
|
||||
# Find free port to bind
|
||||
port = find_free_port(browserhost, cherryport)
|
||||
if port > 0:
|
||||
sabnzbd.cfg.cherryport.set(port)
|
||||
cherryport = port
|
||||
except:
|
||||
# Something else wrong, probably badly specified host
|
||||
Bail_Out(browserhost, cherryport, '49')
|
||||
|
||||
# We found a port, now we never check again
|
||||
sabnzbd.cfg.fixed_ports.set(True)
|
||||
|
||||
if logging_level is None:
|
||||
logging_level = sabnzbd.cfg.log_level()
|
||||
else:
|
||||
@@ -1386,10 +1383,6 @@ def main():
|
||||
# Set authentication for CherryPy
|
||||
sabnzbd.interface.set_auth(cherrypy.config)
|
||||
|
||||
# Notify if port was changed
|
||||
if notify_port_change:
|
||||
logging.warning(T('Could not bind to configured port. Port changed to %s') % cherryport)
|
||||
|
||||
logging.info('Starting web-interface on %s:%s', cherryhost, cherryport)
|
||||
|
||||
sabnzbd.cfg.log_level.callback(guard_loglevel)
|
||||
|
||||
@@ -19,10 +19,6 @@
|
||||
<th scope="row">$T('confgFile'): </th>
|
||||
<td>$configfn</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">$T('cache').capitalize(): </th>
|
||||
<td><!--#set $msg=$T('ft-buffer@2')%($cache_art, $cache_size)#-->$msg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">$T('parameters'): </th>
|
||||
<td>$cmdline</td>
|
||||
|
||||
@@ -17,9 +17,7 @@
|
||||
<th>$T('category')</th>
|
||||
<th>$T('priority')</th>
|
||||
<th>$T('mode')</th>
|
||||
<!--#if $scripts#-->
|
||||
<th>$T('script')</th>
|
||||
<!--#end if#-->
|
||||
<th>$T('catFolderPath')</th>
|
||||
<th colspan="2">$T('catTags')</th>
|
||||
</tr>
|
||||
@@ -61,8 +59,8 @@
|
||||
<option value="3" <!--#if $slot.pp=="3" then 'selected="selected"' else ""#-->>$T('pp-delete')</option>
|
||||
</select>
|
||||
</td>
|
||||
<!--#if $scripts#-->
|
||||
<td>
|
||||
<!--#if $scripts#-->
|
||||
<select name="script">
|
||||
<!--#for $sc in $scripts#-->
|
||||
<!--#if not ($sc == 'Default' and $slot.name == '*')#-->
|
||||
@@ -70,8 +68,12 @@
|
||||
<!--#end if#-->
|
||||
<!--#end for#-->
|
||||
</select>
|
||||
<!--#else#-->
|
||||
<select name="script" disabled>
|
||||
|
||||
</select>
|
||||
<!--#end if#-->
|
||||
</td>
|
||||
<!--#end if#-->
|
||||
<td class="nowrap">
|
||||
<input type="text" name="dir" class="fileBrowserSmall" value="$slot.dir" size="20" data-initialdir="$defdir" data-title="$T('catFolderPath')" title="$T('explain-catTags2')" />
|
||||
</td>
|
||||
|
||||
@@ -265,6 +265,11 @@ function do_restart() {
|
||||
|
||||
// Now we try untill we can connect
|
||||
var refreshInterval = setInterval(function() {
|
||||
// We skip the first one
|
||||
if(failureCounter == 0) {
|
||||
failureCounter = failureCounter+1;
|
||||
return
|
||||
}
|
||||
$.ajax({ url: urlTotal,
|
||||
success: function() {
|
||||
// Back to base
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-header"><span class="glyphicon glyphicon-off"></span> $T('Glitter-onFinish'):</li>
|
||||
<li>
|
||||
<select data-bind="value: onQueueFinish" class="form-control">
|
||||
<select data-bind="value: onQueueFinish, event: { change: setOnQueueFinish }" class="form-control">
|
||||
<option value=""></option>
|
||||
<optgroup label="$T('eoq-actions')">
|
||||
<option value="shutdown_program">$T('shutdownSab')</option>
|
||||
@@ -111,9 +111,11 @@
|
||||
<option value="hibernate_pc">$T('hibernatePc')</option>
|
||||
<!--#end if#-->
|
||||
</optgroup>
|
||||
<optgroup label="$T('eoq-scripts')">
|
||||
<optgroup label="$T('eoq-scripts')" data-bind="visible: queue.scriptsList().length > 1">
|
||||
<!-- ko foreach: queue.scriptsList -->
|
||||
<option data-bind="text: \$data, attr: { value: 'script_'+\$data } " ></option>
|
||||
<!-- ko if: \$data != glitterTranslate.noneText -->
|
||||
<option data-bind="text: \$data, attr: { value: 'script_'+\$data } " ></option>
|
||||
<!-- /ko -->
|
||||
<!-- /ko -->
|
||||
</optgroup>
|
||||
</select>
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
<div class="col-sm-6">$T('swtag-server')</div>
|
||||
<div class="col-sm-6">
|
||||
<span data-bind="text: servername"></span>
|
||||
<span class="label label-default" data-bind="visible: serveroptional">$T('optional').capitalize()</span>
|
||||
<span class="label label-warning" data-bind="visible: serveroptional">$T('optional').capitalize()</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
glitterTranslate.minutes = "$T('mins')"
|
||||
glitterTranslate.shutdown = "$T('shutdownOK?')";
|
||||
glitterTranslate.restart = "$T('explain-Restart')".replace(/<br \/>/g, "\n");
|
||||
glitterTranslate.repair = "$T('explain-Repair')".replace(/<br \/>/g, "\n");
|
||||
glitterTranslate.repair = "$T('explain-Repair')".replace(/<br \/>/g, "\n").replace(/"/g,'"');
|
||||
glitterTranslate.removeDown = "$T('Glitter-confirmClearDownloads')";
|
||||
glitterTranslate.removeDow1 = "$T('Glitter-confirmClear1Download')";
|
||||
glitterTranslate.encrypted = "$T('Glitter-encrypted')";
|
||||
@@ -125,7 +125,7 @@
|
||||
<!--#include raw $webdir + "/static/javascripts/jquery.min.js"#-->
|
||||
<!--#include raw $webdir + "/static/javascripts/jquery-ui.min.js"#-->
|
||||
<!--#include raw $webdir + "/static/javascripts/jquery.peity.min.js"#-->
|
||||
<!--#include raw $webdir + "/static/javascripts/moment.js"#-->
|
||||
<!--#include raw $webdir + "/static/javascripts/moment.min.js"#-->
|
||||
<!--#include raw $webdir + "/static/javascripts/knockout-latest.js"#-->
|
||||
<!--#include raw $webdir + "/static/javascripts/knockout-extensions.js"#-->
|
||||
<!--#include raw $webdir + "/static/bootstrap/js/bootstrap.min.js"#-->
|
||||
|
||||
@@ -471,6 +471,12 @@ function ViewModel() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Fix DateJS bug it has some strange problem with the current day-of-month + 1
|
||||
// Removing the space makes DateJS work properly
|
||||
newValue = newValue.replace(/\s*h|\s*m|\s*d/g, function(match) {
|
||||
return match.trim()
|
||||
});
|
||||
|
||||
// Parse
|
||||
var pauseParsed = Date.parse(newValue);
|
||||
|
||||
@@ -593,7 +599,7 @@ function ViewModel() {
|
||||
}
|
||||
|
||||
// Shutdown options
|
||||
self.onQueueFinish.subscribe(function(newValue) {
|
||||
self.setOnQueueFinish = function(model, event) {
|
||||
// Ignore updates before the page is done
|
||||
if(!self.hasStatusInfo()) return;
|
||||
|
||||
@@ -601,9 +607,12 @@ function ViewModel() {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'change_complete_action',
|
||||
value: newValue
|
||||
value: $(event.target).val()
|
||||
})
|
||||
})
|
||||
|
||||
// Top stop blinking while the API is calling
|
||||
self.onQueueFinish($(event.target).val())
|
||||
}
|
||||
|
||||
// Use global settings or device-specific?
|
||||
self.useGlobalOptions.subscribe(function(newValue) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
7
interfaces/Glitter/templates/static/javascripts/moment.min.js
vendored
Normal file
7
interfaces/Glitter/templates/static/javascripts/moment.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1,59 +1,60 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : danish (da)
|
||||
//! locale : Danish [da]
|
||||
//! author : Ulrik Nielsen : https://github.com/mrbase
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var da = moment.defineLocale('da', {
|
||||
months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
|
||||
monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
|
||||
weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
|
||||
weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
|
||||
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D. MMMM YYYY',
|
||||
LLL : 'D. MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd [d.] D. MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay : '[I dag kl.] LT',
|
||||
nextDay : '[I morgen kl.] LT',
|
||||
nextWeek : 'dddd [kl.] LT',
|
||||
lastDay : '[I går kl.] LT',
|
||||
lastWeek : '[sidste] dddd [kl] LT',
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'om %s',
|
||||
past : '%s siden',
|
||||
s : 'få sekunder',
|
||||
m : 'et minut',
|
||||
mm : '%d minutter',
|
||||
h : 'en time',
|
||||
hh : '%d timer',
|
||||
d : 'en dag',
|
||||
dd : '%d dage',
|
||||
M : 'en måned',
|
||||
MM : '%d måneder',
|
||||
y : 'et år',
|
||||
yy : '%d år'
|
||||
},
|
||||
ordinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
var da = moment.defineLocale('da', {
|
||||
months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
|
||||
monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
|
||||
weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
|
||||
weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
|
||||
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D. MMMM YYYY',
|
||||
LLL : 'D. MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay : '[i dag kl.] LT',
|
||||
nextDay : '[i morgen kl.] LT',
|
||||
nextWeek : 'på dddd [kl.] LT',
|
||||
lastDay : '[i går kl.] LT',
|
||||
lastWeek : '[i] dddd[s kl.] LT',
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'om %s',
|
||||
past : '%s siden',
|
||||
s : 'få sekunder',
|
||||
m : 'et minut',
|
||||
mm : '%d minutter',
|
||||
h : 'en time',
|
||||
hh : '%d timer',
|
||||
d : 'en dag',
|
||||
dd : '%d dage',
|
||||
M : 'en måned',
|
||||
MM : '%d måneder',
|
||||
y : 'et år',
|
||||
yy : '%d år'
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return da;
|
||||
return da;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,74 +1,78 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : german (de)
|
||||
//! locale : German [de]
|
||||
//! author : lluchs : https://github.com/lluchs
|
||||
//! author: Menelion Elensúle: https://github.com/Oire
|
||||
//! author : Mikolaj Dadela : https://github.com/mik01aj
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
||||
var format = {
|
||||
'm': ['eine Minute', 'einer Minute'],
|
||||
'h': ['eine Stunde', 'einer Stunde'],
|
||||
'd': ['ein Tag', 'einem Tag'],
|
||||
'dd': [number + ' Tage', number + ' Tagen'],
|
||||
'M': ['ein Monat', 'einem Monat'],
|
||||
'MM': [number + ' Monate', number + ' Monaten'],
|
||||
'y': ['ein Jahr', 'einem Jahr'],
|
||||
'yy': [number + ' Jahre', number + ' Jahren']
|
||||
};
|
||||
return withoutSuffix ? format[key][0] : format[key][1];
|
||||
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
||||
var format = {
|
||||
'm': ['eine Minute', 'einer Minute'],
|
||||
'h': ['eine Stunde', 'einer Stunde'],
|
||||
'd': ['ein Tag', 'einem Tag'],
|
||||
'dd': [number + ' Tage', number + ' Tagen'],
|
||||
'M': ['ein Monat', 'einem Monat'],
|
||||
'MM': [number + ' Monate', number + ' Monaten'],
|
||||
'y': ['ein Jahr', 'einem Jahr'],
|
||||
'yy': [number + ' Jahre', number + ' Jahren']
|
||||
};
|
||||
return withoutSuffix ? format[key][0] : format[key][1];
|
||||
}
|
||||
|
||||
var de = moment.defineLocale('de', {
|
||||
months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
|
||||
monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
|
||||
monthsParseExact : true,
|
||||
weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
|
||||
weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
|
||||
weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
|
||||
weekdaysParseExact : true,
|
||||
longDateFormat : {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D. MMMM YYYY',
|
||||
LLL : 'D. MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd, D. MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[heute um] LT [Uhr]',
|
||||
sameElse: 'L',
|
||||
nextDay: '[morgen um] LT [Uhr]',
|
||||
nextWeek: 'dddd [um] LT [Uhr]',
|
||||
lastDay: '[gestern um] LT [Uhr]',
|
||||
lastWeek: '[letzten] dddd [um] LT [Uhr]'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'in %s',
|
||||
past : 'vor %s',
|
||||
s : 'ein paar Sekunden',
|
||||
m : processRelativeTime,
|
||||
mm : '%d Minuten',
|
||||
h : processRelativeTime,
|
||||
hh : '%d Stunden',
|
||||
d : processRelativeTime,
|
||||
dd : processRelativeTime,
|
||||
M : processRelativeTime,
|
||||
MM : processRelativeTime,
|
||||
y : processRelativeTime,
|
||||
yy : processRelativeTime
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
var de = moment.defineLocale('de', {
|
||||
months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
|
||||
monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
|
||||
weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
|
||||
weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
|
||||
weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
|
||||
longDateFormat : {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D. MMMM YYYY',
|
||||
LLL : 'D. MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd, D. MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Heute um] LT [Uhr]',
|
||||
sameElse: 'L',
|
||||
nextDay: '[Morgen um] LT [Uhr]',
|
||||
nextWeek: 'dddd [um] LT [Uhr]',
|
||||
lastDay: '[Gestern um] LT [Uhr]',
|
||||
lastWeek: '[letzten] dddd [um] LT [Uhr]'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'in %s',
|
||||
past : 'vor %s',
|
||||
s : 'ein paar Sekunden',
|
||||
m : processRelativeTime,
|
||||
mm : '%d Minuten',
|
||||
h : processRelativeTime,
|
||||
hh : '%d Stunden',
|
||||
d : processRelativeTime,
|
||||
dd : processRelativeTime,
|
||||
M : processRelativeTime,
|
||||
MM : processRelativeTime,
|
||||
y : processRelativeTime,
|
||||
yy : processRelativeTime
|
||||
},
|
||||
ordinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
return de;
|
||||
|
||||
return de;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,78 +1,83 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : spanish (es)
|
||||
//! locale : Spanish [es]
|
||||
//! author : Julio Napurí : https://github.com/julionc
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var monthsShortDot = 'Ene._Feb._Mar._Abr._May._Jun._Jul._Ago._Sep._Oct._Nov._Dic.'.split('_'),
|
||||
monthsShort = 'Ene_Feb_Mar_Abr_May_Jun_Jul_Ago_Sep_Oct_Nov_Dic'.split('_');
|
||||
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');
|
||||
var monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
|
||||
|
||||
var es = moment.defineLocale('es', {
|
||||
months : 'Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre'.split('_'),
|
||||
monthsShort : function (m, format) {
|
||||
if (/-MMM-/.test(format)) {
|
||||
return monthsShort[m.month()];
|
||||
} else {
|
||||
return monthsShortDot[m.month()];
|
||||
}
|
||||
},
|
||||
weekdays : 'Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado'.split('_'),
|
||||
weekdaysShort : 'Dom._Lun._Mar._Mié._Jue._Vie._Sáb.'.split('_'),
|
||||
weekdaysMin : 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'H:mm',
|
||||
LTS : 'H:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D [de] MMMM [de] YYYY',
|
||||
LLL : 'D [de] MMMM [de] YYYY H:mm',
|
||||
LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay : function () {
|
||||
return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
nextDay : function () {
|
||||
return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
nextWeek : function () {
|
||||
return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
lastDay : function () {
|
||||
return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
lastWeek : function () {
|
||||
return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'en %s',
|
||||
past : 'hace %s',
|
||||
s : 'unos segundos',
|
||||
m : 'un minuto',
|
||||
mm : '%d minutos',
|
||||
h : 'una hora',
|
||||
hh : '%d horas',
|
||||
d : 'un día',
|
||||
dd : '%d días',
|
||||
M : 'un mes',
|
||||
MM : '%d meses',
|
||||
y : 'un año',
|
||||
yy : '%d años'
|
||||
},
|
||||
ordinalParse : /\d{1,2}º/,
|
||||
ordinal : '%dº',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
var es = moment.defineLocale('es', {
|
||||
months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
|
||||
monthsShort : function (m, format) {
|
||||
if (!m) {
|
||||
return monthsShortDot;
|
||||
} else if (/-MMM-/.test(format)) {
|
||||
return monthsShort[m.month()];
|
||||
} else {
|
||||
return monthsShortDot[m.month()];
|
||||
}
|
||||
});
|
||||
},
|
||||
monthsParseExact : true,
|
||||
weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
|
||||
weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
|
||||
weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
|
||||
weekdaysParseExact : true,
|
||||
longDateFormat : {
|
||||
LT : 'H:mm',
|
||||
LTS : 'H:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D [de] MMMM [de] YYYY',
|
||||
LLL : 'D [de] MMMM [de] YYYY H:mm',
|
||||
LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay : function () {
|
||||
return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
nextDay : function () {
|
||||
return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
nextWeek : function () {
|
||||
return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
lastDay : function () {
|
||||
return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
lastWeek : function () {
|
||||
return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
|
||||
},
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'en %s',
|
||||
past : 'hace %s',
|
||||
s : 'unos segundos',
|
||||
m : 'un minuto',
|
||||
mm : '%d minutos',
|
||||
h : 'una hora',
|
||||
hh : '%d horas',
|
||||
d : 'un día',
|
||||
dd : '%d días',
|
||||
M : 'un mes',
|
||||
MM : '%d meses',
|
||||
y : 'un año',
|
||||
yy : '%d años'
|
||||
},
|
||||
dayOfMonthOrdinalParse : /\d{1,2}º/,
|
||||
ordinal : '%dº',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return es;
|
||||
return es;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : finnish (fi)
|
||||
//! locale : Finnish [fi]
|
||||
//! author : Tarmo Aidantausta : https://github.com/bleadof
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
|
||||
numbersFuture = [
|
||||
'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
|
||||
numbersPast[7], numbersPast[8], numbersPast[9]
|
||||
];
|
||||
function translate(number, withoutSuffix, key, isFuture) {
|
||||
var result = '';
|
||||
switch (key) {
|
||||
var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' ');
|
||||
var numbersFuture = [
|
||||
'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
|
||||
numbersPast[7], numbersPast[8], numbersPast[9]
|
||||
];
|
||||
function translate(number, withoutSuffix, key, isFuture) {
|
||||
var result = '';
|
||||
switch (key) {
|
||||
case 's':
|
||||
return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
|
||||
case 'm':
|
||||
@@ -44,63 +45,63 @@
|
||||
case 'yy':
|
||||
result = isFuture ? 'vuoden' : 'vuotta';
|
||||
break;
|
||||
}
|
||||
result = verbalNumber(number, isFuture) + ' ' + result;
|
||||
return result;
|
||||
}
|
||||
function verbalNumber(number, isFuture) {
|
||||
return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
|
||||
result = verbalNumber(number, isFuture) + ' ' + result;
|
||||
return result;
|
||||
}
|
||||
function verbalNumber(number, isFuture) {
|
||||
return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
|
||||
}
|
||||
|
||||
var fi = moment.defineLocale('fi', {
|
||||
months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
|
||||
monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
|
||||
weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
|
||||
weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
|
||||
weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH.mm',
|
||||
LTS : 'HH.mm.ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'Do MMMM[ta] YYYY',
|
||||
LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
|
||||
LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
|
||||
l : 'D.M.YYYY',
|
||||
ll : 'Do MMM YYYY',
|
||||
lll : 'Do MMM YYYY, [klo] HH.mm',
|
||||
llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay : '[tänään] [klo] LT',
|
||||
nextDay : '[huomenna] [klo] LT',
|
||||
nextWeek : 'dddd [klo] LT',
|
||||
lastDay : '[eilen] [klo] LT',
|
||||
lastWeek : '[viime] dddd[na] [klo] LT',
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : '%s päästä',
|
||||
past : '%s sitten',
|
||||
s : translate,
|
||||
m : translate,
|
||||
mm : translate,
|
||||
h : translate,
|
||||
hh : translate,
|
||||
d : translate,
|
||||
dd : translate,
|
||||
M : translate,
|
||||
MM : translate,
|
||||
y : translate,
|
||||
yy : translate
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
var fi = moment.defineLocale('fi', {
|
||||
months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
|
||||
monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
|
||||
weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
|
||||
weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
|
||||
weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH.mm',
|
||||
LTS : 'HH.mm.ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'Do MMMM[ta] YYYY',
|
||||
LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
|
||||
LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
|
||||
l : 'D.M.YYYY',
|
||||
ll : 'Do MMM YYYY',
|
||||
lll : 'Do MMM YYYY, [klo] HH.mm',
|
||||
llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay : '[tänään] [klo] LT',
|
||||
nextDay : '[huomenna] [klo] LT',
|
||||
nextWeek : 'dddd [klo] LT',
|
||||
lastDay : '[eilen] [klo] LT',
|
||||
lastWeek : '[viime] dddd[na] [klo] LT',
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : '%s päästä',
|
||||
past : '%s sitten',
|
||||
s : translate,
|
||||
m : translate,
|
||||
mm : translate,
|
||||
h : translate,
|
||||
hh : translate,
|
||||
d : translate,
|
||||
dd : translate,
|
||||
M : translate,
|
||||
MM : translate,
|
||||
y : translate,
|
||||
yy : translate
|
||||
},
|
||||
ordinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
return fi;
|
||||
|
||||
return fi;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,61 +1,83 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : french (fr)
|
||||
//! locale : French [fr]
|
||||
//! author : John Fischer : https://github.com/jfroffice
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var fr = moment.defineLocale('fr', {
|
||||
months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
|
||||
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
|
||||
weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
|
||||
weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
|
||||
weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd D MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Aujourd\'hui à] LT',
|
||||
nextDay: '[Demain à] LT',
|
||||
nextWeek: 'dddd [à] LT',
|
||||
lastDay: '[Hier à] LT',
|
||||
lastWeek: 'dddd [dernier à] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'dans %s',
|
||||
past : 'il y a %s',
|
||||
s : 'quelques secondes',
|
||||
m : 'une minute',
|
||||
mm : '%d minutes',
|
||||
h : 'une heure',
|
||||
hh : '%d heures',
|
||||
d : 'un jour',
|
||||
dd : '%d jours',
|
||||
M : 'un mois',
|
||||
MM : '%d mois',
|
||||
y : 'un an',
|
||||
yy : '%d ans'
|
||||
},
|
||||
ordinalParse: /\d{1,2}(er|)/,
|
||||
ordinal : function (number) {
|
||||
return number + (number === 1 ? 'er' : '');
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
var fr = moment.defineLocale('fr', {
|
||||
months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
|
||||
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
|
||||
monthsParseExact : true,
|
||||
weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
|
||||
weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
|
||||
weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
|
||||
weekdaysParseExact : true,
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd D MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay : '[Aujourd’hui à] LT',
|
||||
nextDay : '[Demain à] LT',
|
||||
nextWeek : 'dddd [à] LT',
|
||||
lastDay : '[Hier à] LT',
|
||||
lastWeek : 'dddd [dernier à] LT',
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'dans %s',
|
||||
past : 'il y a %s',
|
||||
s : 'quelques secondes',
|
||||
m : 'une minute',
|
||||
mm : '%d minutes',
|
||||
h : 'une heure',
|
||||
hh : '%d heures',
|
||||
d : 'un jour',
|
||||
dd : '%d jours',
|
||||
M : 'un mois',
|
||||
MM : '%d mois',
|
||||
y : 'un an',
|
||||
yy : '%d ans'
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
|
||||
ordinal : function (number, period) {
|
||||
switch (period) {
|
||||
// TODO: Return 'e' when day of month > 1. Move this case inside
|
||||
// block for masculine words below.
|
||||
// See https://github.com/moment/moment/issues/3375
|
||||
case 'D':
|
||||
return number + (number === 1 ? 'er' : '');
|
||||
|
||||
// Words with masculine grammatical gender: mois, trimestre, jour
|
||||
default:
|
||||
case 'M':
|
||||
case 'Q':
|
||||
case 'DDD':
|
||||
case 'd':
|
||||
return number + (number === 1 ? 'er' : 'e');
|
||||
|
||||
// Words with feminine grammatical gender: semaine
|
||||
case 'w':
|
||||
case 'W':
|
||||
return number + (number === 1 ? 're' : 'e');
|
||||
}
|
||||
});
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return fr;
|
||||
return fr;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,60 +1,63 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : norwegian bokmål (nb)
|
||||
//! locale : Norwegian Bokmål [nb]
|
||||
//! authors : Espen Hovlandsdal : https://github.com/rexxars
|
||||
//! Sigurd Gartmann : https://github.com/sigurdga
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var nb = moment.defineLocale('nb', {
|
||||
months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
|
||||
monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
|
||||
weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
|
||||
weekdaysShort : 'søn_man_tirs_ons_tors_fre_lør'.split('_'),
|
||||
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'H.mm',
|
||||
LTS : 'H.mm.ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D. MMMM YYYY',
|
||||
LLL : 'D. MMMM YYYY [kl.] H.mm',
|
||||
LLLL : 'dddd D. MMMM YYYY [kl.] H.mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[i dag kl.] LT',
|
||||
nextDay: '[i morgen kl.] LT',
|
||||
nextWeek: 'dddd [kl.] LT',
|
||||
lastDay: '[i går kl.] LT',
|
||||
lastWeek: '[forrige] dddd [kl.] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'om %s',
|
||||
past : 'for %s siden',
|
||||
s : 'noen sekunder',
|
||||
m : 'ett minutt',
|
||||
mm : '%d minutter',
|
||||
h : 'en time',
|
||||
hh : '%d timer',
|
||||
d : 'en dag',
|
||||
dd : '%d dager',
|
||||
M : 'en måned',
|
||||
MM : '%d måneder',
|
||||
y : 'ett år',
|
||||
yy : '%d år'
|
||||
},
|
||||
ordinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
var nb = moment.defineLocale('nb', {
|
||||
months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
|
||||
monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
|
||||
monthsParseExact : true,
|
||||
weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
|
||||
weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
|
||||
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
|
||||
weekdaysParseExact : true,
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D. MMMM YYYY',
|
||||
LLL : 'D. MMMM YYYY [kl.] HH:mm',
|
||||
LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[i dag kl.] LT',
|
||||
nextDay: '[i morgen kl.] LT',
|
||||
nextWeek: 'dddd [kl.] LT',
|
||||
lastDay: '[i går kl.] LT',
|
||||
lastWeek: '[forrige] dddd [kl.] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'om %s',
|
||||
past : '%s siden',
|
||||
s : 'noen sekunder',
|
||||
m : 'ett minutt',
|
||||
mm : '%d minutter',
|
||||
h : 'en time',
|
||||
hh : '%d timer',
|
||||
d : 'en dag',
|
||||
dd : '%d dager',
|
||||
M : 'en måned',
|
||||
MM : '%d måneder',
|
||||
y : 'ett år',
|
||||
yy : '%d år'
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return nb;
|
||||
return nb;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,70 +1,88 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : dutch (nl)
|
||||
//! author : Joris Röling : https://github.com/jjupiter
|
||||
//! locale : Dutch [nl]
|
||||
//! author : Joris Röling : https://github.com/jorisroling
|
||||
//! author : Jacob Middag : https://github.com/middagj
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
|
||||
monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
|
||||
var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');
|
||||
var monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
|
||||
|
||||
var nl = moment.defineLocale('nl', {
|
||||
months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
|
||||
monthsShort : function (m, format) {
|
||||
if (/-MMM-/.test(format)) {
|
||||
return monthsShortWithoutDots[m.month()];
|
||||
} else {
|
||||
return monthsShortWithDots[m.month()];
|
||||
}
|
||||
},
|
||||
weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
|
||||
weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
|
||||
weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD-MM-YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd D MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[vandaag om] LT',
|
||||
nextDay: '[morgen om] LT',
|
||||
nextWeek: 'dddd [om] LT',
|
||||
lastDay: '[gisteren om] LT',
|
||||
lastWeek: '[afgelopen] dddd [om] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'over %s',
|
||||
past : '%s geleden',
|
||||
s : 'een paar seconden',
|
||||
m : 'één minuut',
|
||||
mm : '%d minuten',
|
||||
h : 'één uur',
|
||||
hh : '%d uur',
|
||||
d : 'één dag',
|
||||
dd : '%d dagen',
|
||||
M : 'één maand',
|
||||
MM : '%d maanden',
|
||||
y : 'één jaar',
|
||||
yy : '%d jaar'
|
||||
},
|
||||
ordinalParse: /\d{1,2}(ste|de)/,
|
||||
ordinal : function (number) {
|
||||
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
|
||||
var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
|
||||
|
||||
var nl = moment.defineLocale('nl', {
|
||||
months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
|
||||
monthsShort : function (m, format) {
|
||||
if (!m) {
|
||||
return monthsShortWithDots;
|
||||
} else if (/-MMM-/.test(format)) {
|
||||
return monthsShortWithoutDots[m.month()];
|
||||
} else {
|
||||
return monthsShortWithDots[m.month()];
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
return nl;
|
||||
monthsRegex: monthsRegex,
|
||||
monthsShortRegex: monthsRegex,
|
||||
monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
|
||||
monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
|
||||
|
||||
}));
|
||||
monthsParse : monthsParse,
|
||||
longMonthsParse : monthsParse,
|
||||
shortMonthsParse : monthsParse,
|
||||
|
||||
weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
|
||||
weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
|
||||
weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
|
||||
weekdaysParseExact : true,
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD-MM-YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd D MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[vandaag om] LT',
|
||||
nextDay: '[morgen om] LT',
|
||||
nextWeek: 'dddd [om] LT',
|
||||
lastDay: '[gisteren om] LT',
|
||||
lastWeek: '[afgelopen] dddd [om] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'over %s',
|
||||
past : '%s geleden',
|
||||
s : 'een paar seconden',
|
||||
m : 'één minuut',
|
||||
mm : '%d minuten',
|
||||
h : 'één uur',
|
||||
hh : '%d uur',
|
||||
d : 'één dag',
|
||||
dd : '%d dagen',
|
||||
M : 'één maand',
|
||||
MM : '%d maanden',
|
||||
y : 'één jaar',
|
||||
yy : '%d jaar'
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
|
||||
ordinal : function (number) {
|
||||
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return nl;
|
||||
|
||||
})));
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : polish (pl)
|
||||
//! locale : Polish [pl]
|
||||
//! author : Rafal Hirsz : https://github.com/evoL
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
|
||||
monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
|
||||
function plural(n) {
|
||||
return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
|
||||
}
|
||||
function translate(number, withoutSuffix, key) {
|
||||
var result = number + ' ';
|
||||
switch (key) {
|
||||
var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_');
|
||||
var monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
|
||||
function plural(n) {
|
||||
return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
|
||||
}
|
||||
function translate(number, withoutSuffix, key) {
|
||||
var result = number + ' ';
|
||||
switch (key) {
|
||||
case 'm':
|
||||
return withoutSuffix ? 'minuta' : 'minutę';
|
||||
case 'mm':
|
||||
@@ -29,41 +30,43 @@
|
||||
return result + (plural(number) ? 'miesiące' : 'miesięcy');
|
||||
case 'yy':
|
||||
return result + (plural(number) ? 'lata' : 'lat');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var pl = moment.defineLocale('pl', {
|
||||
months : function (momentToFormat, format) {
|
||||
if (format === '') {
|
||||
// Hack: if format empty we know this is used to generate
|
||||
// RegExp by moment. Give then back both valid forms of months
|
||||
// in RegExp ready format.
|
||||
return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
|
||||
} else if (/D MMMM/.test(format)) {
|
||||
return monthsSubjective[momentToFormat.month()];
|
||||
} else {
|
||||
return monthsNominative[momentToFormat.month()];
|
||||
}
|
||||
},
|
||||
monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
|
||||
weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
|
||||
weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),
|
||||
weekdaysMin : 'N_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd, D MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Dziś o] LT',
|
||||
nextDay: '[Jutro o] LT',
|
||||
nextWeek: '[W] dddd [o] LT',
|
||||
lastDay: '[Wczoraj o] LT',
|
||||
lastWeek: function () {
|
||||
switch (this.day()) {
|
||||
var pl = moment.defineLocale('pl', {
|
||||
months : function (momentToFormat, format) {
|
||||
if (!momentToFormat) {
|
||||
return monthsNominative;
|
||||
} else if (format === '') {
|
||||
// Hack: if format empty we know this is used to generate
|
||||
// RegExp by moment. Give then back both valid forms of months
|
||||
// in RegExp ready format.
|
||||
return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
|
||||
} else if (/D MMMM/.test(format)) {
|
||||
return monthsSubjective[momentToFormat.month()];
|
||||
} else {
|
||||
return monthsNominative[momentToFormat.month()];
|
||||
}
|
||||
},
|
||||
monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
|
||||
weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
|
||||
weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
|
||||
weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd, D MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Dziś o] LT',
|
||||
nextDay: '[Jutro o] LT',
|
||||
nextWeek: '[W] dddd [o] LT',
|
||||
lastDay: '[Wczoraj o] LT',
|
||||
lastWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
return '[W zeszłą niedzielę o] LT';
|
||||
case 3:
|
||||
@@ -72,33 +75,33 @@
|
||||
return '[W zeszłą sobotę o] LT';
|
||||
default:
|
||||
return '[W zeszły] dddd [o] LT';
|
||||
}
|
||||
},
|
||||
sameElse: 'L'
|
||||
}
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'za %s',
|
||||
past : '%s temu',
|
||||
s : 'kilka sekund',
|
||||
m : translate,
|
||||
mm : translate,
|
||||
h : translate,
|
||||
hh : translate,
|
||||
d : '1 dzień',
|
||||
dd : '%d dni',
|
||||
M : 'miesiąc',
|
||||
MM : translate,
|
||||
y : 'rok',
|
||||
yy : translate
|
||||
},
|
||||
ordinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'za %s',
|
||||
past : '%s temu',
|
||||
s : 'kilka sekund',
|
||||
m : translate,
|
||||
mm : translate,
|
||||
h : translate,
|
||||
hh : translate,
|
||||
d : '1 dzień',
|
||||
dd : '%d dni',
|
||||
M : 'miesiąc',
|
||||
MM : translate,
|
||||
y : 'rok',
|
||||
yy : translate
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return pl;
|
||||
return pl;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,59 +1,61 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : brazilian portuguese (pt-br)
|
||||
//! locale : Portuguese (Brazil) [pt-br]
|
||||
//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var pt_br = moment.defineLocale('pt-br', {
|
||||
months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
|
||||
monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
|
||||
weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),
|
||||
weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
|
||||
weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D [de] MMMM [de] YYYY',
|
||||
LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
|
||||
LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
|
||||
var ptBr = moment.defineLocale('pt-br', {
|
||||
months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),
|
||||
monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
|
||||
weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
|
||||
weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
|
||||
weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
|
||||
weekdaysParseExact : true,
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD/MM/YYYY',
|
||||
LL : 'D [de] MMMM [de] YYYY',
|
||||
LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
|
||||
LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Hoje às] LT',
|
||||
nextDay: '[Amanhã às] LT',
|
||||
nextWeek: 'dddd [às] LT',
|
||||
lastDay: '[Ontem às] LT',
|
||||
lastWeek: function () {
|
||||
return (this.day() === 0 || this.day() === 6) ?
|
||||
'[Último] dddd [às] LT' : // Saturday + Sunday
|
||||
'[Última] dddd [às] LT'; // Monday - Friday
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Hoje às] LT',
|
||||
nextDay: '[Amanhã às] LT',
|
||||
nextWeek: 'dddd [às] LT',
|
||||
lastDay: '[Ontem às] LT',
|
||||
lastWeek: function () {
|
||||
return (this.day() === 0 || this.day() === 6) ?
|
||||
'[Último] dddd [às] LT' : // Saturday + Sunday
|
||||
'[Última] dddd [às] LT'; // Monday - Friday
|
||||
},
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'em %s',
|
||||
past : '%s atrás',
|
||||
s : 'poucos segundos',
|
||||
m : 'um minuto',
|
||||
mm : '%d minutos',
|
||||
h : 'uma hora',
|
||||
hh : '%d horas',
|
||||
d : 'um dia',
|
||||
dd : '%d dias',
|
||||
M : 'um mês',
|
||||
MM : '%d meses',
|
||||
y : 'um ano',
|
||||
yy : '%d anos'
|
||||
},
|
||||
ordinalParse: /\d{1,2}º/,
|
||||
ordinal : '%dº'
|
||||
});
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'em %s',
|
||||
past : '%s atrás',
|
||||
s : 'poucos segundos',
|
||||
m : 'um minuto',
|
||||
mm : '%d minutos',
|
||||
h : 'uma hora',
|
||||
hh : '%d horas',
|
||||
d : 'um dia',
|
||||
dd : '%d dias',
|
||||
M : 'um mês',
|
||||
MM : '%d meses',
|
||||
y : 'um ano',
|
||||
yy : '%d anos'
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
||||
ordinal : '%dº'
|
||||
});
|
||||
|
||||
return pt_br;
|
||||
return ptBr;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,73 +1,75 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : romanian (ro)
|
||||
//! locale : Romanian [ro]
|
||||
//! author : Vlad Gurdiga : https://github.com/gurdiga
|
||||
//! author : Valentin Agachi : https://github.com/avaly
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
||||
var format = {
|
||||
'mm': 'minute',
|
||||
'hh': 'ore',
|
||||
'dd': 'zile',
|
||||
'MM': 'luni',
|
||||
'yy': 'ani'
|
||||
},
|
||||
separator = ' ';
|
||||
if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
|
||||
separator = ' de ';
|
||||
}
|
||||
return number + separator + format[key];
|
||||
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
||||
var format = {
|
||||
'mm': 'minute',
|
||||
'hh': 'ore',
|
||||
'dd': 'zile',
|
||||
'MM': 'luni',
|
||||
'yy': 'ani'
|
||||
},
|
||||
separator = ' ';
|
||||
if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
|
||||
separator = ' de ';
|
||||
}
|
||||
return number + separator + format[key];
|
||||
}
|
||||
|
||||
var ro = moment.defineLocale('ro', {
|
||||
months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
|
||||
monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
|
||||
weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
|
||||
weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
|
||||
weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'H:mm',
|
||||
LTS : 'H:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY H:mm',
|
||||
LLLL : 'dddd, D MMMM YYYY H:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[azi la] LT',
|
||||
nextDay: '[mâine la] LT',
|
||||
nextWeek: 'dddd [la] LT',
|
||||
lastDay: '[ieri la] LT',
|
||||
lastWeek: '[fosta] dddd [la] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'peste %s',
|
||||
past : '%s în urmă',
|
||||
s : 'câteva secunde',
|
||||
m : 'un minut',
|
||||
mm : relativeTimeWithPlural,
|
||||
h : 'o oră',
|
||||
hh : relativeTimeWithPlural,
|
||||
d : 'o zi',
|
||||
dd : relativeTimeWithPlural,
|
||||
M : 'o lună',
|
||||
MM : relativeTimeWithPlural,
|
||||
y : 'un an',
|
||||
yy : relativeTimeWithPlural
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 7 // The week that contains Jan 1st is the first week of the year.
|
||||
}
|
||||
});
|
||||
var ro = moment.defineLocale('ro', {
|
||||
months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
|
||||
monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
|
||||
monthsParseExact: true,
|
||||
weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
|
||||
weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
|
||||
weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'H:mm',
|
||||
LTS : 'H:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY H:mm',
|
||||
LLLL : 'dddd, D MMMM YYYY H:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[azi la] LT',
|
||||
nextDay: '[mâine la] LT',
|
||||
nextWeek: 'dddd [la] LT',
|
||||
lastDay: '[ieri la] LT',
|
||||
lastWeek: '[fosta] dddd [la] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'peste %s',
|
||||
past : '%s în urmă',
|
||||
s : 'câteva secunde',
|
||||
m : 'un minut',
|
||||
mm : relativeTimeWithPlural,
|
||||
h : 'o oră',
|
||||
hh : relativeTimeWithPlural,
|
||||
d : 'o zi',
|
||||
dd : relativeTimeWithPlural,
|
||||
M : 'o lună',
|
||||
MM : relativeTimeWithPlural,
|
||||
y : 'un an',
|
||||
yy : relativeTimeWithPlural
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 7 // The week that contains Jan 1st is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return ro;
|
||||
return ro;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,90 +1,110 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : russian (ru)
|
||||
//! locale : Russian [ru]
|
||||
//! author : Viktorminator : https://github.com/Viktorminator
|
||||
//! Author : Menelion Elensúle : https://github.com/Oire
|
||||
//! author : Коренберг Марк : https://github.com/socketpair
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
function plural(word, num) {
|
||||
var forms = word.split('_');
|
||||
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
|
||||
function plural(word, num) {
|
||||
var forms = word.split('_');
|
||||
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
|
||||
}
|
||||
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
||||
var format = {
|
||||
'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
|
||||
'hh': 'час_часа_часов',
|
||||
'dd': 'день_дня_дней',
|
||||
'MM': 'месяц_месяца_месяцев',
|
||||
'yy': 'год_года_лет'
|
||||
};
|
||||
if (key === 'm') {
|
||||
return withoutSuffix ? 'минута' : 'минуту';
|
||||
}
|
||||
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
||||
var format = {
|
||||
'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
|
||||
'hh': 'час_часа_часов',
|
||||
'dd': 'день_дня_дней',
|
||||
'MM': 'месяц_месяца_месяцев',
|
||||
'yy': 'год_года_лет'
|
||||
};
|
||||
if (key === 'm') {
|
||||
return withoutSuffix ? 'минута' : 'минуту';
|
||||
}
|
||||
else {
|
||||
return number + ' ' + plural(format[key], +number);
|
||||
}
|
||||
}
|
||||
function monthsCaseReplace(m, format) {
|
||||
var months = {
|
||||
'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
|
||||
'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_')
|
||||
},
|
||||
nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
|
||||
'accusative' :
|
||||
'nominative';
|
||||
return months[nounCase][m.month()];
|
||||
}
|
||||
function monthsShortCaseReplace(m, format) {
|
||||
var monthsShort = {
|
||||
'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
|
||||
'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
|
||||
},
|
||||
nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
|
||||
'accusative' :
|
||||
'nominative';
|
||||
return monthsShort[nounCase][m.month()];
|
||||
}
|
||||
function weekdaysCaseReplace(m, format) {
|
||||
var weekdays = {
|
||||
'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
|
||||
'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_')
|
||||
},
|
||||
nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/).test(format) ?
|
||||
'accusative' :
|
||||
'nominative';
|
||||
return weekdays[nounCase][m.day()];
|
||||
else {
|
||||
return number + ' ' + plural(format[key], +number);
|
||||
}
|
||||
}
|
||||
var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
|
||||
|
||||
var ru = moment.defineLocale('ru', {
|
||||
months : monthsCaseReplace,
|
||||
monthsShort : monthsShortCaseReplace,
|
||||
weekdays : weekdaysCaseReplace,
|
||||
weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
|
||||
weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
|
||||
monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i],
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D MMMM YYYY г.',
|
||||
LLL : 'D MMMM YYYY г., HH:mm',
|
||||
LLLL : 'dddd, D MMMM YYYY г., HH:mm'
|
||||
// http://new.gramota.ru/spravka/rules/139-prop : § 103
|
||||
// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
|
||||
// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
|
||||
var ru = moment.defineLocale('ru', {
|
||||
months : {
|
||||
format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
|
||||
standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
|
||||
},
|
||||
monthsShort : {
|
||||
// по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
|
||||
format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
|
||||
standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
|
||||
},
|
||||
weekdays : {
|
||||
standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
|
||||
format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
|
||||
isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
|
||||
},
|
||||
weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
|
||||
weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
|
||||
monthsParse : monthsParse,
|
||||
longMonthsParse : monthsParse,
|
||||
shortMonthsParse : monthsParse,
|
||||
|
||||
// полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
|
||||
monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
|
||||
|
||||
// копия предыдущего
|
||||
monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
|
||||
|
||||
// полные названия с падежами
|
||||
monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
|
||||
|
||||
// Выражение, которое соотвествует только сокращённым формам
|
||||
monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'DD.MM.YYYY',
|
||||
LL : 'D MMMM YYYY г.',
|
||||
LLL : 'D MMMM YYYY г., HH:mm',
|
||||
LLLL : 'dddd, D MMMM YYYY г., HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Сегодня в] LT',
|
||||
nextDay: '[Завтра в] LT',
|
||||
lastDay: '[Вчера в] LT',
|
||||
nextWeek: function (now) {
|
||||
if (now.week() !== this.week()) {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
return '[В следующее] dddd [в] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
return '[В следующий] dddd [в] LT';
|
||||
case 3:
|
||||
case 5:
|
||||
case 6:
|
||||
return '[В следующую] dddd [в] LT';
|
||||
}
|
||||
} else {
|
||||
if (this.day() === 2) {
|
||||
return '[Во] dddd [в] LT';
|
||||
} else {
|
||||
return '[В] dddd [в] LT';
|
||||
}
|
||||
}
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Сегодня в] LT',
|
||||
nextDay: '[Завтра в] LT',
|
||||
lastDay: '[Вчера в] LT',
|
||||
nextWeek: function () {
|
||||
return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT';
|
||||
},
|
||||
lastWeek: function (now) {
|
||||
if (now.week() !== this.week()) {
|
||||
switch (this.day()) {
|
||||
lastWeek: function (now) {
|
||||
if (now.week() !== this.week()) {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
return '[В прошлое] dddd [в] LT';
|
||||
case 1:
|
||||
@@ -95,50 +115,50 @@
|
||||
case 5:
|
||||
case 6:
|
||||
return '[В прошлую] dddd [в] LT';
|
||||
}
|
||||
} else {
|
||||
if (this.day() === 2) {
|
||||
return '[Во] dddd [в] LT';
|
||||
} else {
|
||||
return '[В] dddd [в] LT';
|
||||
}
|
||||
}
|
||||
},
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'через %s',
|
||||
past : '%s назад',
|
||||
s : 'несколько секунд',
|
||||
m : relativeTimeWithPlural,
|
||||
mm : relativeTimeWithPlural,
|
||||
h : 'час',
|
||||
hh : relativeTimeWithPlural,
|
||||
d : 'день',
|
||||
dd : relativeTimeWithPlural,
|
||||
M : 'месяц',
|
||||
MM : relativeTimeWithPlural,
|
||||
y : 'год',
|
||||
yy : relativeTimeWithPlural
|
||||
},
|
||||
meridiemParse: /ночи|утра|дня|вечера/i,
|
||||
isPM : function (input) {
|
||||
return /^(дня|вечера)$/.test(input);
|
||||
},
|
||||
meridiem : function (hour, minute, isLower) {
|
||||
if (hour < 4) {
|
||||
return 'ночи';
|
||||
} else if (hour < 12) {
|
||||
return 'утра';
|
||||
} else if (hour < 17) {
|
||||
return 'дня';
|
||||
} else {
|
||||
return 'вечера';
|
||||
if (this.day() === 2) {
|
||||
return '[Во] dddd [в] LT';
|
||||
} else {
|
||||
return '[В] dddd [в] LT';
|
||||
}
|
||||
}
|
||||
},
|
||||
ordinalParse: /\d{1,2}-(й|го|я)/,
|
||||
ordinal: function (number, period) {
|
||||
switch (period) {
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'через %s',
|
||||
past : '%s назад',
|
||||
s : 'несколько секунд',
|
||||
m : relativeTimeWithPlural,
|
||||
mm : relativeTimeWithPlural,
|
||||
h : 'час',
|
||||
hh : relativeTimeWithPlural,
|
||||
d : 'день',
|
||||
dd : relativeTimeWithPlural,
|
||||
M : 'месяц',
|
||||
MM : relativeTimeWithPlural,
|
||||
y : 'год',
|
||||
yy : relativeTimeWithPlural
|
||||
},
|
||||
meridiemParse: /ночи|утра|дня|вечера/i,
|
||||
isPM : function (input) {
|
||||
return /^(дня|вечера)$/.test(input);
|
||||
},
|
||||
meridiem : function (hour, minute, isLower) {
|
||||
if (hour < 4) {
|
||||
return 'ночи';
|
||||
} else if (hour < 12) {
|
||||
return 'утра';
|
||||
} else if (hour < 17) {
|
||||
return 'дня';
|
||||
} else {
|
||||
return 'вечера';
|
||||
}
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
|
||||
ordinal: function (number, period) {
|
||||
switch (period) {
|
||||
case 'M':
|
||||
case 'd':
|
||||
case 'DDD':
|
||||
@@ -150,14 +170,14 @@
|
||||
return number + '-я';
|
||||
default:
|
||||
return number;
|
||||
}
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 7 // The week that contains Jan 1st is the first week of the year.
|
||||
}
|
||||
});
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 7 // The week that contains Jan 1st is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return ru;
|
||||
return ru;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,107 +1,110 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Serbian-cyrillic (sr-cyrl)
|
||||
//! locale : Serbian [sr]
|
||||
//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var translator = {
|
||||
words: { //Different grammatical cases
|
||||
m: ['један минут', 'једне минуте'],
|
||||
mm: ['минут', 'минуте', 'минута'],
|
||||
h: ['један сат', 'једног сата'],
|
||||
hh: ['сат', 'сата', 'сати'],
|
||||
dd: ['дан', 'дана', 'дана'],
|
||||
MM: ['месец', 'месеца', 'месеци'],
|
||||
yy: ['година', 'године', 'година']
|
||||
},
|
||||
correctGrammaticalCase: function (number, wordKey) {
|
||||
return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
|
||||
},
|
||||
translate: function (number, withoutSuffix, key) {
|
||||
var wordKey = translator.words[key];
|
||||
if (key.length === 1) {
|
||||
return withoutSuffix ? wordKey[0] : wordKey[1];
|
||||
} else {
|
||||
return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
|
||||
}
|
||||
var translator = {
|
||||
words: { //Different grammatical cases
|
||||
m: ['jedan minut', 'jedne minute'],
|
||||
mm: ['minut', 'minute', 'minuta'],
|
||||
h: ['jedan sat', 'jednog sata'],
|
||||
hh: ['sat', 'sata', 'sati'],
|
||||
dd: ['dan', 'dana', 'dana'],
|
||||
MM: ['mesec', 'meseca', 'meseci'],
|
||||
yy: ['godina', 'godine', 'godina']
|
||||
},
|
||||
correctGrammaticalCase: function (number, wordKey) {
|
||||
return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
|
||||
},
|
||||
translate: function (number, withoutSuffix, key) {
|
||||
var wordKey = translator.words[key];
|
||||
if (key.length === 1) {
|
||||
return withoutSuffix ? wordKey[0] : wordKey[1];
|
||||
} else {
|
||||
return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
var sr_cyrl = moment.defineLocale('sr-cyrl', {
|
||||
months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
|
||||
monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
|
||||
weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
|
||||
weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
|
||||
weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
|
||||
longDateFormat: {
|
||||
LT: 'H:mm',
|
||||
LTS : 'H:mm:ss',
|
||||
L: 'DD. MM. YYYY',
|
||||
LL: 'D. MMMM YYYY',
|
||||
LLL: 'D. MMMM YYYY H:mm',
|
||||
LLLL: 'dddd, D. MMMM YYYY H:mm'
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[данас у] LT',
|
||||
nextDay: '[сутра у] LT',
|
||||
nextWeek: function () {
|
||||
switch (this.day()) {
|
||||
var sr = moment.defineLocale('sr', {
|
||||
months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
|
||||
monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
|
||||
monthsParseExact: true,
|
||||
weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
|
||||
weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
|
||||
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
|
||||
weekdaysParseExact : true,
|
||||
longDateFormat: {
|
||||
LT: 'H:mm',
|
||||
LTS : 'H:mm:ss',
|
||||
L: 'DD.MM.YYYY',
|
||||
LL: 'D. MMMM YYYY',
|
||||
LLL: 'D. MMMM YYYY H:mm',
|
||||
LLLL: 'dddd, D. MMMM YYYY H:mm'
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[danas u] LT',
|
||||
nextDay: '[sutra u] LT',
|
||||
nextWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
return '[у] [недељу] [у] LT';
|
||||
return '[u] [nedelju] [u] LT';
|
||||
case 3:
|
||||
return '[у] [среду] [у] LT';
|
||||
return '[u] [sredu] [u] LT';
|
||||
case 6:
|
||||
return '[у] [суботу] [у] LT';
|
||||
return '[u] [subotu] [u] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
case 5:
|
||||
return '[у] dddd [у] LT';
|
||||
}
|
||||
},
|
||||
lastDay : '[јуче у] LT',
|
||||
lastWeek : function () {
|
||||
var lastWeekDays = [
|
||||
'[прошле] [недеље] [у] LT',
|
||||
'[прошлог] [понедељка] [у] LT',
|
||||
'[прошлог] [уторка] [у] LT',
|
||||
'[прошле] [среде] [у] LT',
|
||||
'[прошлог] [четвртка] [у] LT',
|
||||
'[прошлог] [петка] [у] LT',
|
||||
'[прошле] [суботе] [у] LT'
|
||||
];
|
||||
return lastWeekDays[this.day()];
|
||||
},
|
||||
sameElse : 'L'
|
||||
return '[u] dddd [u] LT';
|
||||
}
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'за %s',
|
||||
past : 'пре %s',
|
||||
s : 'неколико секунди',
|
||||
m : translator.translate,
|
||||
mm : translator.translate,
|
||||
h : translator.translate,
|
||||
hh : translator.translate,
|
||||
d : 'дан',
|
||||
dd : translator.translate,
|
||||
M : 'месец',
|
||||
MM : translator.translate,
|
||||
y : 'годину',
|
||||
yy : translator.translate
|
||||
lastDay : '[juče u] LT',
|
||||
lastWeek : function () {
|
||||
var lastWeekDays = [
|
||||
'[prošle] [nedelje] [u] LT',
|
||||
'[prošlog] [ponedeljka] [u] LT',
|
||||
'[prošlog] [utorka] [u] LT',
|
||||
'[prošle] [srede] [u] LT',
|
||||
'[prošlog] [četvrtka] [u] LT',
|
||||
'[prošlog] [petka] [u] LT',
|
||||
'[prošle] [subote] [u] LT'
|
||||
];
|
||||
return lastWeekDays[this.day()];
|
||||
},
|
||||
ordinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 7 // The week that contains Jan 1st is the first week of the year.
|
||||
}
|
||||
});
|
||||
sameElse : 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'za %s',
|
||||
past : 'pre %s',
|
||||
s : 'nekoliko sekundi',
|
||||
m : translator.translate,
|
||||
mm : translator.translate,
|
||||
h : translator.translate,
|
||||
hh : translator.translate,
|
||||
d : 'dan',
|
||||
dd : translator.translate,
|
||||
M : 'mesec',
|
||||
MM : translator.translate,
|
||||
y : 'godinu',
|
||||
yy : translator.translate
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal : '%d.',
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 7 // The week that contains Jan 1st is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return sr_cyrl;
|
||||
return sr;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,66 +1,69 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : swedish (sv)
|
||||
//! locale : Swedish [sv]
|
||||
//! author : Jens Alm : https://github.com/ulmus
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var sv = moment.defineLocale('sv', {
|
||||
months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
|
||||
monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
|
||||
weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
|
||||
weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
|
||||
weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'YYYY-MM-DD',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY HH:mm',
|
||||
LLLL : 'dddd D MMMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Idag] LT',
|
||||
nextDay: '[Imorgon] LT',
|
||||
lastDay: '[Igår] LT',
|
||||
nextWeek: '[På] dddd LT',
|
||||
lastWeek: '[I] dddd[s] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'om %s',
|
||||
past : 'för %s sedan',
|
||||
s : 'några sekunder',
|
||||
m : 'en minut',
|
||||
mm : '%d minuter',
|
||||
h : 'en timme',
|
||||
hh : '%d timmar',
|
||||
d : 'en dag',
|
||||
dd : '%d dagar',
|
||||
M : 'en månad',
|
||||
MM : '%d månader',
|
||||
y : 'ett år',
|
||||
yy : '%d år'
|
||||
},
|
||||
ordinalParse: /\d{1,2}(e|a)/,
|
||||
ordinal : function (number) {
|
||||
var b = number % 10,
|
||||
output = (~~(number % 100 / 10) === 1) ? 'e' :
|
||||
(b === 1) ? 'a' :
|
||||
(b === 2) ? 'a' :
|
||||
(b === 3) ? 'e' : 'e';
|
||||
return number + output;
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
var sv = moment.defineLocale('sv', {
|
||||
months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
|
||||
monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
|
||||
weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
|
||||
weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
|
||||
weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'YYYY-MM-DD',
|
||||
LL : 'D MMMM YYYY',
|
||||
LLL : 'D MMMM YYYY [kl.] HH:mm',
|
||||
LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',
|
||||
lll : 'D MMM YYYY HH:mm',
|
||||
llll : 'ddd D MMM YYYY HH:mm'
|
||||
},
|
||||
calendar : {
|
||||
sameDay: '[Idag] LT',
|
||||
nextDay: '[Imorgon] LT',
|
||||
lastDay: '[Igår] LT',
|
||||
nextWeek: '[På] dddd LT',
|
||||
lastWeek: '[I] dddd[s] LT',
|
||||
sameElse: 'L'
|
||||
},
|
||||
relativeTime : {
|
||||
future : 'om %s',
|
||||
past : 'för %s sedan',
|
||||
s : 'några sekunder',
|
||||
m : 'en minut',
|
||||
mm : '%d minuter',
|
||||
h : 'en timme',
|
||||
hh : '%d timmar',
|
||||
d : 'en dag',
|
||||
dd : '%d dagar',
|
||||
M : 'en månad',
|
||||
MM : '%d månader',
|
||||
y : 'ett år',
|
||||
yy : '%d år'
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
|
||||
ordinal : function (number) {
|
||||
var b = number % 10,
|
||||
output = (~~(number % 100 / 10) === 1) ? 'e' :
|
||||
(b === 1) ? 'a' :
|
||||
(b === 2) ? 'a' :
|
||||
(b === 3) ? 'e' : 'e';
|
||||
return number + output;
|
||||
},
|
||||
week : {
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return sv;
|
||||
return sv;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
@@ -1,91 +1,76 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : chinese (zh-cn)
|
||||
//! locale : Chinese (China) [zh-cn]
|
||||
//! author : suupic : https://github.com/suupic
|
||||
//! author : Zeno Zeng : https://github.com/zenozeng
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['moment'], factory) :
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, function (moment) { 'use strict';
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
|
||||
var zh_cn = moment.defineLocale('zh-cn', {
|
||||
months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
|
||||
monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
|
||||
weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
|
||||
weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
|
||||
weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'Ah点mm分',
|
||||
LTS : 'Ah点m分s秒',
|
||||
L : 'YYYY-MM-DD',
|
||||
LL : 'YYYY年MMMD日',
|
||||
LLL : 'YYYY年MMMD日Ah点mm分',
|
||||
LLLL : 'YYYY年MMMD日ddddAh点mm分',
|
||||
l : 'YYYY-MM-DD',
|
||||
ll : 'YYYY年MMMD日',
|
||||
lll : 'YYYY年MMMD日Ah点mm分',
|
||||
llll : 'YYYY年MMMD日ddddAh点mm分'
|
||||
},
|
||||
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
|
||||
meridiemHour: function (hour, meridiem) {
|
||||
if (hour === 12) {
|
||||
hour = 0;
|
||||
}
|
||||
if (meridiem === '凌晨' || meridiem === '早上' ||
|
||||
meridiem === '上午') {
|
||||
return hour;
|
||||
} else if (meridiem === '下午' || meridiem === '晚上') {
|
||||
return hour + 12;
|
||||
} else {
|
||||
// '中午'
|
||||
return hour >= 11 ? hour : hour + 12;
|
||||
}
|
||||
},
|
||||
meridiem : function (hour, minute, isLower) {
|
||||
var hm = hour * 100 + minute;
|
||||
if (hm < 600) {
|
||||
return '凌晨';
|
||||
} else if (hm < 900) {
|
||||
return '早上';
|
||||
} else if (hm < 1130) {
|
||||
return '上午';
|
||||
} else if (hm < 1230) {
|
||||
return '中午';
|
||||
} else if (hm < 1800) {
|
||||
return '下午';
|
||||
} else {
|
||||
return '晚上';
|
||||
}
|
||||
},
|
||||
calendar : {
|
||||
sameDay : function () {
|
||||
return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
|
||||
},
|
||||
nextDay : function () {
|
||||
return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
|
||||
},
|
||||
lastDay : function () {
|
||||
return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
|
||||
},
|
||||
nextWeek : function () {
|
||||
var startOfWeek, prefix;
|
||||
startOfWeek = moment().startOf('week');
|
||||
prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
|
||||
return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
|
||||
},
|
||||
lastWeek : function () {
|
||||
var startOfWeek, prefix;
|
||||
startOfWeek = moment().startOf('week');
|
||||
prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
|
||||
return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
|
||||
},
|
||||
sameElse : 'LL'
|
||||
},
|
||||
ordinalParse: /\d{1,2}(日|月|周)/,
|
||||
ordinal : function (number, period) {
|
||||
switch (period) {
|
||||
var zhCn = moment.defineLocale('zh-cn', {
|
||||
months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
|
||||
monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
|
||||
weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
|
||||
weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
|
||||
weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
|
||||
longDateFormat : {
|
||||
LT : 'HH:mm',
|
||||
LTS : 'HH:mm:ss',
|
||||
L : 'YYYY年MMMD日',
|
||||
LL : 'YYYY年MMMD日',
|
||||
LLL : 'YYYY年MMMD日Ah点mm分',
|
||||
LLLL : 'YYYY年MMMD日ddddAh点mm分',
|
||||
l : 'YYYY年MMMD日',
|
||||
ll : 'YYYY年MMMD日',
|
||||
lll : 'YYYY年MMMD日 HH:mm',
|
||||
llll : 'YYYY年MMMD日dddd HH:mm'
|
||||
},
|
||||
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
|
||||
meridiemHour: function (hour, meridiem) {
|
||||
if (hour === 12) {
|
||||
hour = 0;
|
||||
}
|
||||
if (meridiem === '凌晨' || meridiem === '早上' ||
|
||||
meridiem === '上午') {
|
||||
return hour;
|
||||
} else if (meridiem === '下午' || meridiem === '晚上') {
|
||||
return hour + 12;
|
||||
} else {
|
||||
// '中午'
|
||||
return hour >= 11 ? hour : hour + 12;
|
||||
}
|
||||
},
|
||||
meridiem : function (hour, minute, isLower) {
|
||||
var hm = hour * 100 + minute;
|
||||
if (hm < 600) {
|
||||
return '凌晨';
|
||||
} else if (hm < 900) {
|
||||
return '早上';
|
||||
} else if (hm < 1130) {
|
||||
return '上午';
|
||||
} else if (hm < 1230) {
|
||||
return '中午';
|
||||
} else if (hm < 1800) {
|
||||
return '下午';
|
||||
} else {
|
||||
return '晚上';
|
||||
}
|
||||
},
|
||||
calendar : {
|
||||
sameDay : '[今天]LT',
|
||||
nextDay : '[明天]LT',
|
||||
nextWeek : '[下]ddddLT',
|
||||
lastDay : '[昨天]LT',
|
||||
lastWeek : '[上]ddddLT',
|
||||
sameElse : 'L'
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
|
||||
ordinal : function (number, period) {
|
||||
switch (period) {
|
||||
case 'd':
|
||||
case 'D':
|
||||
case 'DDD':
|
||||
@@ -97,30 +82,30 @@
|
||||
return number + '周';
|
||||
default:
|
||||
return number;
|
||||
}
|
||||
},
|
||||
relativeTime : {
|
||||
future : '%s内',
|
||||
past : '%s前',
|
||||
s : '几秒',
|
||||
m : '1 分钟',
|
||||
mm : '%d 分钟',
|
||||
h : '1 小时',
|
||||
hh : '%d 小时',
|
||||
d : '1 天',
|
||||
dd : '%d 天',
|
||||
M : '1 个月',
|
||||
MM : '%d 个月',
|
||||
y : '1 年',
|
||||
yy : '%d 年'
|
||||
},
|
||||
week : {
|
||||
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
},
|
||||
relativeTime : {
|
||||
future : '%s内',
|
||||
past : '%s前',
|
||||
s : '几秒',
|
||||
m : '1 分钟',
|
||||
mm : '%d 分钟',
|
||||
h : '1 小时',
|
||||
hh : '%d 小时',
|
||||
d : '1 天',
|
||||
dd : '%d 天',
|
||||
M : '1 个月',
|
||||
MM : '%d 个月',
|
||||
y : '1 年',
|
||||
yy : '%d 年'
|
||||
},
|
||||
week : {
|
||||
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
||||
dow : 1, // Monday is the first day of the week.
|
||||
doy : 4 // The week that contains Jan 4th is the first week of the year.
|
||||
}
|
||||
});
|
||||
|
||||
return zh_cn;
|
||||
return zhCn;
|
||||
|
||||
}));
|
||||
})));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2017-03-14 16:16+0000\n"
|
||||
"Last-Translator: Rene <Unknown>\n"
|
||||
"Language-Team: Danish <da@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-05 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,31 +25,41 @@ msgstr "Kunne ikke starte web-interface"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Kan ikke finde webskabeloner: %s, forsøger med standardskabelon"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc modul... IKKE fundet!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 binær... IKKE fundet!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr "Din Unrar version er %s, vi anbefaler version %s eller højere.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar binær... IKKE fundet!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip binær... IKKE fundet!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za binary... IKKE fundet!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -57,11 +67,11 @@ msgstr ""
|
||||
"Vær opmærksom på at 0.0.0.0 værtsnavn har brug for en IPv6-adresse for "
|
||||
"ekstern adgang"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP og HTTPS porte kan ikke være de samme"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
@@ -69,35 +79,35 @@ msgstr ""
|
||||
"SABnzbd blev startet med kodning %s, dette bør være UTF-8. Forvent "
|
||||
"problemer med Unicoded fil- og mappenavne i downloads."
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS fejlede på grund af manglende CERT og KEY filer"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr "Kunne ikke bindes til konfigurerede port. Port ændres til %s"
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Kunne ikke starte web-grænseflade: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Kan ikke nå SABHelper tjeneste"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s startet"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Advarsel"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Fejl"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd lukning udført."
|
||||
@@ -226,7 +236,6 @@ msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
@@ -406,27 +415,27 @@ msgstr "Det lykkedes ikke at lukke databasen, se logg"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Forkert loggning i historiken av %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Afkodning af %s mislykkedes"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr "Dekoder fejl: Ikke mere hukommelse"
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC Fejl i %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Forkert udformet yEnc artikel i %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Ukendt fejl under afkodning af %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr "UUENCODE detekteret, kun yEnc kodning understøttes [%s]"
|
||||
|
||||
@@ -963,32 +972,32 @@ msgstr "Hovedarkiv mangler..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ugyldig PAR2 filer, kan ikke kontrollere eller reparere"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "Reparation mislykkedes, ikke nok reparation blokke (%s mangler)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Henter %s block..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Henter"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Reparerer"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Repareret i %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Bekræfter"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Python script '%s' har ikke udfør (+x) tilladelsessæt"
|
||||
|
||||
@@ -3562,17 +3571,18 @@ msgstr "Certifikatkontrol"
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
"Standard: når SSL er aktiveret, skal du kontrollere identiteten på serveren "
|
||||
"ved hjælp af dets certifikater. Strenge: kontrollere og håndhæve tilsvarende "
|
||||
"værtsnavn."
|
||||
|
||||
#: sabnzbd/skintext.py:547 # sabnzbd/skintext.py:782 # sabnzbd/skintext.py:895
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiveret"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr "Streng"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2017-02-19 14:23+0000\n"
|
||||
"Last-Translator: René <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-04-05 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -27,32 +27,42 @@ msgstr ""
|
||||
"Konnte Web-Vorlage nicht finden: %s Versuche die Standard-Vorlage zu "
|
||||
"verwenden."
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc-Modul nicht gefunden!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2-Programmdatei nicht gefunden!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Deine UNRAR-Version ist %s, Wir empfehlen Version %s oder höher.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar-Programmdatei nicht gefunden!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip-Programmdatei nicht gefunden!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za-Programm … NICHT gefunden!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -60,45 +70,45 @@ msgstr ""
|
||||
"Bitte beachten Sie, dass der 0.0.0.0-Hostname eine IPv6-Adresse benötigen "
|
||||
"wird für den externen Zugriff."
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP und HTTPS Ports dürfen nicht Identisch sein!"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS wegen fehlenden Zertifikats- und Schlüsseldateien deaktiviert."
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr "Konfigurierter Port funktioniert nicht. Port gewechselt zu %s"
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Fehler beim Starten der Web-Oberfläche "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "SABHelper-Dienst kann nicht erreicht werden"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s gestartet"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Achtung"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Fehler"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd wurde beendet"
|
||||
@@ -231,7 +241,6 @@ msgid "None"
|
||||
msgstr "Nichts"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
@@ -415,27 +424,27 @@ msgstr ""
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Ungültiges Stufen-Protokoll im Verlauf für %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Fehler beim Dekodieren von %s."
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr "Decoder Fehler: Nicht genügend Speicher"
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC-Fehler in %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Ungültiger yEnc-Artikel in %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Unbekannter Fehler %s beim Dekodieren"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr "UUencode gefunden, nur yEnc Codierung wir unterstützt [%s]"
|
||||
|
||||
@@ -977,34 +986,34 @@ msgstr "Hauptpaket nicht gefunden …"
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ungültige PAR2-Dateien. Überprüfung oder Reparatur nicht möglich."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr ""
|
||||
"Reparatur fehlgeschlagen. Nicht genug Reparatur-Blöcke vorhanden (%s zu "
|
||||
"wenig)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "%s Blöcke werden abgerufen …"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Abrufen"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Reparieren"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Repariert in %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Überprüfen"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Dem Pythonskript \"%s\" fehlen die Ausführenrechte (+x)"
|
||||
|
||||
@@ -3620,17 +3629,18 @@ msgstr "Zertifikat überprüfung"
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
"Standart: Wenn SSL aktiviert ist, wird die Server-Identität mittels "
|
||||
"Zertifikat überprüft. Strikt: Übereinstimmende Hostnamen überprüfen und "
|
||||
"erzwingen."
|
||||
|
||||
#: sabnzbd/skintext.py:547 # sabnzbd/skintext.py:782 # sabnzbd/skintext.py:895
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiviert"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr "Strikt"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2016-09-26 12:51+0000\n"
|
||||
"Last-Translator: David Calvo <Unknown>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -27,32 +27,42 @@ msgstr ""
|
||||
"No se puede encontrar la plantilla web: %s, intentando con la plantilla "
|
||||
"estandar"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "módulo _yenc... NO encontrado!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 binario... NO encontrado!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Su versión UnRAR es %s, recomendamos la versión %s o superior. <br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar binario... NO encontrado"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip binario... NO encontrado!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "No se encontró el binario de 7za"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -60,45 +70,45 @@ msgstr ""
|
||||
"Tenga en cuenta que el nombre de equipo 0.0.0.0 necesitará una dirección "
|
||||
"IPv6 para el acceso externo"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "Los puertos de HTTP y de HTTPS no pueden ser iguales"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS deshabilitado debido a la falta de archivos CERT y KEY"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Error al iniciar la interfaz web: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "No se ha podido conectar con el servicio SABHelper"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s comenzó"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Advertencia"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Se ha producido un error"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Cierre de SABnzbd terminado"
|
||||
@@ -226,7 +236,6 @@ msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Predeterminado"
|
||||
|
||||
@@ -407,27 +416,27 @@ msgstr "No se pudo cerrar el base de datos, vea el registro"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Registro de etapa invalido para transferencia terminada %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Descodificación %s fallo"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "Error CRC en %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Articulo yEnc corrupto en %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Error inespecifico mientras descodificando %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr "UUencode detectada, la única codificación válida es Enc [%s]"
|
||||
|
||||
@@ -969,34 +978,34 @@ msgstr "Paquete principal no encontrado..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ficheros par2 inválidos, no se puede verificar o reparar"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr ""
|
||||
"Ha fallado la reparación, no existen bloques de reparación suficientes (%s "
|
||||
"short)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Recuperando %s bloques..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Recuperando"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Reparando"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Reparado en %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Verificando"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3586,7 +3595,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3594,6 +3603,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "Deshabilitado"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2017-04-02 07:48+0000\n"
|
||||
"Last-Translator: Paavo Rissanen <paavo.rissanen@outlook.com>\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-04-05 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,33 +25,43 @@ msgstr "Web-käyttöliittymän käynnistys epäonnistui"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Web-mallia %s ei löydy, yritetään käyttää oletusmallia"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc moduulia... EI löydy!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 ohjelmaa... EI löydy!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"UNRAR versiosi on %s, suosittelemme käyttämään versiota %s tai uudempaa.<br "
|
||||
"/>"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar ohjelmaa... EI löydy!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip ohjelmaa... EI löydy!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za ohjelmaa... EI löydy!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -59,11 +69,11 @@ msgstr ""
|
||||
"Huomioithan, että 0.0.0.0 isäntänimi vaatii IPv6 osoitteen jotta pääset "
|
||||
"ulkoverkkoon"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP- ja HTTPS-portit eivät voi olla samoja"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
@@ -72,35 +82,35 @@ msgstr ""
|
||||
"Unicode-merkkejä tiedosto- ja kansionimissä sisältävät lataukset voivat "
|
||||
"aiheuttaa ongelmia."
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS poistettu käytöstä puuttuvien CERT ja KEY tiedostojen vuoksi"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Web-käyttöliittymän käynnistys epäonnistui : "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "SABHelper palvelua ei voitu tavoittaa"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s käynnistetty"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Varoitus"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Virhe"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd sammutus valmis"
|
||||
@@ -229,7 +239,6 @@ msgid "None"
|
||||
msgstr "Ei mitään"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Oletus"
|
||||
|
||||
@@ -406,27 +415,27 @@ msgstr "Tietokannan sulkeminen epäonnistui, katso loki"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Virheellinen tila lokihistoriassa kohteelle %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Kohteen %s dekoodaus epäonnistui"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC virhe tiedostossa %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Huonosti muotoiltu yEnc artikkeli %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Tuntematon virhe dekoodattaessa %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr "UUencode-koodaus havaittiin, vain yEnc-koodausta tuetaan [%s]"
|
||||
|
||||
@@ -961,32 +970,32 @@ msgstr "Pääpakettia ei löydy..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Virheelliset par2 arkistot, varmennus ja korjaus ei mahdollista"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "Korjaaminen epäonnistui, ei tarpeeksi korjauslohkoja (%s puuttuu)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Noudetaan %s lohkoa..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Noudetaan"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Korjataan"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Korjattiin ajassa %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Varmennetaan"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3576,17 +3585,18 @@ msgstr "Sertifikaatin varmennus"
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
"Oletus: kun SSL on päällä, varmennetaan palvelimen identiteetti sen antaman "
|
||||
"sertifikaatin avulla. Tiukka: varmennetaan kuten edellä ja vaaditaan lisäksi "
|
||||
"sertifikaattia vastaava isäntänimi (hostname)."
|
||||
|
||||
#: sabnzbd/skintext.py:547 # sabnzbd/skintext.py:782 # sabnzbd/skintext.py:895
|
||||
msgid "Disabled"
|
||||
msgstr "Ei käytössä"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr "Tiukka"
|
||||
|
||||
104
po/main/fr.po
104
po/main/fr.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"PO-Revision-Date: 2017-04-07 09:49+0000\n"
|
||||
"Last-Translator: Fred <88com88@gmail.com>\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2017-04-11 08:33+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\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-04-08 06:06+0000\n"
|
||||
"X-Generator: Launchpad (build 18343)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -27,32 +27,45 @@ msgstr ""
|
||||
"Impossible de trouver le template de l'interface web : %s, nouvelle "
|
||||
"tentative avec le template standard"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc désactivé: aucune version correcte n'a été trouvée ! (v%s trouvée, "
|
||||
"v%s attendue)"
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
"Module SABYenc... NON trouvé! v%s attendue - https://sabnzbd.org/sabyenc"
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "module _yenc... Introuvable!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "binaire par2... Introuvable!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Votre version de UNRAR est %s, nous recommandons la version %s ou plus.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "binaire unrar... Introuvable!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "binaire unzip... Introuvable!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "Binaire 7za ... Introuvable!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -60,11 +73,11 @@ msgstr ""
|
||||
"S'il vous plaît soyez conscient que l'Hôte 0.0.0.0 aura besoin d'une adresse "
|
||||
"IPv6 pour les accès externes"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "Les ports HTTP et HTTPS ne peuvent pas être identiques"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
@@ -73,35 +86,35 @@ msgstr ""
|
||||
"Attendez-vous à des problèmes avec les noms de fichiers et de répertoires "
|
||||
"Unicode dans les téléchargements."
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS désactivé car le certificat et la clé n'ont pas été trouvés"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr "Impossible de relier le port configuré. Port modifié à %s"
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Impossible de démarrer l'interface web : "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Impossible d'accéder au service SABHelper"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s démarré"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Avertissement"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Erreur"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Arrêt de SABnzbd terminé"
|
||||
@@ -235,7 +248,6 @@ msgid "None"
|
||||
msgstr "Aucun"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Par défaut"
|
||||
|
||||
@@ -315,14 +327,14 @@ msgstr "%s manquant(s)"
|
||||
msgid ""
|
||||
"Job \"%s\" is probably encrypted due to RAR with same name inside this RAR"
|
||||
msgstr ""
|
||||
"La tâche \"% est probablement chiffrée en raison d'un RAR ayant le même nom "
|
||||
"à l'intérieur de ce RAR"
|
||||
"La tâche \"%s\" est probablement chiffrée en raison d'un RAR ayant le même "
|
||||
"nom à l'intérieur de ce RAR"
|
||||
|
||||
#: sabnzbd/assembler.py:302 [Warning message]
|
||||
msgid "Job \"%s\" is probably encrypted: \"password\" in filename \"%s\""
|
||||
msgstr ""
|
||||
"La tâche \"% est probablement chiffrée : \"password\" dans le nom de fichier "
|
||||
"\"%s\""
|
||||
"La tâche \"%s\" est probablement chiffrée : \"password\" dans le nom de "
|
||||
"fichier \"%s\""
|
||||
|
||||
#: sabnzbd/assembler.py:425
|
||||
msgid "video"
|
||||
@@ -424,27 +436,27 @@ msgstr "Impossible de fermer la base de données, voir le journal"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Étape de journalisation invalide dans l'historique pour %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Échec du décodage de %s"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr "Échec du décodeur : mémoire insuffisante"
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "Erreur CRC dans %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Article yEnc mal construit dans %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Erreur inconnue lors du décodage de %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr "UUencode détecté, seul l'encodage yEnc est compatible [%s]"
|
||||
|
||||
@@ -993,32 +1005,32 @@ msgstr "Paquet principal introuvable..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Fichiers par2 non valides, impossible de vérifier ou réparer"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "Échec de la réparation, pas assez de blocs de réparation (manque %s)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Récupération de %s blocs..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Récupération en cours"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Réparation en cours"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Réparé(s) dans %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Vérification en cours"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
"Le script Python \"%s\" n'est pas configuré avec les permissions d’exécution "
|
||||
@@ -3649,16 +3661,20 @@ msgstr "Vérification du certificat"
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
"Par défaut : lorsque SSL est activé, vérifie l'identité du serveur à l'aide "
|
||||
"de ses certificats. Strict : vérifie et applique le nom d'hôte correspondant."
|
||||
"Minimal: lorsque SSL est activé, vérifier l'identité du serveur à l'aide de "
|
||||
"ses certificats. Strict: vérifier et imposer le nom d'hôte correspondant."
|
||||
|
||||
#: sabnzbd/skintext.py:547 # sabnzbd/skintext.py:782 # sabnzbd/skintext.py:895
|
||||
msgid "Disabled"
|
||||
msgstr "Désactivé"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr "Minimal"
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr "Strict"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2016-07-16 16:44+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-04-05 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,77 +25,87 @@ msgstr "Kunne ikke starte webgrensesnittet"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Kan ikke finne webmal: %s, prøver standardmal"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc-modul... IKKE funnet!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2-binærfil... IKKE funnet!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Din Unrar-versjon er %s, vi anbefaler versjon %s eller høyere. <br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar-binærfil... IKKE funnet!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip-binærfil... IKKE funnet!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za-binærfil... IKKE funnet!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
msgstr ""
|
||||
"Husk at vertsnavnet 0.0.0.0 krever en IPv6-adresse for ekstern tilgang"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP og HTTPS-portene kan ikke være det samme"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "Deaktiverte HTTPS på grunn av manglende CERT- og KEY-filer."
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Kunne ikke starte webgrensesnittet: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Kan ikke nå SABHelper-tjenesten"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s startet"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Advarsel"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Feil"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd er nå avsluttet"
|
||||
@@ -223,7 +233,6 @@ msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
@@ -397,27 +406,27 @@ msgstr "Kunne ikke stenge databasen, se logg"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Ugyldig scenen logging i historien for %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Dekoding av %s mislyktes"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC-feil i %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Feilaktigt utformet yEnc artikkel i %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Ukjent feil oppstod under dekoding av %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr ""
|
||||
|
||||
@@ -951,33 +960,33 @@ msgstr "Hovedarkiv mangler..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ugyldige par2-filer, kan ikke kontrollere eller reparere"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr ""
|
||||
"Mislykket reparasjon, finner ikke nødvendige reparasjonsblokker (%s mangler)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Henter %s blokker..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Henter"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Reparerer"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Reparert på %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Verifiserer"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3529,7 +3538,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3537,6 +3546,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktivert"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
103
po/main/nl.po
103
po/main/nl.po
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"PO-Revision-Date: 2017-03-18 21:41+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2017-04-13 12:42+0000\n"
|
||||
"Last-Translator: shypike <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-05 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,32 +25,45 @@ msgstr "Webinterface kan niet gestart worden"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Websjabloon %s niet te vinden; het standaardsjabloon wordt gebruikt."
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
"SABYenc uitgeschakeld, geen bruikbare versie gevonden! (V%s gevonden, V%s "
|
||||
"verwacht)"
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
"SABYenc module... NIET gevonden! Verwacht V%s - https://sabnzbd.org/sabyenc"
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc-module niet gevonden."
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2-programma niet gevonden."
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"De UNRAR-versie is %s, we adviseren versie %s of hoger te gebruiken.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar-programma niet gevonden."
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip-programma niet gevonden."
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za-programma niet gevonden."
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -58,11 +71,11 @@ msgstr ""
|
||||
"Let op: als je 0.0.0.0 als hostnaam gebruikt, heb je voor externe toegang "
|
||||
"een IPv6-adres nodig"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP- en HTTPS-poort kunnen niet hetzelfde zijn"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
@@ -71,36 +84,36 @@ msgstr ""
|
||||
"bij het downloaden, problemen krijgen met Unicode namen van bestanden en "
|
||||
"mappen."
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS is uitgeschakeld vanwege ontbrekende CERT- en KEY-bestanden"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
"Kan geen verbinding maken met ingestelde poort. Poort gewijzigd in %s"
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Gebruikersinterface kon niet gestart worden: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Geen verbinding mogelijk met de SABHelper-service"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s is gestart"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Waarschuwing"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Fout"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd is afgesloten"
|
||||
@@ -231,7 +244,6 @@ msgid "None"
|
||||
msgstr "Geen"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Standaard"
|
||||
|
||||
@@ -310,10 +322,14 @@ msgstr "%s ontbreekt"
|
||||
msgid ""
|
||||
"Job \"%s\" is probably encrypted due to RAR with same name inside this RAR"
|
||||
msgstr ""
|
||||
"Opdracht \"%s\" is waarschijnlijk versleuteld omdat en een RAR met dezelfde "
|
||||
"naam in de hoofd RAR zit."
|
||||
|
||||
#: sabnzbd/assembler.py:302 [Warning message]
|
||||
msgid "Job \"%s\" is probably encrypted: \"password\" in filename \"%s\""
|
||||
msgstr ""
|
||||
"Opdracht \"%s\" is waarschijnlijk versleuteld, omdat \"password\" in de naam "
|
||||
"\"%s\" voor komt."
|
||||
|
||||
#: sabnzbd/assembler.py:425
|
||||
msgid "video"
|
||||
@@ -414,27 +430,27 @@ msgstr "Het lukt niet om de database te sluiten, zie log"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Ongeldig loggen van fase in geschiedenis voor %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Decoderen van %s mislukt"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr "Decoder fout: onvoldoende geheugen"
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC-fout in %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Slecht opgemaakt yEnc-artikel in %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Onbekende fout tijdens het decoderen van %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr "UUencode gevonden, SABnzbd verwerkt alleen yEnc-codering [%s]"
|
||||
|
||||
@@ -852,11 +868,11 @@ msgstr "FOUT: onjuiste CRC in \"%s\""
|
||||
|
||||
#: sabnzbd/newsunpack.py:658 # sabnzbd/newsunpack.py:659
|
||||
msgid "Unpacking failed, file too large for filesystem (FAT?)"
|
||||
msgstr ""
|
||||
msgstr "Uitplakken mislukt, bestand te groot voor het bestandssysteem (FAT?)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:662 [Error message]
|
||||
msgid "ERROR: File too large for filesystem (%s)"
|
||||
msgstr ""
|
||||
msgstr "FOUT: bestand te groot voor het bestandssysteem (%s)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:666 # sabnzbd/newsunpack.py:667
|
||||
#: sabnzbd/newsunpack.py:685 # sabnzbd/newsunpack.py:686
|
||||
@@ -970,32 +986,32 @@ msgstr "Hoofdpakket niet gevonden..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Ongeldige par2-bestanden, verificatie of reparatie niet mogelijk"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "Reparatie mislukt, te weinig herstelblokken (%s tekort)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Ophalen van %s blokken..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Ophalen"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Repareren"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Reparatie in %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Verifiëren"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Python-script '%s' heeft geen uitvoerpermissie (+x)"
|
||||
|
||||
@@ -3585,17 +3601,20 @@ msgstr "Certificaat verificatie"
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
"Standaard: wanneer SSL aktief is, verifieer de identiteit van de server "
|
||||
"m.b.v. diens certificaten. Strikt: verifieer ook of de server naam "
|
||||
"overeenkomt met het certificaat."
|
||||
"Minimaal: wanneer SSL een staat, controleer de identiteit van de server "
|
||||
"m.b.v. de certificaten. Strikt: controleer en eis een correcte server naam."
|
||||
|
||||
#: sabnzbd/skintext.py:547 # sabnzbd/skintext.py:782 # sabnzbd/skintext.py:895
|
||||
msgid "Disabled"
|
||||
msgstr "Uit"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr "Minimaal"
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr "Strikt"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07: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-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,75 +25,85 @@ msgstr "Nie udało się uruchomić interfejsu WWW"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Nie znaleziono szablonu: %s, próbuję użyć standardowego szablonu"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "Moduł _yenc... NIE znaleziono!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "Program par2 ... NIE znaleziono!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr "Twoja wersja unrar to %s, zalecana jest wersja %s lub wyższa.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "Program unrar ... NIE znaleziono!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "Program unzip ... NIE znaleziono!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "Program 7za... NIE znaleziono!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
msgstr "Nazwa hosta 0.0.0.0 wymaga adresu IPv6 do dostępu z zewnątrz"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "Porty dla HTTP i HTTPS nie mogą być takie same"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "Wyłączono HTTPS z powodu braku plików CERT oraz KEY"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Nie udało się uruchomić interfejsu WWW: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Nie można połączyć się z usługą SABHelper"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "Uruchomiono SABnzbd %s"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Ostrzeżenie"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Błąd"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd został wyłączony"
|
||||
@@ -226,7 +236,6 @@ msgid "None"
|
||||
msgstr "Brak"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Domyślne"
|
||||
|
||||
@@ -402,27 +411,27 @@ msgstr "Błąd zamykania bazy danych, sprawdź logi"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Nieprawidłowy log etapu w historii dla %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Błąd dekodowania %s"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "Błąd CRC w %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Źle zbudowany artykuł yEnc w %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Nieznany błąd podczas dekodowania %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr ""
|
||||
|
||||
@@ -960,34 +969,34 @@ msgstr "Główny pakiet nieznaleziony..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Nieprawidłowe pliki par2, nie można zweryfikować lub naprawić"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr ""
|
||||
"Naprawa nie powiodła się, brak wystarczającej ilości bloków naprawczych "
|
||||
"(brakuje %s)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Pobieranie %s bloków..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Pobieranie"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Naprawianie"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Naprawiono w %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Weryfikowanie"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3553,7 +3562,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3561,6 +3570,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "Wyłączone"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07: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-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -26,32 +26,42 @@ msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr ""
|
||||
"Não foi possível encontrar o template web: %s. Tentando o template padrão"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "módulo _yenc... NÃO encontrado!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "aplicativo par2... NÃO encontrado!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Sua versão UNRAR é %s, nós recomendamos a versão %s ou superior.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "aplicativo unrar... NÃO encontrado!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "aplicativo unzip... NÃO encontrado!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "aplicativo 7za... NÃO encontrado!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -59,45 +69,45 @@ msgstr ""
|
||||
"Esteja ciente de que o nome de host 0.0.0.0 vai precisar de um endereço IPv6 "
|
||||
"para acesso externo"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "Portas HTTP e HTTPS não podem ser iguais"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS desabilitado pela falta de arquivos CERT e KEY"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Falha ao iniciar a interface web "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Não foi possível localizar o serviço SABHelper"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s iniciado"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Alerta"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Erro"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Encerramento do SABnzbd concluído"
|
||||
@@ -226,7 +236,6 @@ msgid "None"
|
||||
msgstr "Nenhum"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Padrão"
|
||||
|
||||
@@ -404,27 +413,27 @@ msgstr "Falha ao fechar o banco de dados. Consulte o log"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Registro inválido de etapa no histórico para %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Falha ao decodificar %s"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "Erro de CRC em %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Artigo yEnc mal formado em %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Erro desconhecido ao decodificar %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr ""
|
||||
|
||||
@@ -959,32 +968,32 @@ msgstr "Pacote principal não encontrado..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Arquivos PAR2 inválidos. Não é possível verificar ou reparar"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "Reparação falhou. Blocos de reparação insuficientes (faltam %s)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Obtendo %s blocos..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Obtendo"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Reparando"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Reparado em %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Verificando"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3552,7 +3561,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3560,6 +3569,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "Desativado"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07: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-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,33 +25,43 @@ msgstr "Pornirea interfeţei-web nereuşită"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Nu se poate găsi şablon web:%s, se încearcă şablon standard"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "modulul _yenc ... Negăsit!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "binar par2 ... Negăsit!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Versiunea ta de UNRAR este %s, noi recomandăm versiunea %s sau mai mare.<br "
|
||||
"/>"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "binar unrar... Negăsit!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "binar unzip... Negăsit!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "Fişier executabil 7za ... Indisponibil!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -59,45 +69,45 @@ msgstr ""
|
||||
"Vă rugăm să fiţi conştienţi că numele gazdei 0.0.0.0 va avea nevoie de o "
|
||||
"adresa IPv6 pentru acces extern"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "Porturile HTTP și HTTPS nu pot fi aceleași"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "Dezactivează HTTPS din cauza lipsei fişierelor CERT şi KEY"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Nu am putu porni interfața web: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Nu pot contacta serviciul SABHelper"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s pornit"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Avertisment"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Eroare"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Închidere SABnzbd terminată"
|
||||
@@ -229,7 +239,6 @@ msgid "None"
|
||||
msgstr "Niciunul"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Implicit"
|
||||
|
||||
@@ -406,27 +415,27 @@ msgstr "Închidere bază de date nereuşită, vedeţi jurnal"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Jurnal istoric stagii invalid pentru %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Decodarea %s nereuşită"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "Eroare CRC în %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Articoul yEnc invalid în %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Eroare Necunoscută în timpul decodării %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr ""
|
||||
|
||||
@@ -963,32 +972,32 @@ msgstr "Pachet principal negăsit..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Fișier par2 invalid, nu pot verifica sau repara"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "Reparare nereuşită, blocuri reparare insuficiente (%s mai puţin)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Descărcare %s blocuri..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Descărcare"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Se repară"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Reparat în %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Se verifică"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3555,7 +3564,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3563,6 +3572,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "Dezactivat"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
@@ -2,15 +2,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-0.7.x\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07: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-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
@@ -23,31 +23,41 @@ msgstr ""
|
||||
"Не удаётся найти шаблон веб-интерфейса: %s. Выполняется попытка использовать "
|
||||
"стандартный шаблон"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "Модуль _yenc... НЕ найден"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "Исполняемый файл par2... НЕ найден"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "Исполняемый файл unrar... НЕ найден"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "Исполняемый файл unzip... НЕ найден"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
@@ -55,45 +65,45 @@ msgstr ""
|
||||
"Учтите, что для имени компьютера 0.0.0.0 потребуется IPv6-адрес для внешнего "
|
||||
"доступа"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS отключён, поскольку отсутствуют файлы CERT и KEY"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Предупреждение"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Завершение работы SABnzbd закончено"
|
||||
@@ -221,7 +231,6 @@ msgid "None"
|
||||
msgstr "Ничего"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "по умолчанию"
|
||||
|
||||
@@ -395,27 +404,27 @@ msgstr "Не удалось закрыть базу данных (см. журн
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Недопустимый этап ведения журнала для %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Ошибка декодирования %s"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "Ошибка CRC в %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Неверно сформированная статья yEnc в %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Неизвестная ошибка декодирования %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr ""
|
||||
|
||||
@@ -950,33 +959,33 @@ msgstr "Главный пакет не найден..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Недопустимые PAR2-файлы. Нельзя выполнить проверку или исправление"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr ""
|
||||
"Ошибка исправления: недостаточно блоков восстановления (не хватает %s)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "загрузка %s блоков..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Загрузка"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Исправление"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Исправлено за %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Проверка"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3524,7 +3533,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3532,6 +3541,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "отключено"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
@@ -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-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07: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-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,77 +25,87 @@ msgstr "Neuspešno pokretanje web interfejsa"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Немогуће наћи веб модел: %s, програм покушава са стандардним моделом"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc modul... NIJE pronađen!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 program...NIJE pronađen!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Verzija vašeg UNRAR-a je %s, mi preporučujemo verziju %s ili noviju.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar program...NIJE pronađen!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip program...NIJE pronađen"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za program...NIJE pronađen"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
msgstr ""
|
||||
"Obratite pažnju, hostu 0.0.0.0 će trebati IPv6 adresa za pristup spolja"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP i HTTPS portovi ne mogu biti isti"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "HTTPS onemogućen zbog nedostajućih CERT i KEY datoteka"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Neuspešno pokretanje web interfejsa: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Nemoguće pristupiti SABHelper servisu"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s покренут"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Упозорење"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Грeшкa"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "Гашење SABnzbd је завршено"
|
||||
@@ -223,7 +233,6 @@ msgid "None"
|
||||
msgstr "Ниједно"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Подразумевано"
|
||||
|
||||
@@ -399,27 +408,27 @@ msgstr "Неуспешно затварање базе, видети извеш
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Погрешне етапе извештаја можете наћи у хронологији за %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Dešifrovanje %s neuspešno"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC грешка у %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Лоше формиран yEnc артикал у %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Nepoznata greška pri dešifrovanju %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr ""
|
||||
|
||||
@@ -952,32 +961,32 @@ msgstr "Главни пакет није нађен..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Погрешне par2 дат., не може да се провери/поправи"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "Погрешна поправка, нема довољно блокова за поправку (фали %s)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Учитавање %s блокова..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Добављам"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Поправљање"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Поправљено за %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Проверавање"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3519,7 +3528,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3527,6 +3536,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "Онемогућено"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07: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-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,77 +25,87 @@ msgstr "Det gick inte att starta webbgränssnittet"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "Hittar inte webbmall: %s, försöker med standardmall"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc modul... EJ funnen!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 binär... EJ funnen!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr ""
|
||||
"Din UNRAR version är %s, vi rekommenderar version %s eller högre.<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar binär... EJ funnen!"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip binär... EJ funnen!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za binär... EJ funnen!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
msgstr ""
|
||||
"Tänk på att värdnamnet 0.0.0.0 behöver en IPv6-adress för extern åtkomst"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP och HTTPS portar kan inte vara likadana"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "Avaktiverade HTTPS då CERT och KEY -filer saknas"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "Misslyckades att starta webbgränsnitt: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "Kan inte nå SABHelper tjänsten"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s startad"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "Varning"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "Fel"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd nedstängning utförd."
|
||||
@@ -224,7 +234,6 @@ msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
@@ -400,27 +409,27 @@ msgstr "Det gick inte att stänga databasen, se logg"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "Felaktig loggning i historiken av %s"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "Avkodning av %s misslyckades"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC Fel i %s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "Felaktigt utformad yEnc artikel i %s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "Okänt fel under avkodning av %s"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr ""
|
||||
|
||||
@@ -956,33 +965,33 @@ msgstr "Huvudarkiv saknas..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "Korrupta par2 filer, kan inte verifiera eller reparera"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr ""
|
||||
"Misslyckad reparation, finns ej tillräckligt med reparationsblock (%s saknas)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "Hämtar %s block..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "Hämtar"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "Reparerar"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] Reparerad i %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "Verifierar"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr ""
|
||||
|
||||
@@ -3535,7 +3544,7 @@ msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr ""
|
||||
|
||||
@@ -3543,6 +3552,10 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr "Avaktiverad"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-04-02 15:51+0000\n"
|
||||
"POT-Creation-Date: 2017-04-08 07:51+0000\n"
|
||||
"PO-Revision-Date: 2017-02-24 12:59+0000\n"
|
||||
"Last-Translator: ninjai <ninjai.us@gmail.com>\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-04-05 07:19+0000\n"
|
||||
"X-Generator: Launchpad (build 18335)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: SABnzbd.py:257 [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -25,75 +25,85 @@ msgstr "web 界面启动失败"
|
||||
msgid "Cannot find web template: %s, trying standard template"
|
||||
msgstr "无法找到 web 模板: %s,正在尝试标准模板"
|
||||
|
||||
#: SABnzbd.py:416 [Error message]
|
||||
#: SABnzbd.py:415 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc disabled: no correct version found! (Found v%s, expecting v%s)"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:418 [Warning message]
|
||||
msgid ""
|
||||
"SABYenc module... NOT found! Expecting v%s - https://sabnzbd.org/sabyenc"
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:424 [Error message]
|
||||
msgid "_yenc module... NOT found!"
|
||||
msgstr "_yenc 模块... *未* 找到!"
|
||||
|
||||
#: SABnzbd.py:426 [Error message]
|
||||
#: SABnzbd.py:434 [Error message]
|
||||
msgid "par2 binary... NOT found!"
|
||||
msgstr "par2 可执行程序... *未* 找到!"
|
||||
|
||||
#: SABnzbd.py:438 [Warning message]
|
||||
#: SABnzbd.py:446 [Warning message]
|
||||
msgid "Your UNRAR version is %s, we recommend version %s or higher.<br />"
|
||||
msgstr "您的 UNRAR 程序版本为 %s,我们建议使用 %s 或更高版本。<br />"
|
||||
|
||||
#: SABnzbd.py:442 [Error message]
|
||||
#: SABnzbd.py:450 [Error message]
|
||||
msgid "unrar binary... NOT found"
|
||||
msgstr "unrar 可执行程序... *未* 找到"
|
||||
|
||||
#: SABnzbd.py:447
|
||||
#: SABnzbd.py:455
|
||||
msgid "unzip binary... NOT found!"
|
||||
msgstr "unzip 可执行程序... *未* 找到!"
|
||||
|
||||
#: SABnzbd.py:452
|
||||
#: SABnzbd.py:460
|
||||
msgid "7za binary... NOT found!"
|
||||
msgstr "7za 可执行程序... *未*找到!"
|
||||
|
||||
#: SABnzbd.py:602 [Warning message]
|
||||
#: SABnzbd.py:610 [Warning message]
|
||||
msgid ""
|
||||
"Please be aware the 0.0.0.0 hostname will need an IPv6 address for external "
|
||||
"access"
|
||||
msgstr "请注意 0.0.0.0 主机名需要 IPv6 地址才能从外部访问"
|
||||
|
||||
#: SABnzbd.py:632 [Error message]
|
||||
#: SABnzbd.py:640 [Error message]
|
||||
msgid "HTTP and HTTPS ports cannot be the same"
|
||||
msgstr "HTTP 与 HTTPS 端口不能相同"
|
||||
|
||||
#: SABnzbd.py:1190 [Warning message]
|
||||
#: SABnzbd.py:1198 [Warning message]
|
||||
msgid ""
|
||||
"SABnzbd was started with encoding %s, this should be UTF-8. Expect problems "
|
||||
"with Unicoded file and directory names in downloads."
|
||||
msgstr ""
|
||||
|
||||
#: SABnzbd.py:1284 [Warning message]
|
||||
#: SABnzbd.py:1292 [Warning message]
|
||||
msgid "Disabled HTTPS because of missing CERT and KEY files"
|
||||
msgstr "由于缺少 CERT 及 KEY 文件,已禁用 HTTPS"
|
||||
|
||||
#: SABnzbd.py:1383 [Warning message]
|
||||
#: SABnzbd.py:1391 [Warning message]
|
||||
msgid "Could not bind to configured port. Port changed to %s"
|
||||
msgstr "无法绑定到设定的端口。端口变更为 %s"
|
||||
|
||||
#: SABnzbd.py:1392 [Error message]
|
||||
#: SABnzbd.py:1400 [Error message]
|
||||
msgid "Failed to start web-interface: "
|
||||
msgstr "无法启动 web 界面: "
|
||||
|
||||
#: SABnzbd.py:1413 [Error message]
|
||||
#: SABnzbd.py:1421 [Error message]
|
||||
msgid "Cannot reach the SABHelper service"
|
||||
msgstr "无法连接 SABHelper 服务"
|
||||
|
||||
#: SABnzbd.py:1449
|
||||
#: SABnzbd.py:1457
|
||||
msgid "SABnzbd %s started"
|
||||
msgstr "SABnzbd %s 已启动"
|
||||
|
||||
#: SABnzbd.py:1460 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
#: SABnzbd.py:1468 # sabnzbd/notifier.py:71 [Notification] # sabnzbd/skintext.py:279 [Status page, table column header, actual message]
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
#: SABnzbd.py:1464 # sabnzbd/notifier.py:72 [Notification]
|
||||
#: SABnzbd.py:1472 # sabnzbd/notifier.py:72 [Notification]
|
||||
msgid "Error"
|
||||
msgstr "错误"
|
||||
|
||||
#: SABnzbd.py:1563 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: SABnzbd.py:1571 # sabnzbd/interface.py:438 # sabnzbd/interface.py:904
|
||||
#: sabnzbd/osxmenu.py:772
|
||||
msgid "SABnzbd shutdown finished"
|
||||
msgstr "SABnzbd 关闭完成"
|
||||
@@ -220,7 +230,6 @@ msgid "None"
|
||||
msgstr "无"
|
||||
|
||||
#: sabnzbd/api.py:1590 # sabnzbd/interface.py:117 # sabnzbd/skintext.py:90 [Default value, used in dropdown menus]
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Default"
|
||||
msgstr "默认"
|
||||
|
||||
@@ -394,27 +403,27 @@ msgstr "无法关闭数据库,参见日志"
|
||||
msgid "Invalid stage logging in history for %s"
|
||||
msgstr "%s 历史信息中 stage 日志无效"
|
||||
|
||||
#: sabnzbd/decoder.py:118
|
||||
#: sabnzbd/decoder.py:119
|
||||
msgid "Decoding %s failed"
|
||||
msgstr "%s 解码失败"
|
||||
|
||||
#: sabnzbd/decoder.py:128
|
||||
#: sabnzbd/decoder.py:129
|
||||
msgid "Decoder failure: Out of memory"
|
||||
msgstr "解码器失败:内存不足"
|
||||
|
||||
#: sabnzbd/decoder.py:140
|
||||
#: sabnzbd/decoder.py:141
|
||||
msgid "CRC Error in %s (%s -> %s)"
|
||||
msgstr "CRC 错误:%s (%s -> %s)"
|
||||
|
||||
#: sabnzbd/decoder.py:172
|
||||
#: sabnzbd/decoder.py:173
|
||||
msgid "Badly formed yEnc article in %s"
|
||||
msgstr "yEnc 文章格式错误:%s"
|
||||
|
||||
#: sabnzbd/decoder.py:182
|
||||
#: sabnzbd/decoder.py:183
|
||||
msgid "Unknown Error while decoding %s"
|
||||
msgstr "解码 %s 时发生未知错误"
|
||||
|
||||
#: sabnzbd/decoder.py:250
|
||||
#: sabnzbd/decoder.py:251
|
||||
msgid "UUencode detected, only yEnc encoding is supported [%s]"
|
||||
msgstr "检测到 UUencode,但是仅有 yEnc 编码受支持 [%s]"
|
||||
|
||||
@@ -937,32 +946,32 @@ msgstr "主数据包未找到..."
|
||||
msgid "Invalid par2 files, cannot verify or repair"
|
||||
msgstr "par2 文件无效,无法验证或修复"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1380 # sabnzbd/newsunpack.py:1415
|
||||
#: sabnzbd/newsunpack.py:1391 # sabnzbd/newsunpack.py:1426
|
||||
msgid "Repair failed, not enough repair blocks (%s short)"
|
||||
msgstr "修复失败,修复块不足 (缺 %s 块)"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1410
|
||||
#: sabnzbd/newsunpack.py:1421
|
||||
msgid "Fetching %s blocks..."
|
||||
msgstr "正在装取 %s 块..."
|
||||
|
||||
#: sabnzbd/newsunpack.py:1412
|
||||
#: sabnzbd/newsunpack.py:1423
|
||||
msgid "Fetching"
|
||||
msgstr "正在装取"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1423 # sabnzbd/newsunpack.py:1428
|
||||
#: sabnzbd/newsunpack.py:1434 # sabnzbd/newsunpack.py:1439
|
||||
msgid "Repairing"
|
||||
msgstr "正在修复"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1432
|
||||
#: sabnzbd/newsunpack.py:1443
|
||||
msgid "[%s] Repaired in %s"
|
||||
msgstr "[%s] 已修复,耗时 %s"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1485 # sabnzbd/newsunpack.py:1500
|
||||
#: sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1503 # sabnzbd/newsunpack.py:1518
|
||||
#: sabnzbd/newsunpack.py:1536
|
||||
msgid "Verifying"
|
||||
msgstr "正在验证"
|
||||
|
||||
#: sabnzbd/newsunpack.py:1622 [Error message]
|
||||
#: sabnzbd/newsunpack.py:1640 [Error message]
|
||||
msgid "Python script \"%s\" does not have execute (+x) permission set"
|
||||
msgstr "Python 脚本 \"%s\" 不具有执行 (+x) 权限"
|
||||
|
||||
@@ -3458,14 +3467,18 @@ msgstr "证书验证"
|
||||
|
||||
#: sabnzbd/skintext.py:546
|
||||
msgid ""
|
||||
"Default: when SSL is enabled, verify the identity of the server using its "
|
||||
"Minimal: when SSL is enabled, verify the identity of the server using its "
|
||||
"certificates. Strict: verify and enforce matching hostname."
|
||||
msgstr "默认:当 SSL 启用时,使用其证书来验证服务器身份。严格:验证并强制主机名一致。"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:547 # sabnzbd/skintext.py:782 # sabnzbd/skintext.py:895
|
||||
msgid "Disabled"
|
||||
msgstr "禁用"
|
||||
|
||||
#: sabnzbd/skintext.py:548
|
||||
msgid "Minimal"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py:549
|
||||
msgid "Strict"
|
||||
msgstr "严格"
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-03-18 21:42+0000\n"
|
||||
"PO-Revision-Date: 2017-03-14 16:11+0000\n"
|
||||
"Last-Translator: Rene <Unknown>\n"
|
||||
"PO-Revision-Date: 2017-04-10 11:28+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-03-19 06:37+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
"X-Launchpad-Export-Date: 2017-04-14 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18352)\n"
|
||||
|
||||
#: NSIS_Installer.nsi:473
|
||||
msgid "Show Release Notes"
|
||||
@@ -38,7 +38,7 @@ msgid ""
|
||||
"The installation directory has changed (now in \"Program Files\"). \\nIf you "
|
||||
"run SABnzbd as a service, you need to update the service settings."
|
||||
msgstr ""
|
||||
"Installationsmappen er ændret (nu i \"Program Files \"). \\Hvis du kører "
|
||||
"Installationsmappen er ændret (nu i \"Program Files \"). \\nHvis du kører "
|
||||
"SABnzbd som en tjeneste, skal du opdatere tjenesteindstillingerne."
|
||||
|
||||
#: NSIS_Installer.nsi:483
|
||||
|
||||
@@ -83,10 +83,8 @@ class Assembler(Thread):
|
||||
try:
|
||||
filepath = _assemble(nzf, filepath, dupe)
|
||||
except IOError, (errno, strerror):
|
||||
if nzo.is_gone():
|
||||
# Job was deleted, ignore error
|
||||
pass
|
||||
else:
|
||||
# If job was deleted, ignore error
|
||||
if not nzo.is_gone():
|
||||
# 28 == disk full => pause downloader
|
||||
if errno == 28:
|
||||
logging.error(T('Disk full! Forcing Pause'))
|
||||
@@ -94,6 +92,7 @@ class Assembler(Thread):
|
||||
logging.error(T('Disk error on creating file %s'), clip_path(filepath))
|
||||
# Pause without saving
|
||||
sabnzbd.downloader.Downloader.do.pause(save=False)
|
||||
continue
|
||||
except:
|
||||
logging.error(T('Fatal error in Assembler'), exc_info=True)
|
||||
break
|
||||
@@ -105,6 +104,11 @@ class Assembler(Thread):
|
||||
if pack:
|
||||
nzo.md5packs[setname] = pack
|
||||
logging.debug('Got md5pack for set %s', setname)
|
||||
# Valid md5pack, so use this par2-file as main par2 file for the set
|
||||
if setname in nzo.partable:
|
||||
# First copy the set of extrapars, we need them later
|
||||
nzf.extrapars = nzo.partable[setname].extrapars
|
||||
nzo.partable[setname] = nzf
|
||||
|
||||
rar_encrypted, unwanted_file = check_encrypted_and_unwanted_files(nzo, filepath)
|
||||
if rar_encrypted:
|
||||
|
||||
@@ -380,7 +380,6 @@ osx_speed = OptionBool('misc', 'osx_speed', True)
|
||||
keep_awake = OptionBool('misc', 'keep_awake', True)
|
||||
win_menu = OptionBool('misc', 'win_menu', True)
|
||||
allow_incomplete_nzb = OptionBool('misc', 'allow_incomplete_nzb', False)
|
||||
prospective_par_download = OptionBool('misc', 'prospective_par_download', True)
|
||||
marker_file = OptionStr('misc', 'nomedia_marker', '')
|
||||
wait_ext_drive = OptionNumber('misc', 'wait_ext_drive', 5, 1, 60)
|
||||
queue_limit = OptionNumber('misc', 'queue_limit', 20, 0)
|
||||
|
||||
@@ -127,7 +127,7 @@ date_match = [r'(\d{4})\W(\d{1,2})\W(\d{1,2})', # 2008-10-16
|
||||
|
||||
year_match = r'[\W]([1|2]\d{3})([^\w]|$)' # Something '(YYYY)' or '.YYYY.' or ' YYYY '
|
||||
|
||||
sample_match = r'((^|[\W_])sample\d*[\W_])' # something-sample.avi
|
||||
sample_match = r'((^|[\W_])(sample|proof))' # something-sample or something-proof
|
||||
|
||||
|
||||
class Status():
|
||||
|
||||
@@ -178,7 +178,7 @@ class Decoder(Thread):
|
||||
logging.info(logme)
|
||||
|
||||
if not found or killed:
|
||||
new_server_found = sabnzbd.downloader.Downloader.do.search_new_server(article)
|
||||
new_server_found = self.__search_new_server(article)
|
||||
if new_server_found:
|
||||
register = False
|
||||
logme = None
|
||||
@@ -187,7 +187,7 @@ class Decoder(Thread):
|
||||
logme = T('Unknown Error while decoding %s') % art_id
|
||||
logging.info(logme)
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
new_server_found = sabnzbd.downloader.Downloader.do.search_new_server(article)
|
||||
new_server_found = self.__search_new_server(article)
|
||||
if new_server_found:
|
||||
register = False
|
||||
logme = None
|
||||
@@ -199,7 +199,7 @@ class Decoder(Thread):
|
||||
nzo.inc_log('bad_art_log', art_id)
|
||||
|
||||
else:
|
||||
new_server_found = sabnzbd.downloader.Downloader.do.search_new_server(article)
|
||||
new_server_found = self.__search_new_server(article)
|
||||
if new_server_found:
|
||||
register = False
|
||||
elif nzo.precheck:
|
||||
@@ -211,6 +211,23 @@ class Decoder(Thread):
|
||||
if register:
|
||||
sabnzbd.nzbqueue.NzbQueue.do.register_article(article, found)
|
||||
|
||||
def __search_new_server(self, article):
|
||||
# Search new server
|
||||
article.add_to_try_list(article.fetcher)
|
||||
for server in self.servers:
|
||||
if server.active and not article.server_in_try_list(server):
|
||||
if server.priority >= article.fetcher.priority:
|
||||
article.fetcher = None
|
||||
article.tries = 0
|
||||
# Allow all servers for this nzo and nzf again (but not for this article)
|
||||
sabnzbd.nzbqueue.NzbQueue.do.reset_try_lists(article.nzf, article.nzf.nzo)
|
||||
return True
|
||||
|
||||
msg = T('%s => missing from all servers, discarding') % article
|
||||
logging.debug(msg)
|
||||
article.nzf.nzo.inc_log('missing_art_log', msg)
|
||||
return False
|
||||
|
||||
|
||||
YDEC_TRANS = ''.join([chr((i + 256 - 42) % 256) for i in xrange(256)])
|
||||
def decode(article, data, raw_data):
|
||||
|
||||
@@ -270,7 +270,6 @@ class Downloader(Thread):
|
||||
""" Pause the downloader, optionally saving admin """
|
||||
if not self.paused:
|
||||
self.paused = True
|
||||
self.can_be_slowed = None
|
||||
logging.info("Pausing")
|
||||
notifier.send_notification("SABnzbd", T('Paused'), 'download')
|
||||
if self.is_paused():
|
||||
@@ -327,7 +326,6 @@ class Downloader(Thread):
|
||||
else:
|
||||
self.speed_set()
|
||||
logging.info("Speed limit set to %s B/s", self.bandwidth_limit)
|
||||
self.can_be_slowed = None
|
||||
|
||||
def get_limit(self):
|
||||
return self.bandwidth_perc
|
||||
@@ -533,7 +531,7 @@ class Downloader(Thread):
|
||||
|
||||
# Why check so often when so few things happened?
|
||||
if self.can_be_slowed and len(readkeys) >= 8 and len(read) <= 2:
|
||||
time.sleep(0.05)
|
||||
time.sleep(0.01)
|
||||
|
||||
# Need to initialize the check during first 20 seconds
|
||||
if self.can_be_slowed is None or self.can_be_slowed_timer:
|
||||
@@ -613,7 +611,6 @@ class Downloader(Thread):
|
||||
if nzo:
|
||||
nzo.update_download_stats(BPSMeter.do.get_bps(), server.id, bytes)
|
||||
|
||||
to_decoder = True
|
||||
if not done and nw.status_code != '222':
|
||||
if not nw.connected or nw.status_code == '480':
|
||||
done = False
|
||||
@@ -717,12 +714,9 @@ class Downloader(Thread):
|
||||
|
||||
elif nw.status_code in ('411', '423', '430'):
|
||||
done = True
|
||||
to_decoder = False
|
||||
logging.debug('Thread %s@%s: Article %s missing (error=%s)',
|
||||
logging.info('Thread %s@%s: Article %s missing (error=%s)',
|
||||
nw.thrdnum, nw.server.id, article.article, nw.status_code)
|
||||
# Search for new article
|
||||
if not self.search_new_server(article):
|
||||
sabnzbd.nzbqueue.NzbQueue.do.register_article(article, False)
|
||||
nw.clear_data()
|
||||
|
||||
elif nw.status_code == '480':
|
||||
if server.active:
|
||||
@@ -750,10 +744,7 @@ class Downloader(Thread):
|
||||
server.errormsg = server.warning = ''
|
||||
if sabnzbd.LOG_ALL:
|
||||
logging.debug('Thread %s@%s: %s done', nw.thrdnum, server.id, article.article)
|
||||
|
||||
# Missing articles are not decoded
|
||||
if to_decoder:
|
||||
self.decode(article, nw.lines, nw.data)
|
||||
self.decode(article, nw.lines, nw.data)
|
||||
|
||||
nw.soft_reset()
|
||||
server.busy_threads.remove(nw)
|
||||
@@ -844,23 +835,6 @@ class Downloader(Thread):
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
self.__reset_nw(nw, "server broke off connection", quit=False)
|
||||
|
||||
def search_new_server(self, article):
|
||||
# Search new server
|
||||
article.add_to_try_list(article.fetcher)
|
||||
for server in self.servers:
|
||||
if server.active and not article.server_in_try_list(server):
|
||||
if server.priority >= article.fetcher.priority:
|
||||
article.fetcher = None
|
||||
article.tries = 0
|
||||
# Allow all servers for this nzo and nzf again (but not for this article)
|
||||
sabnzbd.nzbqueue.NzbQueue.do.reset_try_lists(article.nzf, article.nzf.nzo)
|
||||
return True
|
||||
|
||||
msg = T('%s => missing from all servers, discarding') % article
|
||||
logging.debug(msg)
|
||||
article.nzf.nzo.inc_log('missing_art_log', msg)
|
||||
return False
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Timed restart of servers admin.
|
||||
# For each server all planned events are kept in a list.
|
||||
|
||||
@@ -257,7 +257,12 @@ def check_apikey(kwargs, nokey=False):
|
||||
Return None when OK, otherwise an error message
|
||||
"""
|
||||
def log_warning(txt):
|
||||
txt = '%s %s>%s' % (txt, cherrypy.request.remote.ip, cherrypy.request.headers.get('User-Agent', '??'))
|
||||
# Was it proxy forwarded?
|
||||
xff = cherrypy.request.headers.get('X-Forwarded-For')
|
||||
if xff:
|
||||
txt = '%s %s (X-Forwarded-For: %s)>%s' % (txt, cherrypy.request.remote.ip, xff, cherrypy.request.headers.get('User-Agent', '??'))
|
||||
else:
|
||||
txt = '%s %s>%s' % (txt, cherrypy.request.remote.ip, cherrypy.request.headers.get('User-Agent', '??'))
|
||||
logging.warning('%s', txt)
|
||||
|
||||
output = kwargs.get('output')
|
||||
@@ -482,8 +487,14 @@ class MainPage(object):
|
||||
def api(self, **kwargs):
|
||||
""" Handler for API over http, with explicit authentication parameters """
|
||||
if cfg.api_logging():
|
||||
logging.debug('API-call from %s [%s] %s', cherrypy.request.remote.ip,
|
||||
cherrypy.request.headers.get('User-Agent', '??'), kwargs)
|
||||
# Was it proxy forwarded?
|
||||
xff = cherrypy.request.headers.get('X-Forwarded-For')
|
||||
if xff:
|
||||
logging.debug('API-call from %s (X-Forwarded-For: %s) [%s] %s', cherrypy.request.remote.ip,
|
||||
xff, cherrypy.request.headers.get('User-Agent', '??'), kwargs)
|
||||
else:
|
||||
logging.debug('API-call from %s [%s] %s', cherrypy.request.remote.ip,
|
||||
cherrypy.request.headers.get('User-Agent', '??'), kwargs)
|
||||
mode = kwargs.get('mode', '')
|
||||
if isinstance(mode, list):
|
||||
mode = mode[0]
|
||||
@@ -561,18 +572,27 @@ class LoginPage(object):
|
||||
if check_login():
|
||||
raise Raiser(cherrypy.request.script_name + '/')
|
||||
|
||||
# Was it proxy forwarded?
|
||||
xff = cherrypy.request.headers.get('X-Forwarded-For')
|
||||
|
||||
# Check login info
|
||||
if kwargs.get('username') == cfg.username() and kwargs.get('password') == cfg.password():
|
||||
# Save login cookie
|
||||
set_login_cookie(remember_me=kwargs.get('remember_me', False))
|
||||
# Log the succes
|
||||
logging.info('Successful login from %s', cherrypy.request.remote.ip)
|
||||
if xff:
|
||||
logging.info('Successful login from %s (X-Forwarded-For: %s)', cherrypy.request.remote.ip, xff)
|
||||
else:
|
||||
logging.info('Successful login from %s', cherrypy.request.remote.ip)
|
||||
# Redirect
|
||||
raise Raiser(cherrypy.request.script_name + '/')
|
||||
elif kwargs.get('username') or kwargs.get('password'):
|
||||
info['error'] = T('Authentication failed, check username/password.')
|
||||
# Warn about the potential security problem
|
||||
logging.warning(T('Unsuccessful login attempt from %s') % cherrypy.request.remote.ip)
|
||||
fail_msg = T('Unsuccessful login attempt from %s') % cherrypy.request.remote.ip
|
||||
if xff:
|
||||
fail_msg = '%s (X-Forwarded-For: %s)' % (fail_msg, xff)
|
||||
logging.warning(fail_msg)
|
||||
|
||||
# Show login
|
||||
template = Template(file=os.path.join(sabnzbd.WEB_DIR_CONFIG, 'login', 'main.tmpl'),
|
||||
@@ -1443,12 +1463,12 @@ SPECIAL_BOOL_LIST = \
|
||||
('start_paused', 'no_penalties', 'ignore_wrong_unrar', 'overwrite_files', 'create_group_folders',
|
||||
'queue_complete_pers', 'quick_check', 'api_warnings', 'allow_64bit_tools', 'ampm',
|
||||
'enable_unrar', 'enable_unzip', 'enable_7zip', 'enable_filejoin', 'enable_tsjoin',
|
||||
'prospective_par_download', 'never_repair', 'allow_streaming', 'ignore_unrar_dates',
|
||||
'never_repair', 'allow_streaming', 'ignore_unrar_dates',
|
||||
'osx_menu', 'osx_speed', 'win_menu', 'use_pickle', 'allow_incomplete_nzb',
|
||||
'rss_filenames', 'ipv6_hosting', 'keep_awake', 'empty_postproc', 'html_login',
|
||||
'wait_for_dfolder', 'warn_empty_nzb', 'enable_bonjour','allow_duplicate_files',
|
||||
'warn_dupl_jobs', 'backup_for_duplicates', 'enable_par_cleanup', 'disable_api_key',
|
||||
'api_logging', 'fixed_ports', 'enable_meta'
|
||||
'api_logging', 'enable_meta'
|
||||
)
|
||||
SPECIAL_VALUE_LIST = \
|
||||
('size_limit', 'folder_max_length', 'fsys_type', 'movie_rename_limit', 'nomedia_marker',
|
||||
|
||||
@@ -252,11 +252,11 @@ def has_win_device(p):
|
||||
|
||||
if sabnzbd.WIN32:
|
||||
# the colon should be here too, but we'll handle that separately
|
||||
CH_ILLEGAL = r'\/<>?*|"'
|
||||
CH_LEGAL = r'++{}!@#`'
|
||||
CH_ILLEGAL = '\/<>?*|"\t'
|
||||
CH_LEGAL = '++{}!@#`+'
|
||||
else:
|
||||
CH_ILLEGAL = r'/'
|
||||
CH_LEGAL = r'+'
|
||||
CH_ILLEGAL = '/'
|
||||
CH_LEGAL = '+'
|
||||
|
||||
|
||||
def sanitize_filename(name, allow_win_devices=False):
|
||||
|
||||
@@ -120,9 +120,8 @@ def find_programs(curdir):
|
||||
if sabnzbd.WIN64 and cfg.allow_64bit_tools.get():
|
||||
sabnzbd.newsunpack.PAR2_COMMAND = check(curdir, 'win/par2/x64/par2.exe')
|
||||
sabnzbd.newsunpack.RAR_COMMAND = check(curdir, 'win/unrar/x64/UnRAR.exe')
|
||||
if not sabnzbd.newsunpack.PAR2_COMMAND:
|
||||
else:
|
||||
sabnzbd.newsunpack.PAR2_COMMAND = check(curdir, 'win/par2/par2.exe')
|
||||
if not sabnzbd.newsunpack.RAR_COMMAND:
|
||||
sabnzbd.newsunpack.RAR_COMMAND = check(curdir, 'win/unrar/UnRAR.exe')
|
||||
sabnzbd.newsunpack.PAR2C_COMMAND = check(curdir, 'win/par2/par2cmdline.exe')
|
||||
sabnzbd.newsunpack.ZIP_COMMAND = check(curdir, 'win/unzip/unzip.exe')
|
||||
@@ -172,7 +171,7 @@ def external_processing(extern_proc, nzo, complete_dir, nicename, status):
|
||||
'complete_dir': complete_dir,
|
||||
'pp_status': status,
|
||||
'download_time': nzo.nzo_info.get('download_time', ''),
|
||||
'avg_bps': int(nzo.avg_bps_total / nzo.avg_bps_freq),
|
||||
'avg_bps': int(nzo.avg_bps_total / nzo.avg_bps_freq) if nzo.avg_bps_freq else 0,
|
||||
'age': calc_age(nzo.avg_date),
|
||||
'version': sabnzbd.__version__}
|
||||
|
||||
@@ -285,6 +284,10 @@ def unpack_magic(nzo, workdir, workdir_complete, dele, one_folder, joinables, zi
|
||||
nzo.set_action_line()
|
||||
rerun = not error
|
||||
|
||||
# During a Retry we might miss files that failed during recursive unpack
|
||||
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):
|
||||
z, y = unpack_magic(nzo, workdir, workdir_complete, dele, one_folder,
|
||||
xjoinables, xzips, xrars, xsevens, xts, depth)
|
||||
@@ -572,6 +575,10 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
# See: https://github.com/sabnzbd/sabnzbd/pull/771
|
||||
command = ['%s' % RAR_COMMAND, action, '-idp', overwrite, rename, '-ai', password_command,
|
||||
'%s' % clip_path(rarfile_path), '%s\\' % extraction_path]
|
||||
|
||||
# If this is the retry without leading \\.\, we need to remove the \ at the end (yes..)
|
||||
if not extraction_path.startswith('\\\\?\\'):
|
||||
command[-1] = command[-1][:-1]
|
||||
elif RAR_PROBLEM:
|
||||
# Use only oldest options (specifically no "-or")
|
||||
command = ['%s' % RAR_COMMAND, action, '-idp', overwrite, password_command,
|
||||
@@ -616,7 +623,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
p.kill()
|
||||
msg = T('PostProcessing was aborted (%s)') % T('Unpack')
|
||||
nzo.fail_msg = msg
|
||||
nzo.set_unpack_info('Unpack', msg, set=setname)
|
||||
nzo.set_unpack_info('Unpack', msg)
|
||||
nzo.status = Status.FAILED
|
||||
return fail, (), ()
|
||||
|
||||
@@ -642,7 +649,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
filename = os.path.basename(TRANS(line[19:]))
|
||||
nzo.fail_msg = T('Unpacking failed, unable to find %s') % unicoder(filename)
|
||||
msg = (u'[%s] ' + T('Unpacking failed, unable to find %s')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
logging.warning(T('ERROR: unable to find "%s"'), filename)
|
||||
fail = 1
|
||||
|
||||
@@ -650,14 +657,14 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
filename = TRANS(line[:-12].strip())
|
||||
nzo.fail_msg = T('Unpacking failed, CRC error')
|
||||
msg = (u'[%s] ' + T('ERROR: CRC failed in "%s"')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
logging.warning(T('ERROR: CRC failed in "%s"'), setname)
|
||||
fail = 2 # Older unrar versions report a wrong password as a CRC error
|
||||
|
||||
elif line.startswith('File too large'):
|
||||
nzo.fail_msg = T('Unpacking failed, file too large for filesystem (FAT?)')
|
||||
msg = (u'[%s] ' + T('Unpacking failed, file too large for filesystem (FAT?)')) % setname
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
# ERROR: File too large for file system (bigfile-5000MB)
|
||||
logging.error(T('ERROR: File too large for filesystem (%s)'), setname)
|
||||
fail = 1
|
||||
@@ -665,7 +672,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
elif line.startswith('Write error'):
|
||||
nzo.fail_msg = T('Unpacking failed, write error or disk is full?')
|
||||
msg = (u'[%s] ' + T('Unpacking failed, write error or disk is full?')) % setname
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
logging.error(T('ERROR: write error (%s)'), line[11:])
|
||||
fail = 1
|
||||
|
||||
@@ -685,14 +692,14 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
nzo.fail_msg = T('Unpacking failed, write error or disk is full?')
|
||||
msg = u'[%s] %s: %s' % (T('Unpacking failed, write error or disk is full?'), setname, unicoder(line[13:]))
|
||||
logging.error(T('ERROR: write error (%s)'), unicoder(line[13:]))
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
fail = 1
|
||||
|
||||
elif line.startswith('ERROR: '):
|
||||
nzo.fail_msg = T('Unpacking failed, see log')
|
||||
logging.warning(T('ERROR: %s'), (unicoder(line[7:])))
|
||||
msg = (u'[%s] ' + T('ERROR: %s')) % (setname, line[7:])
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
fail = 1
|
||||
|
||||
elif 'The specified password is incorrect' in line or \
|
||||
@@ -711,7 +718,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
filename = os.path.split(rarfile_path)[1]
|
||||
nzo.fail_msg = T('Unpacking failed, archive requires a password')
|
||||
msg = (u'[%s][%s] ' + T('Unpacking failed, archive requires a password')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
fail = 2
|
||||
|
||||
elif 'is not RAR archive' in line:
|
||||
@@ -723,7 +730,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
filename = '???'
|
||||
nzo.fail_msg = T('Unusable RAR file')
|
||||
msg = ('[%s][%s] ' + T('Unusable RAR file')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
fail = 3
|
||||
|
||||
elif 'checksum error' in line:
|
||||
@@ -736,7 +743,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
filename = '???'
|
||||
nzo.fail_msg = T('Corrupt RAR file')
|
||||
msg = ('[%s][%s] ' + T('Corrupt RAR file')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
fail = 3
|
||||
|
||||
else:
|
||||
@@ -764,7 +771,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
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() - start))
|
||||
nzo.set_unpack_info('Unpack', '[%s] %s' % (unicoder(setname), msg), set=setname)
|
||||
nzo.set_unpack_info('Unpack', '[%s] %s' % (unicoder(setname), msg))
|
||||
logging.info('%s', msg)
|
||||
|
||||
return 0, extracted, rarfiles
|
||||
@@ -880,7 +887,7 @@ def unseven(nzo, workdir, workdir_complete, delete, one_folder, sevens):
|
||||
for seven in sets:
|
||||
extensions = sets[seven]
|
||||
logging.info("Starting extract on 7zip set/file: %s ", seven)
|
||||
nzo.set_action_line(T('Unpacking'), '%s' % unicoder(seven))
|
||||
nzo.set_action_line(T('Unpacking'), '%s' % unicoder(os.path.basename(seven)))
|
||||
|
||||
if workdir_complete and seven.startswith(workdir):
|
||||
extraction_path = workdir_complete
|
||||
@@ -920,7 +927,9 @@ def seven_extract(nzo, sevenset, extensions, extraction_path, one_folder, delete
|
||||
|
||||
nzo.fail_msg = ''
|
||||
if fail == 2:
|
||||
logging.error(u'%s (%s)', T('Unpacking failed, archive requires a password'), os.path.split(sevenset)[1])
|
||||
msg = '%s (%s)' % (T('Unpacking failed, archive requires a password'), os.path.basename(sevenset))
|
||||
nzo.fail_msg = msg
|
||||
logging.error(msg)
|
||||
return fail, msg
|
||||
|
||||
|
||||
@@ -936,6 +945,10 @@ def seven_extract_core(sevenset, extensions, extraction_path, one_folder, delete
|
||||
case = '-ssc-' # Case insensitive
|
||||
else:
|
||||
case = '-ssc' # Case sensitive
|
||||
if cfg.overwrite_files():
|
||||
overwrite = '-aoa'
|
||||
else:
|
||||
overwrite = '-aou'
|
||||
if password:
|
||||
password = '-p%s' % password
|
||||
else:
|
||||
@@ -951,7 +964,7 @@ def seven_extract_core(sevenset, extensions, extraction_path, one_folder, delete
|
||||
if not os.path.exists(name):
|
||||
return 1, T('7ZIP set "%s" is incomplete, cannot unpack') % unicoder(sevenset)
|
||||
|
||||
command = [SEVEN_COMMAND, method, '-y', '-aou', parm, case, password,
|
||||
command = [SEVEN_COMMAND, method, '-y', overwrite, parm, case, password,
|
||||
'-o%s' % extraction_path, name]
|
||||
|
||||
stup, need_shell, command, creationflags = build_command(command)
|
||||
@@ -1016,7 +1029,7 @@ def par2_repair(parfile_nzf, nzo, workdir, setname, single):
|
||||
qc_result = QuickCheck(setname, nzo)
|
||||
if qc_result and cfg.quick_check():
|
||||
logging.info("Quick-check for %s is OK, skipping repair", setname)
|
||||
nzo.set_unpack_info('Repair', T('[%s] Quick Check OK') % unicoder(setname), set=setname)
|
||||
nzo.set_unpack_info('Repair', T('[%s] Quick Check OK') % unicoder(setname))
|
||||
pars = setpars
|
||||
result = True
|
||||
|
||||
@@ -1141,8 +1154,6 @@ _RE_LOADED_PAR2 = re.compile(r'Loaded (\d+) new packets')
|
||||
|
||||
def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, single=False):
|
||||
""" Run par2 on par-set """
|
||||
import sabnzbd # Python bug requires import here
|
||||
import sabnzbd.assembler
|
||||
if cfg.never_repair():
|
||||
cmd = 'v'
|
||||
else:
|
||||
@@ -1262,7 +1273,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
p.kill()
|
||||
msg = T('PostProcessing was aborted (%s)') % T('Repair')
|
||||
nzo.fail_msg = msg
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
nzo.status = Status.FAILED
|
||||
readd = False
|
||||
break
|
||||
@@ -1286,19 +1297,19 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
|
||||
if line.startswith('Invalid option specified') or line.startswith('Cannot specify recovery file count'):
|
||||
msg = T('[%s] PAR2 received incorrect options, check your Config->Switches settings') % unicoder(setname)
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
nzo.status = Status.FAILED
|
||||
|
||||
elif line.startswith('All files are correct'):
|
||||
msg = T('[%s] Verified in %s, all files correct') % (unicoder(setname), format_time_string(time() - start))
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
logging.info('Verified in %s, all files correct',
|
||||
format_time_string(time() - start))
|
||||
finished = 1
|
||||
|
||||
elif line.startswith('Repair is required'):
|
||||
msg = T('[%s] Verified in %s, repair is required') % (unicoder(setname), format_time_string(time() - start))
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
logging.info('Verified in %s, repair is required',
|
||||
format_time_string(time() - start))
|
||||
start = time()
|
||||
@@ -1341,7 +1352,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
msg = T('Invalid par2 files, cannot verify or repair')
|
||||
nzo.fail_msg = msg
|
||||
msg = u'[%s] %s' % (unicoder(setname), msg)
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
nzo.status = Status.FAILED
|
||||
|
||||
elif line.startswith('You need'):
|
||||
@@ -1391,7 +1402,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
msg = T('Repair failed, not enough repair blocks (%s short)') % str(int(needed_blocks - avail_blocks))
|
||||
nzo.fail_msg = msg
|
||||
msg = u'[%s] %s' % (unicoder(setname), msg)
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
nzo.status = Status.FETCHING
|
||||
needed_blocks = avail_blocks
|
||||
force = True
|
||||
@@ -1426,7 +1437,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
msg = T('Repair failed, not enough repair blocks (%s short)') % str(needed_blocks)
|
||||
nzo.fail_msg = msg
|
||||
msg = u'[%s] %s' % (unicoder(setname), msg)
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
nzo.status = Status.FAILED
|
||||
|
||||
elif line.startswith('Repair is possible'):
|
||||
@@ -1441,7 +1452,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
|
||||
elif line.startswith('Repair complete'):
|
||||
msg = T('[%s] Repaired in %s') % (unicoder(setname), format_time_string(time() - start))
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
logging.info('Repaired in %s', format_time_string(time() - start))
|
||||
finished = 1
|
||||
|
||||
@@ -1485,7 +1496,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
msg = unicoder(line.strip())
|
||||
nzo.fail_msg = msg
|
||||
msg = u'[%s] %s' % (unicoder(setname), msg)
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
nzo.status = Status.FAILED
|
||||
|
||||
# File: "oldname.rar" - is a match for "newname.rar".
|
||||
@@ -1510,7 +1521,7 @@ def PAR_Verify(parfile, parfile_nzf, nzo, setname, joinables, classic=False, sin
|
||||
msg = unicoder(line.strip())
|
||||
nzo.fail_msg = msg
|
||||
msg = u'[%s] %s' % (unicoder(setname), msg)
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
nzo.status = Status.FAILED
|
||||
|
||||
elif not verified:
|
||||
@@ -1777,12 +1788,13 @@ def build_filelists(workdir, workdir_complete=None, check_rar=True):
|
||||
|
||||
def QuickCheck(set, nzo):
|
||||
""" Check all on-the-fly md5sums of a set """
|
||||
|
||||
md5pack = nzo.md5packs.get(set)
|
||||
if md5pack is None:
|
||||
return False
|
||||
|
||||
result = False
|
||||
# We use bitwise assigment (&=) so False always wins in case of failure
|
||||
# This way the renames always get saved!
|
||||
result = True
|
||||
nzf_list = nzo.finished_files
|
||||
renames = {}
|
||||
|
||||
@@ -1799,14 +1811,14 @@ def QuickCheck(set, nzo):
|
||||
found = True
|
||||
if (nzf.md5sum is not None) and nzf.md5sum == md5pack[file]:
|
||||
logging.debug('Quick-check of file %s OK', file)
|
||||
result = True
|
||||
result &= True
|
||||
elif file_to_ignore:
|
||||
# We don't care about these files
|
||||
logging.debug('Quick-check ignoring file %s', file)
|
||||
result = True
|
||||
result &= True
|
||||
else:
|
||||
logging.info('Quick-check of file %s failed!', file)
|
||||
return False # When any file fails, just stop
|
||||
result = False
|
||||
break
|
||||
|
||||
# Now lets do obfuscation check
|
||||
@@ -1816,7 +1828,7 @@ def QuickCheck(set, nzo):
|
||||
renamer(os.path.join(nzo.downpath, nzf.filename), os.path.join(nzo.downpath, file_platform))
|
||||
renames[file_platform] = nzf.filename
|
||||
nzf.filename = file_platform
|
||||
result = True
|
||||
result &= True
|
||||
found = True
|
||||
break
|
||||
except IOError:
|
||||
@@ -1830,7 +1842,7 @@ def QuickCheck(set, nzo):
|
||||
continue
|
||||
|
||||
logging.info('Cannot Quick-check missing file %s!', file)
|
||||
return False # Missing file is failure
|
||||
result = False
|
||||
|
||||
# Save renames
|
||||
if renames:
|
||||
|
||||
@@ -75,7 +75,6 @@ class Article(TryList):
|
||||
|
||||
def __init__(self, article, bytes, partnum, nzf):
|
||||
TryList.__init__(self)
|
||||
|
||||
self.fetcher = None
|
||||
self.article = article
|
||||
self.art_id = None
|
||||
@@ -671,8 +670,8 @@ class NzbObject(TryList):
|
||||
duplicate = series = 0
|
||||
|
||||
if reuse:
|
||||
remove_all(adir, 'SABnzbd_nz?_*')
|
||||
remove_all(adir, 'SABnzbd_article_*')
|
||||
remove_all(adir, 'SABnzbd_nz?_*', True)
|
||||
remove_all(adir, 'SABnzbd_article_*', True)
|
||||
else:
|
||||
wdir = trim_win_path(wdir)
|
||||
wdir = get_unique_path(wdir, create_dir=True)
|
||||
@@ -1014,14 +1013,14 @@ class NzbObject(TryList):
|
||||
sabnzbd.LAST_HISTORY_UPDATE = time.time()
|
||||
return True, True
|
||||
|
||||
if not found:
|
||||
# Add extra parfiles when there was a damaged article and not pre-checking
|
||||
if cfg.prospective_par_download() and self.extrapars and not self.precheck:
|
||||
self.prospective_add(nzf)
|
||||
|
||||
if file_done:
|
||||
self.handle_par2(nzf, file_done)
|
||||
|
||||
if not found:
|
||||
# Add extra parfiles when there was a damaged article and not pre-checking
|
||||
if self.extrapars and not self.precheck:
|
||||
self.prospective_add(nzf)
|
||||
|
||||
post_done = False
|
||||
if not self.files:
|
||||
post_done = True
|
||||
@@ -1526,9 +1525,8 @@ class NzbObject(TryList):
|
||||
return self.files_table[nzf_id]
|
||||
|
||||
@synchronized(IO_LOCK)
|
||||
def set_unpack_info(self, key, msg, set='', unique=False):
|
||||
def set_unpack_info(self, key, msg, unique=False):
|
||||
""" Builds a dictionary containing the stage name (key) and a message
|
||||
If set is present, it will overwrite any other messages from the set of the same stage
|
||||
If unique is present, it will only have a single line message
|
||||
"""
|
||||
found = False
|
||||
@@ -1536,15 +1534,7 @@ class NzbObject(TryList):
|
||||
if not unique:
|
||||
if key not in self.unpack_info:
|
||||
self.unpack_info[key] = []
|
||||
# If set is present, look for previous message from that set and replace
|
||||
if set:
|
||||
set = unicoder('[%s]' % set)
|
||||
for x in xrange(len(self.unpack_info[key])):
|
||||
if set in self.unpack_info[key][x]:
|
||||
self.unpack_info[key][x] = msg
|
||||
found = True
|
||||
if not found:
|
||||
self.unpack_info[key].append(msg)
|
||||
self.unpack_info[key].append(msg)
|
||||
else:
|
||||
self.unpack_info[key] = [msg]
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@ PANIC_TEMPL = 2
|
||||
PANIC_QUEUE = 3
|
||||
PANIC_FWALL = 4
|
||||
PANIC_OTHER = 5
|
||||
PANIC_XPORT = 6
|
||||
PANIC_SQLITE = 7
|
||||
PANIC_HOST = 8
|
||||
|
||||
@@ -85,21 +84,6 @@ def MSG_BAD_PORT():
|
||||
Ta(r'If you get this error message again, please try a different number.<br>')
|
||||
|
||||
|
||||
def MSG_ILL_PORT():
|
||||
return Ta(r'''
|
||||
SABnzbd needs a free tcp/ip port for its internal web server.<br>
|
||||
Port %s on %s was tried , but the account used for SABnzbd has no permission to use it.<br>
|
||||
On OSX and Linux systems, normal users must use ports above 1023.<br>
|
||||
<br>
|
||||
Please restart SABnzbd with a different port number.''') + \
|
||||
'''<br>
|
||||
<br>
|
||||
%s<br>
|
||||
%s --server %s:%s<br>
|
||||
<br>''' + \
|
||||
Ta(r'If you get this error message again, please try a different number.<br>')
|
||||
|
||||
|
||||
def MSG_BAD_HOST():
|
||||
return Ta(r'''
|
||||
SABnzbd needs a valid host address for its internal web server.<br>
|
||||
@@ -174,13 +158,6 @@ def panic_message(panic, a=None, b=None):
|
||||
newport = int(b) + 1
|
||||
newport = "%s" % newport
|
||||
msg = MSG_BAD_PORT() % (b, a, os_str, prog_path, a, newport)
|
||||
elif panic == PANIC_XPORT:
|
||||
if int(b) < 1023:
|
||||
newport = 1024
|
||||
else:
|
||||
newport = int(b) + 1
|
||||
newport = "%s" % newport
|
||||
msg = MSG_ILL_PORT() % (b, a, os_str, prog_path, a, newport)
|
||||
elif panic == PANIC_TEMPL:
|
||||
msg = MSG_BAD_TEMPL() % a
|
||||
elif panic == PANIC_QUEUE:
|
||||
@@ -217,6 +194,7 @@ def panic_fwall(vista):
|
||||
|
||||
|
||||
def panic_port(host, port):
|
||||
print "\n%s:\n %s" % (T('Fatal error'), T('Unable to bind to port %s on %s. Some other software uses the port or SABnzbd is already running.') % (port, host))
|
||||
launch_a_browser(panic_message(PANIC_PORT, host, port))
|
||||
|
||||
|
||||
@@ -224,11 +202,6 @@ def panic_host(host, port):
|
||||
launch_a_browser(panic_message(PANIC_HOST, host, port))
|
||||
|
||||
|
||||
def panic_xport(host, port):
|
||||
launch_a_browser(panic_message(PANIC_XPORT, host, port))
|
||||
logging.error(T('You have no permission to use port %s'), port)
|
||||
|
||||
|
||||
def panic_queue(name):
|
||||
launch_a_browser(panic_message(PANIC_QUEUE, name, 0))
|
||||
|
||||
|
||||
@@ -52,6 +52,8 @@ import sabnzbd.notifier as notifier
|
||||
import sabnzbd.utils.rarfile as rarfile
|
||||
import sabnzbd.utils.checkdir
|
||||
|
||||
# Match samples
|
||||
RE_SAMPLE = re.compile(sample_match, re.I)
|
||||
|
||||
class PostProcessor(Thread):
|
||||
""" PostProcessor thread, designed as Singleton """
|
||||
@@ -641,7 +643,7 @@ def parring(nzo, workdir):
|
||||
|
||||
if repair_sets:
|
||||
for setname in repair_sets:
|
||||
if cfg.ignore_samples() and 'sample' in setname.lower():
|
||||
if cfg.ignore_samples() and RE_SAMPLE.search(setname.lower()):
|
||||
continue
|
||||
if not verified.get(setname, False):
|
||||
logging.info("Running verification and repair on set %s", setname)
|
||||
@@ -656,10 +658,6 @@ def parring(nzo, workdir):
|
||||
break
|
||||
|
||||
re_add = re_add or need_re_add
|
||||
if not res and not need_re_add and cfg.sfv_check():
|
||||
res = try_sfv_check(nzo, workdir, setname)
|
||||
if not res and not need_re_add and cfg.enable_unrar():
|
||||
res = try_rar_check(nzo, workdir, setname)
|
||||
verified[setname] = res
|
||||
else:
|
||||
continue
|
||||
@@ -776,7 +774,7 @@ def try_rar_check(nzo, workdir, setname):
|
||||
# Test
|
||||
if rars:
|
||||
nzo.status = Status.VERIFYING
|
||||
nzo.set_unpack_info('Repair', T('Trying RAR-based verification'), set=setname)
|
||||
nzo.set_unpack_info('Repair', T('Trying RAR-based verification'))
|
||||
nzo.set_action_line(T('Trying RAR-based verification'), '...')
|
||||
try:
|
||||
# Set path to unrar and open the file
|
||||
@@ -787,20 +785,20 @@ def try_rar_check(nzo, workdir, setname):
|
||||
# Skip if it's encrypted
|
||||
if zf.needs_password():
|
||||
msg = T('[%s] RAR-based verification failed: %s') % (unicoder(os.path.basename(rars[0])), T('Passworded'))
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
return True
|
||||
|
||||
# Will throw exception if something is wrong
|
||||
zf.testrar()
|
||||
# Success!
|
||||
msg = T('RAR files verified successfully')
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
logging.info(msg)
|
||||
return True
|
||||
except rarfile.Error as e:
|
||||
nzo.fail_msg = T('RAR files failed to verify')
|
||||
msg = T('[%s] RAR-based verification failed: %s') % (unicoder(os.path.basename(rars[0])), unicoder(e.message.replace('\r\n', ' ')))
|
||||
nzo.set_unpack_info('Repair', msg, set=setname)
|
||||
nzo.set_unpack_info('Repair', msg)
|
||||
logging.info(msg)
|
||||
return False
|
||||
else:
|
||||
@@ -827,14 +825,16 @@ def handle_empty_queue():
|
||||
""" Check if empty queue calls for action """
|
||||
if sabnzbd.nzbqueue.NzbQueue.do.actives() == 0:
|
||||
sabnzbd.save_state()
|
||||
logging.info("Queue has finished, launching: %s (%s)",
|
||||
sabnzbd.QUEUECOMPLETEACTION, sabnzbd.QUEUECOMPLETEARG)
|
||||
if sabnzbd.QUEUECOMPLETEARG:
|
||||
sabnzbd.QUEUECOMPLETEACTION(sabnzbd.QUEUECOMPLETEARG)
|
||||
else:
|
||||
Thread(target=sabnzbd.QUEUECOMPLETEACTION).start()
|
||||
|
||||
sabnzbd.change_queue_complete_action(cfg.queue_complete(), new=False)
|
||||
# Perform end-of-queue action when one is set
|
||||
if sabnzbd.QUEUECOMPLETEACTION:
|
||||
logging.info("Queue has finished, launching: %s (%s)",
|
||||
sabnzbd.QUEUECOMPLETEACTION, sabnzbd.QUEUECOMPLETEARG)
|
||||
if sabnzbd.QUEUECOMPLETEARG:
|
||||
sabnzbd.QUEUECOMPLETEACTION(sabnzbd.QUEUECOMPLETEARG)
|
||||
else:
|
||||
Thread(target=sabnzbd.QUEUECOMPLETEACTION).start()
|
||||
sabnzbd.change_queue_complete_action(cfg.queue_complete(), new=False)
|
||||
|
||||
|
||||
def cleanup_list(wdir, skip_nzb):
|
||||
@@ -928,7 +928,6 @@ def get_last_line(txt):
|
||||
|
||||
def remove_samples(path):
|
||||
""" Remove all files that match the sample pattern """
|
||||
RE_SAMPLE = re.compile(sample_match, re.I)
|
||||
for root, _dirs, files in os.walk(path):
|
||||
for file_ in files:
|
||||
if RE_SAMPLE.search(file_):
|
||||
|
||||
@@ -213,7 +213,7 @@ class URLGrabber(Thread):
|
||||
if not data:
|
||||
try:
|
||||
data = fn.read()
|
||||
except IncompleteRead, e:
|
||||
except (IncompleteRead, IOError):
|
||||
bad_fetch(future_nzo, url, T('Server could not complete request'))
|
||||
fn.close()
|
||||
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
|
||||
# You MUST use double quotes (so " and not ')
|
||||
|
||||
__version__ = "2.0.0"
|
||||
__baseline__ = "55c4bef5247d51fa92db1c08ce3af6ec6601fdbf"
|
||||
__version__ = "2.0.1"
|
||||
__baseline__ = "be5bebb5741eeaffed552807929248ee603e6bf1"
|
||||
|
||||
Reference in New Issue
Block a user