commit
a7cd993caa
7
cps.py
7
cps.py
|
@ -3,7 +3,6 @@
|
|||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
||||
# Insert local directories into path
|
||||
|
@ -22,9 +21,9 @@ if __name__ == '__main__':
|
|||
http_server.listen(web.ub.config.config_port)
|
||||
IOLoop.instance().start()
|
||||
|
||||
if web.global_task == 0:
|
||||
print("Performing restart of Calibre-web")
|
||||
if web.helper.global_task == 0:
|
||||
web.app.logger.info("Performing restart of Calibre-web")
|
||||
os.execl(sys.executable, sys.executable, *sys.argv)
|
||||
else:
|
||||
print("Performing shutdown of Calibre-web")
|
||||
web.app.logger.info("Performing shutdown of Calibre-web")
|
||||
sys.exit(0)
|
||||
|
|
20
cps/db.py
20
cps/db.py
|
@ -56,6 +56,10 @@ books_languages_link = Table('books_languages_link', Base.metadata,
|
|||
Column('lang_code', Integer, ForeignKey('languages.id'), primary_key=True)
|
||||
)
|
||||
|
||||
books_publishers_link = Table('books_publishers_link', Base.metadata,
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('publisher', Integer, ForeignKey('publishers.id'), primary_key=True)
|
||||
)
|
||||
|
||||
class Identifiers(Base):
|
||||
__tablename__ = 'identifiers'
|
||||
|
@ -182,6 +186,21 @@ class Languages(Base):
|
|||
def __repr__(self):
|
||||
return u"<Languages('{0}')>".format(self.lang_code)
|
||||
|
||||
class Publishers(Base):
|
||||
__tablename__ = 'publishers'
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(String)
|
||||
sort = Column(String)
|
||||
|
||||
def __init__(self, name,sort):
|
||||
self.name = name
|
||||
self.sort = sort
|
||||
|
||||
def __repr__(self):
|
||||
return u"<Publishers('{0},{1}')>".format(self.name, self.sort)
|
||||
|
||||
|
||||
|
||||
class Data(Base):
|
||||
__tablename__ = 'data'
|
||||
|
@ -224,6 +243,7 @@ class Books(Base):
|
|||
series = relationship('Series', secondary=books_series_link, backref='books')
|
||||
ratings = relationship('Ratings', secondary=books_ratings_link, backref='books')
|
||||
languages = relationship('Languages', secondary=books_languages_link, backref='books')
|
||||
publishers = relationship('Publishers', secondary=books_publishers_link, backref='books')
|
||||
identifiers = relationship('Identifiers', backref='books')
|
||||
|
||||
def __init__(self, title, sort, author_sort, timestamp, pubdate, series_index, last_modified, path, has_cover,
|
||||
|
|
110
cps/helper.py
110
cps/helper.py
|
@ -6,7 +6,7 @@ import ub
|
|||
from flask import current_app as app
|
||||
import logging
|
||||
import smtplib
|
||||
import tempfile
|
||||
from tempfile import gettempdir
|
||||
import socket
|
||||
import sys
|
||||
import os
|
||||
|
@ -21,13 +21,22 @@ from email.MIMEText import MIMEText
|
|||
from email.generator import Generator
|
||||
from flask_babel import gettext as _
|
||||
import subprocess
|
||||
import threading
|
||||
import shutil
|
||||
import requests
|
||||
import zipfile
|
||||
from tornado.ioloop import IOLoop
|
||||
|
||||
try:
|
||||
import unidecode
|
||||
use_unidecode=True
|
||||
except:
|
||||
use_unidecode=False
|
||||
|
||||
# Global variables
|
||||
global_task = None
|
||||
updater_thread = None
|
||||
|
||||
def update_download(book_id, user_id):
|
||||
check = ub.session.query(ub.Downloads).filter(ub.Downloads.user_id == user_id).filter(ub.Downloads.book_id ==
|
||||
book_id).first()
|
||||
|
@ -267,14 +276,46 @@ def update_dir_stucture(book_id, calibrepath):
|
|||
book.path = new_authordir + '/' + book.path.split('/')[1]
|
||||
db.session.commit()
|
||||
|
||||
class Updater(threading.Thread):
|
||||
|
||||
def file_to_list(file):
|
||||
def __init__(self):
|
||||
threading.Thread.__init__(self)
|
||||
self.status=0
|
||||
|
||||
def run(self):
|
||||
global global_task
|
||||
self.status=1
|
||||
r = requests.get('https://api.github.com/repos/janeczku/calibre-web/zipball/master', stream=True)
|
||||
fname = re.findall("filename=(.+)", r.headers['content-disposition'])[0]
|
||||
self.status=2
|
||||
z = zipfile.ZipFile(StringIO(r.content))
|
||||
self.status=3
|
||||
tmp_dir = gettempdir()
|
||||
z.extractall(tmp_dir)
|
||||
self.status=4
|
||||
self.update_source(os.path.join(tmp_dir,os.path.splitext(fname)[0]),ub.config.get_main_dir)
|
||||
self.status=5
|
||||
global_task = 0
|
||||
db.session.close()
|
||||
db.engine.dispose()
|
||||
ub.session.close()
|
||||
ub.engine.dispose()
|
||||
self.status=6
|
||||
# stop tornado server
|
||||
server = IOLoop.instance()
|
||||
server.add_callback(server.stop)
|
||||
self.status=7
|
||||
|
||||
def get_update_status(self):
|
||||
return self.status
|
||||
|
||||
def file_to_list(self, file):
|
||||
return [x.strip() for x in open(file, 'r') if not x.startswith('#EXT')]
|
||||
|
||||
def one_minus_two(one, two):
|
||||
def one_minus_two(self, one, two):
|
||||
return [x for x in one if x not in set(two)]
|
||||
|
||||
def reduce_dirs(delete_files, new_list):
|
||||
def reduce_dirs(self, delete_files, new_list):
|
||||
new_delete = []
|
||||
for file in delete_files:
|
||||
parts = file.split(os.sep)
|
||||
|
@ -294,57 +335,57 @@ def reduce_dirs(delete_files, new_list):
|
|||
break
|
||||
return list(set(new_delete))
|
||||
|
||||
def reduce_files(remove_items, exclude_items):
|
||||
def reduce_files(self, remove_items, exclude_items):
|
||||
rf = []
|
||||
for item in remove_items:
|
||||
if not item in exclude_items:
|
||||
if not item.startswith(exclude_items):
|
||||
rf.append(item)
|
||||
return rf
|
||||
|
||||
def moveallfiles(root_src_dir, root_dst_dir):
|
||||
def moveallfiles(self, root_src_dir, root_dst_dir):
|
||||
change_permissions = True
|
||||
if sys.platform == "win32" or sys.platform == "darwin":
|
||||
change_permissions=False
|
||||
change_permissions = False
|
||||
else:
|
||||
app.logger.debug('Update on OS-System : '+sys.platform )
|
||||
#print('OS-System: '+sys.platform )
|
||||
new_permissions=os.stat(root_dst_dir)
|
||||
#print new_permissions
|
||||
logging.getLogger('cps.web').debug('Update on OS-System : ' + sys.platform)
|
||||
new_permissions = os.stat(root_dst_dir)
|
||||
# print new_permissions
|
||||
for src_dir, dirs, files in os.walk(root_src_dir):
|
||||
dst_dir = src_dir.replace(root_src_dir, root_dst_dir, 1)
|
||||
if not os.path.exists(dst_dir):
|
||||
os.makedirs(dst_dir)
|
||||
#print('Create-Dir: '+dst_dir)
|
||||
logging.getLogger('cps.web').debug('Create-Dir: '+dst_dir)
|
||||
if change_permissions:
|
||||
#print('Permissions: User '+str(new_permissions.st_uid)+' Group '+str(new_permissions.st_uid))
|
||||
os.chown(dst_dir,new_permissions.st_uid,new_permissions.st_gid)
|
||||
# print('Permissions: User '+str(new_permissions.st_uid)+' Group '+str(new_permissions.st_uid))
|
||||
os.chown(dst_dir, new_permissions.st_uid, new_permissions.st_gid)
|
||||
for file_ in files:
|
||||
src_file = os.path.join(src_dir, file_)
|
||||
dst_file = os.path.join(dst_dir, file_)
|
||||
if os.path.exists(dst_file):
|
||||
if change_permissions:
|
||||
permission=os.stat(dst_file)
|
||||
#print('Remove file before copy: '+dst_file)
|
||||
permission = os.stat(dst_file)
|
||||
logging.getLogger('cps.web').debug('Remove file before copy: '+dst_file)
|
||||
os.remove(dst_file)
|
||||
else:
|
||||
if change_permissions:
|
||||
permission=new_permissions
|
||||
permission = new_permissions
|
||||
shutil.move(src_file, dst_dir)
|
||||
#print('Move File '+src_file+' to '+dst_dir)
|
||||
logging.getLogger('cps.web').debug('Move File '+src_file+' to '+dst_dir)
|
||||
if change_permissions:
|
||||
try:
|
||||
os.chown(dst_file, permission.st_uid, permission.st_uid)
|
||||
#print('Permissions: User '+str(new_permissions.st_uid)+' Group '+str(new_permissions.st_uid))
|
||||
# print('Permissions: User '+str(new_permissions.st_uid)+' Group '+str(new_permissions.st_uid))
|
||||
except:
|
||||
e = sys.exc_info()
|
||||
#print('Fail '+str(dst_file)+' error: '+str(e))
|
||||
logging.getLogger('cps.web').debug('Fail '+str(dst_file)+' error: '+str(e))
|
||||
return
|
||||
|
||||
|
||||
def update_source(source,destination):
|
||||
def update_source(self, source, destination):
|
||||
# destination files
|
||||
old_list=list()
|
||||
exclude = (['vendor' + os.sep + 'kindlegen.exe','vendor' + os.sep + 'kindlegen','/app.db','vendor','/update.py'])
|
||||
old_list = list()
|
||||
exclude = (
|
||||
'vendor' + os.sep + 'kindlegen.exe', 'vendor' + os.sep + 'kindlegen', os.sep + 'app.db',
|
||||
os.sep + 'vendor',os.sep + 'calibre-web.log')
|
||||
for root, dirs, files in os.walk(destination, topdown=True):
|
||||
for name in files:
|
||||
old_list.append(os.path.join(root, name).replace(destination, ''))
|
||||
|
@ -358,26 +399,25 @@ def update_source(source,destination):
|
|||
for name in dirs:
|
||||
new_list.append(os.path.join(root, name).replace(source, ''))
|
||||
|
||||
delete_files = one_minus_two(old_list, new_list)
|
||||
#print('raw delete list', delete_files)
|
||||
delete_files = self.one_minus_two(old_list, new_list)
|
||||
|
||||
rf= reduce_files(delete_files, exclude)
|
||||
#print('reduced delete list', rf)
|
||||
rf = self.reduce_files(delete_files, exclude)
|
||||
|
||||
remove_items = reduce_dirs(rf, new_list)
|
||||
#print('delete files', remove_items)
|
||||
remove_items = self.reduce_dirs(rf, new_list)
|
||||
|
||||
moveallfiles(source, destination)
|
||||
self.moveallfiles(source, destination)
|
||||
|
||||
for item in remove_items:
|
||||
item_path = os.path.join(destination, item[1:])
|
||||
if os.path.isdir(item_path):
|
||||
print("Delete dir "+ item_path)
|
||||
logging.getLogger('cps.web').debug("Delete dir " + item_path)
|
||||
shutil.rmtree(item_path)
|
||||
else:
|
||||
try:
|
||||
print("Delete file "+ item_path)
|
||||
logging.getLogger('cps.web').debug("Delete file " + item_path)
|
||||
log_from_thread("Delete file " + item_path)
|
||||
os.remove(item_path)
|
||||
except:
|
||||
print("Could not remove:"+item_path)
|
||||
logging.getLogger('cps.web').debug("Could not remove:" + item_path)
|
||||
shutil.rmtree(source, ignore_errors=True)
|
||||
|
||||
|
|
|
@ -47,3 +47,7 @@ span.glyphicon.glyphicon-tags {padding-right: 5px;color: #999;vertical-align: te
|
|||
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary{ background-color: #1C5484; }
|
||||
.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { background-color: #89B9E2; }
|
||||
.btn-toolbar>.btn+.btn, .btn-toolbar>.btn-group+.btn, .btn-toolbar>.btn+.btn-group, .btn-toolbar>.btn-group+.btn-group { margin-left:0px; }
|
||||
|
||||
.spinner {margin:0 41%;}
|
||||
.spinner2 {margin:0 41%;}
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
var displaytext;
|
||||
var updateTimerID;
|
||||
var updateText;
|
||||
|
||||
$(function() {
|
||||
$('.discover .row').isotope({
|
||||
|
@ -31,7 +34,9 @@ $(function() {
|
|||
url: window.location.pathname+"/../../shutdown",
|
||||
data: {"parameter":0},
|
||||
success: function(data) {
|
||||
return alert(data.text);}
|
||||
$('#spinner').show();
|
||||
displaytext=data.text;
|
||||
window.setTimeout(restartTimer, 3000);}
|
||||
});
|
||||
});
|
||||
$("#shutdown").click(function() {
|
||||
|
@ -50,17 +55,66 @@ $(function() {
|
|||
dataType: 'json',
|
||||
url: window.location.pathname+"/../../get_update_status",
|
||||
success: function(data) {
|
||||
$("#check_for_update").html(button_text);
|
||||
if (data.status == true) {
|
||||
$("#check_for_update").addClass('hidden');
|
||||
$("#perform_update").removeClass('hidden');
|
||||
}else{
|
||||
$("#check_for_update").html(button_text);
|
||||
};}
|
||||
$("#update_info").removeClass('hidden');
|
||||
$("#update_info").find('span').html(data.commit);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
$("#perform_update").click(function() {
|
||||
$('#spinner2').show();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: 'json',
|
||||
data: { start: "True"},
|
||||
url: window.location.pathname+"/../../get_updater_status",
|
||||
success: function(data) {
|
||||
updateText=data.text
|
||||
$("#UpdateprogressDialog #Updatecontent").html(updateText[data.status]);
|
||||
console.log(data.status);
|
||||
updateTimerID=setInterval(updateTimer, 2000);}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
function restartTimer() {
|
||||
$('#spinner').hide();
|
||||
$('#RestartDialog').modal('hide');
|
||||
}
|
||||
|
||||
function updateTimer() {
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: window.location.pathname+"/../../get_updater_status",
|
||||
success: function(data) {
|
||||
console.log(data.status);
|
||||
$("#UpdateprogressDialog #Updatecontent").html(updateText[data.status]);
|
||||
if (data.status >6){
|
||||
clearInterval(updateTimerID);
|
||||
$('#spinner2').hide();
|
||||
$('#UpdateprogressDialog #updateFinished').removeClass('hidden');
|
||||
$("#check_for_update").removeClass('hidden');
|
||||
$("#perform_update").addClass('hidden');
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
console.log('Done');
|
||||
clearInterval(updateTimerID);
|
||||
$('#spinner2').hide();
|
||||
$("#UpdateprogressDialog #Updatecontent").html(updateText[7]);
|
||||
$('#UpdateprogressDialog #updateFinished').removeClass('hidden');
|
||||
$("#check_for_update").removeClass('hidden');
|
||||
$("#perform_update").addClass('hidden');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$(window).resize(function(event) {
|
||||
$('.discover .row').isotope('reLayout');
|
||||
});
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
{% block body %}
|
||||
<div class="discover">
|
||||
<h2>{{_('User list')}}</h2>
|
||||
<div id="divLoading"></div>
|
||||
<table class="table table-striped" id="table_user">
|
||||
<tr>
|
||||
<th>{{_('Nickname')}}</th>
|
||||
|
@ -76,11 +77,13 @@
|
|||
<div class="btn btn-default"><a href="{{url_for('configuration')}}">{{_('Configuration')}}</a></div>
|
||||
<h2>{{_('Administration')}}</h2>
|
||||
{% if not development %}
|
||||
<p>{{_('Current commit timestamp')}}: {{commit}} </p>
|
||||
<div class="btn btn-default" data-toggle="modal" data-target="#RestartDialog">{{_('Restart Calibre-web')}}</a></div>
|
||||
<div class="btn btn-default" data-toggle="modal" data-target="#ShutdownDialog">{{_('Stop Calibre-web')}}</a></div>
|
||||
<div class="btn btn-default" id="check_for_update">{{_('Check for update')}}</a></div>
|
||||
<a href="{{url_for('update')}}" class="btn btn-default hidden" id="perform_update">{{_('Perform Update')}}</a>
|
||||
<div>{{_('Current commit timestamp')}}: <span>{{commit}} </span></div>
|
||||
<div class="hidden" id="update_info">{{_('Newest commit timestamp')}}: <span></span></div>
|
||||
<p></p>
|
||||
<div class="btn btn-default" data-toggle="modal" data-target="#RestartDialog">{{_('Restart Calibre-web')}}</div>
|
||||
<div class="btn btn-default" data-toggle="modal" data-target="#ShutdownDialog">{{_('Stop Calibre-web')}}</div>
|
||||
<div class="btn btn-default" id="check_for_update">{{_('Check for update')}}</div>
|
||||
<div class="btn btn-default hidden" id="perform_update" data-toggle="modal" data-target="#UpdateprogressDialog">{{_('Perform Update')}}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- Modal -->
|
||||
|
@ -88,15 +91,17 @@
|
|||
<div class="modal-dialog modal-sm">
|
||||
<!-- Modal content-->
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-info">
|
||||
</div>
|
||||
<div class="modal-header bg-info"></div>
|
||||
<div class="modal-body text-center">
|
||||
<p>{{_('Do you really want to restart Calibre-web?')}}</p>
|
||||
<button type="button" class="btn btn-default" id="restart" data-dismiss="modal">{{_('Ok')}}</button>
|
||||
<div id="spinner" class="spinner" style="display:none;">
|
||||
<img id="img-spinner" src="/static/css/images/loading-icon.gif"/>
|
||||
</div>
|
||||
<p></p>
|
||||
<button type="button" class="btn btn-default" id="restart" >{{_('Ok')}}</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{_('Back')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="ShutdownDialog" class="modal fade" role="dialog">
|
||||
|
@ -114,5 +119,23 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="UpdateprogressDialog" class="modal fade" role="dialog">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<!-- Modal content-->
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-info text-center">
|
||||
<span>{{_('Updating, please do not reload page')}}</span>
|
||||
</div>
|
||||
<div class="modal-body text-center">
|
||||
<div id="spinner2" class="spinner2" style="display:none;">
|
||||
<img id="img-spinner" src="/static/css/images/loading-icon.gif"/>
|
||||
</div>
|
||||
<p></p>
|
||||
<div id="Updatecontent"></div>
|
||||
<p></p>
|
||||
<button type="button" class="btn btn-default hidden" id="updateFinished" data-dismiss="modal">{{_('Ok')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
|
||||
{% if entry.identifiers|length > 0 %}
|
||||
<div class="identifiers">
|
||||
<p>
|
||||
<span class="glyphicon glyphicon-link"></span>
|
||||
{% for identifier in entry.identifiers %}
|
||||
<a href="{{identifier}}" target="_blank" class="btn btn-xs btn-success" role="button">{{identifier.formatType()}}</a>
|
||||
|
@ -66,10 +67,16 @@
|
|||
{% for tag in entry.tags %}
|
||||
<a href="{{ url_for('category', id=tag.id) }}" class="btn btn-xs btn-info" role="button">{{tag.name}}</a>
|
||||
{%endfor%}
|
||||
|
||||
</div>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if entry.publishers|length > 0 %}
|
||||
<div class="publishers">
|
||||
<p>
|
||||
<span>{{_('Publisher')}}:{% for publisher in entry.publishers %} {{publisher.name}}{% if not loop.last %},{% endif %}{% endfor %}</span>
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if entry.pubdate[:10] != '0101-01-01' %}
|
||||
<p>{{_('Publishing date')}}: {{entry.pubdate|formatdate}} </p>
|
||||
{% endif %}
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
<div class="navbar-collapse collapse">
|
||||
{% if g.user.is_authenticated or g.user.is_anonymous() %}
|
||||
<ul class="nav navbar-nav ">
|
||||
<li><a href="{{url_for('advanced_search')}}"><span class="glyphicon glyphicon-search"></span> {{_('Advanced Search')}}</a></li>
|
||||
<li><a href="{{url_for('advanced_search')}}"><span class="glyphicon glyphicon-search"></span><span class="hidden-sm"> {{_('Advanced Search')}}</span></a></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
<ul class="nav navbar-nav navbar-right" id="main-nav">
|
||||
|
|
|
@ -10,63 +10,67 @@
|
|||
<label for="bookAuthor">{{_('Author')}}</label>
|
||||
<input type="text" class="form-control typeahead" name="author_name" id="bookAuthor" value="" autocomplete="off">
|
||||
</div>
|
||||
<label for="Tags">{{_('Tags')}}</label>
|
||||
<div class="form-group">
|
||||
<label for="Publisher">{{_('Publisher')}}</label>
|
||||
<input type="text" class="form-control" name="publisher" id="publisher" value="">
|
||||
</div>
|
||||
<label for="include_tag">{{_('Tags')}}</label>
|
||||
<div class="form-group" id="test">
|
||||
<div class="btn-toolbar btn-toolbar-lg" data-toggle="buttons">
|
||||
{% for tag in tags %}
|
||||
<label id="tag_{{tag.id}}" class="btn btn-primary tags_click">
|
||||
<input type="checkbox" autocomplete="off" name="include_tag" value="{{tag.id}}">{{tag.name}}</input>
|
||||
<input type="checkbox" autocomplete="off" name="include_tag" id="include_tag" value="{{tag.id}}">{{tag.name}}</input>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<label for="Tags">{{_('Exclude Tags')}}</label>
|
||||
<label for="exclude_tag">{{_('Exclude Tags')}}</label>
|
||||
<div class="form-group">
|
||||
<div class="btn-toolbar btn-toolbar-lg" data-toggle="buttons">
|
||||
{% for tag in tags %}
|
||||
<label id="tag_{{tag.id}}" class="btn btn-danger tags_click">
|
||||
<input type="checkbox" autocomplete="off" name="exclude_tag" value="{{tag.id}}">{{tag.name}}</input>
|
||||
<input type="checkbox" autocomplete="off" name="exclude_tag" id="exclude_tag" value="{{tag.id}}">{{tag.name}}</input>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<label for="Series">{{_('Series')}}</label>
|
||||
<label for="include_serie">{{_('Series')}}</label>
|
||||
<div class="form-group">
|
||||
<div class="btn-toolbar btn-toolbar-lg" data-toggle="buttons">
|
||||
{% for serie in series %}
|
||||
<label id="serie_{{serie.id}}" class="btn btn-primary serie_click">
|
||||
<input type="checkbox" autocomplete="off" name="include_serie" value="{{serie.id}}">{{serie.name}}</input>
|
||||
<input type="checkbox" autocomplete="off" name="include_serie" id="include_serie" value="{{serie.id}}">{{serie.name}}</input>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<label for="Series">{{_('Exclude Series')}}</label>
|
||||
<label for="exclude_serie">{{_('Exclude Series')}}</label>
|
||||
<div class="form-group">
|
||||
<div class="btn-toolbar btn-toolbar-lg" data-toggle="buttons">
|
||||
{% for serie in series %}
|
||||
<label id="serie_{{serie.id}}" class="btn btn-danger serie_click">
|
||||
<input type="checkbox" autocomplete="off" name="exclude_serie" value="{{serie.id}}">{{serie.name}}</input>
|
||||
<input type="checkbox" autocomplete="off" name="exclude_serie" id="exclude_serie" value="{{serie.id}}">{{serie.name}}</input>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% if languages %}
|
||||
<label for="Languages">{{_('Languages')}}</label>
|
||||
<label for="include_language">{{_('Languages')}}</label>
|
||||
<div class="form-group">
|
||||
<div class="btn-toolbar btn-toolbar-lg" data-toggle="buttons">
|
||||
{% for language in languages %}
|
||||
<label id="language_{{language.id}}" class="btn btn-primary serie_click">
|
||||
<input type="checkbox" autocomplete="off" name="include_language" value="{{language.id}}">{{language.name}}</input>
|
||||
<input type="checkbox" autocomplete="off" name="include_language" id="include_language" value="{{language.id}}">{{language.name}}</input>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<label for="Languages">{{_('Exclude Languages')}}</label>
|
||||
<label for="exclude_language">{{_('Exclude Languages')}}</label>
|
||||
<div class="form-group">
|
||||
<div class="btn-toolbar btn-toolbar-lg" data-toggle="buttons">
|
||||
{% for language in languages %}
|
||||
<label id="language_{{language.id}}" class="btn btn-danger language_click">
|
||||
<input type="checkbox" autocomplete="off" name="exclude_language" value="{{language.id}}">{{language.name}}</input>
|
||||
<input type="checkbox" autocomplete="off" name="exclude_language" id="exclude_language" value="{{language.id}}">{{language.name}}</input>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
|
Binary file not shown.
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+0100\n"
|
||||
"POT-Creation-Date: 2017-02-20 19:47+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 19:54+0200\n"
|
||||
"Last-Translator: Ozzie Isaacs\n"
|
||||
"Language: de\n"
|
||||
|
@ -32,322 +32,347 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
|
||||
msgid "not installed"
|
||||
msgstr "Nicht installiert"
|
||||
|
||||
#: cps/helper.py:136
|
||||
#: cps/helper.py:150
|
||||
#, python-format
|
||||
msgid "Failed to send mail: %s"
|
||||
msgstr "E-Mail: %s konnte nicht gesendet werden"
|
||||
|
||||
#: cps/helper.py:143
|
||||
#: cps/helper.py:157
|
||||
msgid "Calibre-web test email"
|
||||
msgstr "Calibre-web Test E-Mail"
|
||||
|
||||
#: cps/helper.py:144 cps/helper.py:154
|
||||
#: cps/helper.py:158 cps/helper.py:168
|
||||
msgid "This email has been sent via calibre web."
|
||||
msgstr "Die E-Mail wurde via calibre-web versendet"
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
#: cps/helper.py:167 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "An Kindle senden"
|
||||
|
||||
#: cps/helper.py:171 cps/helper.py:186
|
||||
#: cps/helper.py:185 cps/helper.py:200
|
||||
msgid "Could not find any formats suitable for sending by email"
|
||||
msgstr ""
|
||||
"Konnte keine Formate finden welche für das versenden per E-Mail geeignet "
|
||||
"sind"
|
||||
|
||||
#: cps/helper.py:180
|
||||
#: cps/helper.py:194
|
||||
msgid "Could not convert epub to mobi"
|
||||
msgstr "Konnte .epub nicht nach .mobi konvertieren"
|
||||
|
||||
#: cps/helper.py:206
|
||||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr "Die angeforderte Datei konnte nicht gelesen werden. Falsche Dateirechte?"
|
||||
|
||||
#: cps/ub.py:443
|
||||
#: cps/ub.py:434
|
||||
msgid "Guest"
|
||||
msgstr "Gast"
|
||||
|
||||
#: cps/web.py:778
|
||||
#: cps/web.py:734
|
||||
msgid "Requesting update package"
|
||||
msgstr "Frage Update Paket an"
|
||||
|
||||
#: cps/web.py:735
|
||||
msgid "Downloading update package"
|
||||
msgstr "Lade Update Paket herunter"
|
||||
|
||||
#: cps/web.py:736
|
||||
msgid "Unzipping update package"
|
||||
msgstr "Entpacke Update Paket"
|
||||
|
||||
#: cps/web.py:737
|
||||
msgid "Files are replaced"
|
||||
msgstr "Ersetze Dateien"
|
||||
|
||||
#: cps/web.py:738
|
||||
msgid "Database connections are closed"
|
||||
msgstr "Schließe Datenbankverbindungen"
|
||||
|
||||
#: cps/web.py:739
|
||||
msgid "Server is stopped"
|
||||
msgstr "Stoppe Server"
|
||||
|
||||
#: cps/web.py:740
|
||||
msgid "Update finished, please press okay and reload page"
|
||||
msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden"
|
||||
|
||||
#: cps/web.py:810
|
||||
msgid "Latest Books"
|
||||
msgstr "Letzte Bücher"
|
||||
|
||||
#: cps/web.py:803
|
||||
#: cps/web.py:835
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "Beliebte Bücher (die meisten Downloads)"
|
||||
|
||||
#: cps/web.py:813
|
||||
#: cps/web.py:845
|
||||
msgid "Best rated books"
|
||||
msgstr "Best bewertete Bücher"
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
#: cps/templates/index.xml:36 cps/web.py:854
|
||||
msgid "Random Books"
|
||||
msgstr "Zufällige Bücher"
|
||||
|
||||
#: cps/web.py:835
|
||||
#: cps/web.py:867
|
||||
msgid "Author list"
|
||||
msgstr "Autorenliste"
|
||||
|
||||
#: cps/web.py:846
|
||||
#: cps/web.py:878
|
||||
#, python-format
|
||||
msgid "Author: %(name)s"
|
||||
msgstr "Autor: %(name)s"
|
||||
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
|
||||
#: cps/web.py:2115
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr ""
|
||||
"Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht "
|
||||
"zugänglich."
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
#: cps/templates/index.xml:57 cps/web.py:894
|
||||
msgid "Series list"
|
||||
msgstr "Liste Serien"
|
||||
|
||||
#: cps/web.py:874
|
||||
#: cps/web.py:906
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Serie: %(serie)s"
|
||||
|
||||
#: cps/web.py:907
|
||||
#: cps/web.py:939
|
||||
msgid "Available languages"
|
||||
msgstr "Verfügbare Sprachen"
|
||||
|
||||
#: cps/web.py:922
|
||||
#: cps/web.py:954
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "Sprache: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
#: cps/templates/index.xml:50 cps/web.py:967
|
||||
msgid "Category list"
|
||||
msgstr "Kategorieliste"
|
||||
|
||||
#: cps/web.py:947
|
||||
#: cps/web.py:979
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "Kategorie: %(name)s"
|
||||
|
||||
#: cps/web.py:1008
|
||||
#: cps/web.py:1040
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiken"
|
||||
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr "Führe Neustart durch, bitte Seite neu laden"
|
||||
#: cps/web.py:1061
|
||||
msgid "Server restarted, please reload page"
|
||||
msgstr "Server neu gestartet,bitte Seite neu laden"
|
||||
|
||||
#: cps/web.py:1031
|
||||
#: cps/web.py:1063
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr "Server wird runtergefahren, bitte Fenster schließen"
|
||||
|
||||
#: cps/web.py:1055
|
||||
#: cps/web.py:1073
|
||||
msgid "Update done"
|
||||
msgstr "Update durchgeführt"
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
#: cps/web.py:1147 cps/web.py:1160
|
||||
msgid "search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
|
||||
msgid "Read a Book"
|
||||
msgstr "Lese ein Buch"
|
||||
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
#: cps/web.py:1276 cps/web.py:1713
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "Bitte alle Felder ausfüllen!"
|
||||
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
|
||||
msgid "register"
|
||||
msgstr "Registieren"
|
||||
|
||||
#: cps/web.py:1280
|
||||
#: cps/web.py:1292
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen."
|
||||
|
||||
#: cps/web.py:1285
|
||||
#: cps/web.py:1297
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr "Der Benutzername oder die E-Mailadresse ist in bereits in Benutzung."
|
||||
|
||||
#: cps/web.py:1303
|
||||
#: cps/web.py:1315
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "Du bist nun eingeloggt als '%(nickname)s'"
|
||||
|
||||
#: cps/web.py:1308
|
||||
#: cps/web.py:1320
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "Falscher Benutzername oder Passwort"
|
||||
|
||||
#: cps/web.py:1310
|
||||
#: cps/web.py:1322
|
||||
msgid "login"
|
||||
msgstr "Login"
|
||||
|
||||
#: cps/web.py:1327
|
||||
#: cps/web.py:1339
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "Bitte zuerst die SMTP Mail Einstellung konfigurieren ..."
|
||||
|
||||
#: cps/web.py:1331
|
||||
#: cps/web.py:1343
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "Buch erfolgreich versandt an %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1335
|
||||
#: cps/web.py:1347
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr "Beim Senden des Buchs trat ein Fehler auf: %(res)s"
|
||||
|
||||
#: cps/web.py:1337
|
||||
#: cps/web.py:1349
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "Bitte die Kindle E-Mail Adresse zuuerst konfigurieren..."
|
||||
|
||||
#: cps/web.py:1357
|
||||
#: cps/web.py:1369
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr "Das Buch wurde dem Bücherregal: %(sname)s hinzugefügt"
|
||||
|
||||
#: cps/web.py:1378
|
||||
#: cps/web.py:1390
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr "Das Buch wurde aus dem Bücherregal: %(sname)s entfernt"
|
||||
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#: cps/web.py:1409 cps/web.py:1433
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr "Es existiert bereits ein Bücheregal mit dem Titel '%(title)s'"
|
||||
|
||||
#: cps/web.py:1402
|
||||
#: cps/web.py:1414
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "Bücherregal %(title)s erzeugt"
|
||||
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
#: cps/web.py:1416 cps/web.py:1444
|
||||
msgid "There was an error"
|
||||
msgstr "Es trat ein Fehler auf"
|
||||
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
#: cps/web.py:1417 cps/web.py:1419
|
||||
msgid "create a shelf"
|
||||
msgstr "Bücherregal erzeugen"
|
||||
|
||||
#: cps/web.py:1430
|
||||
#: cps/web.py:1442
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr "Bücherregal %(title)s verändert"
|
||||
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
#: cps/web.py:1445 cps/web.py:1447
|
||||
msgid "Edit a shelf"
|
||||
msgstr "Bücherregal editieren"
|
||||
|
||||
#: cps/web.py:1453
|
||||
#: cps/web.py:1465
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "Bücherregal %(name)s erfolgreich gelöscht"
|
||||
|
||||
#: cps/web.py:1475
|
||||
#: cps/web.py:1487
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "Bücherregal: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1506
|
||||
#: cps/web.py:1518
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr "Reihenfolge in Bücherregal '%(name)s' verändern"
|
||||
|
||||
#: cps/web.py:1568
|
||||
#: cps/web.py:1580
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "Es existiert ein Benutzerkonto für diese E-Mailadresse"
|
||||
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#: cps/web.py:1582 cps/web.py:1586
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "%(name)s's Profil"
|
||||
|
||||
#: cps/web.py:1571
|
||||
#: cps/web.py:1583
|
||||
msgid "Profile updated"
|
||||
msgstr "Profil aktualisiert"
|
||||
|
||||
#: cps/web.py:1584
|
||||
#: cps/web.py:1597
|
||||
msgid "Admin page"
|
||||
msgstr "Admin Seite"
|
||||
|
||||
#: cps/web.py:1656
|
||||
#: cps/web.py:1668
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr "Calibre-web Konfiguration wurde aktualisiert"
|
||||
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
|
||||
msgid "Basic Configuration"
|
||||
msgstr "Basis Konfiguration"
|
||||
|
||||
#: cps/web.py:1667
|
||||
#: cps/web.py:1679
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr "DB Speicherort ist ungültig, bitte Pfad korrigieren"
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
|
||||
msgid "Add new user"
|
||||
msgstr "Neuen Benutzer hinzufügen"
|
||||
|
||||
#: cps/web.py:1741
|
||||
#: cps/web.py:1753
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "Benutzer '%(user)s' angelegt"
|
||||
|
||||
#: cps/web.py:1745
|
||||
#: cps/web.py:1757
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr ""
|
||||
"Es existiert ein Benutzerkonto für diese Emailadresse oder den "
|
||||
"Benutzernamen."
|
||||
|
||||
#: cps/web.py:1767
|
||||
#: cps/web.py:1779
|
||||
msgid "Mail settings updated"
|
||||
msgstr "E-Mail Einstellungen aktualisiert"
|
||||
|
||||
#: cps/web.py:1773
|
||||
#: cps/web.py:1785
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr "Test E-Mail erfolgreich an %(kindlemail)s versendet"
|
||||
|
||||
#: cps/web.py:1776
|
||||
#: cps/web.py:1788
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr "Fehler beim versenden der Test E-Mail: %(res)s"
|
||||
|
||||
#: cps/web.py:1777
|
||||
#: cps/web.py:1789
|
||||
msgid "Edit mail settings"
|
||||
msgstr "E-Mail Einstellungen editieren"
|
||||
|
||||
#: cps/web.py:1805
|
||||
#: cps/web.py:1817
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "Benutzer '%(nick)s' gelöscht"
|
||||
|
||||
#: cps/web.py:1886
|
||||
#: cps/web.py:1898
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "Benutzer '%(nick)s' aktualisiert"
|
||||
|
||||
#: cps/web.py:1889
|
||||
#: cps/web.py:1901
|
||||
msgid "An unknown error occured."
|
||||
msgstr "Es ist ein unbekanter Fehler aufgetreten"
|
||||
|
||||
#: cps/web.py:1892
|
||||
#: cps/web.py:1904
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "Benutzer %(nick)s bearbeiten"
|
||||
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
|
||||
msgid "edit metadata"
|
||||
msgstr "Metadaten editieren"
|
||||
|
||||
#: cps/web.py:2133
|
||||
#: cps/web.py:2145
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "Fehler beim Erzeugen des Pfads %s (Zugriff verweigert)"
|
||||
|
||||
#: cps/web.py:2138
|
||||
#: cps/web.py:2150
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "Fehler beim speichern der Datei %s (Zugriff verweigert)"
|
||||
|
||||
#: cps/web.py:2143
|
||||
#: cps/web.py:2155
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "Fehler beim Löschen von Datei %s (Zugriff verweigert)"
|
||||
|
@ -356,145 +381,158 @@ msgstr "Fehler beim Löschen von Datei %s (Zugriff verweigert)"
|
|||
msgid "User list"
|
||||
msgstr "Benutzerliste"
|
||||
|
||||
#: cps/templates/admin.html:7
|
||||
#: cps/templates/admin.html:8
|
||||
msgid "Nickname"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: cps/templates/admin.html:8
|
||||
#: cps/templates/admin.html:9
|
||||
msgid "Email"
|
||||
msgstr "E-Mail"
|
||||
|
||||
#: cps/templates/admin.html:9
|
||||
#: cps/templates/admin.html:10
|
||||
msgid "Kindle"
|
||||
msgstr "Kindle"
|
||||
|
||||
#: cps/templates/admin.html:10
|
||||
#: cps/templates/admin.html:11
|
||||
msgid "DLS"
|
||||
msgstr "DLS"
|
||||
|
||||
#: cps/templates/admin.html:11 cps/templates/layout.html:83
|
||||
#: cps/templates/admin.html:12 cps/templates/layout.html:85
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
#: cps/templates/admin.html:13 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: cps/templates/admin.html:13 cps/templates/layout.html:76
|
||||
#: cps/templates/admin.html:14 cps/templates/layout.html:78
|
||||
msgid "Upload"
|
||||
msgstr "Hochladen"
|
||||
|
||||
#: cps/templates/admin.html:14
|
||||
#: cps/templates/admin.html:15
|
||||
msgid "Edit"
|
||||
msgstr "Editieren"
|
||||
|
||||
#: cps/templates/admin.html:15
|
||||
#: cps/templates/admin.html:16
|
||||
msgid "Passwd"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: cps/templates/admin.html:34
|
||||
#: cps/templates/admin.html:35
|
||||
msgid "SMTP mail settings"
|
||||
msgstr "SMTP Mail Einstellungen"
|
||||
|
||||
#: cps/templates/admin.html:37 cps/templates/email_edit.html:7
|
||||
#: cps/templates/admin.html:38 cps/templates/email_edit.html:7
|
||||
msgid "SMTP hostname"
|
||||
msgstr "SMTP Hostname"
|
||||
|
||||
#: cps/templates/admin.html:38
|
||||
#: cps/templates/admin.html:39
|
||||
msgid "SMTP port"
|
||||
msgstr "SMTP Port"
|
||||
|
||||
#: cps/templates/admin.html:39
|
||||
#: cps/templates/admin.html:40
|
||||
msgid "SSL"
|
||||
msgstr "SSL"
|
||||
|
||||
#: cps/templates/admin.html:40 cps/templates/email_edit.html:23
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:23
|
||||
msgid "SMTP login"
|
||||
msgstr "SMTP Login"
|
||||
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:27
|
||||
#: cps/templates/admin.html:42 cps/templates/email_edit.html:27
|
||||
msgid "SMTP password"
|
||||
msgstr "SMTP Passwort"
|
||||
|
||||
#: cps/templates/admin.html:42
|
||||
#: cps/templates/admin.html:43
|
||||
msgid "From mail"
|
||||
msgstr "Absenderadresse"
|
||||
|
||||
#: cps/templates/admin.html:54
|
||||
#: cps/templates/admin.html:55
|
||||
msgid "Change SMTP settings"
|
||||
msgstr "SMTP Einstellungen ändern"
|
||||
|
||||
#: cps/templates/admin.html:56 cps/templates/admin.html:76
|
||||
#: cps/templates/admin.html:57 cps/templates/admin.html:77
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguration"
|
||||
|
||||
#: cps/templates/admin.html:59
|
||||
#: cps/templates/admin.html:60
|
||||
msgid "Calibre DB dir"
|
||||
msgstr "Calibre DB Pfad"
|
||||
|
||||
#: cps/templates/admin.html:60 cps/templates/config_edit.html:32
|
||||
#: cps/templates/admin.html:61 cps/templates/config_edit.html:32
|
||||
msgid "Log Level"
|
||||
msgstr "Log Level"
|
||||
|
||||
#: cps/templates/admin.html:61
|
||||
#: cps/templates/admin.html:62
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: cps/templates/admin.html:62 cps/templates/config_edit.html:19
|
||||
#: cps/templates/admin.html:63 cps/templates/config_edit.html:19
|
||||
msgid "Books per page"
|
||||
msgstr "Bücher pro Seite"
|
||||
|
||||
#: cps/templates/admin.html:63
|
||||
#: cps/templates/admin.html:64
|
||||
msgid "Uploading"
|
||||
msgstr "Hochladen"
|
||||
|
||||
#: cps/templates/admin.html:64
|
||||
#: cps/templates/admin.html:65
|
||||
msgid "Public registration"
|
||||
msgstr "Öffentliche Registrierung"
|
||||
|
||||
#: cps/templates/admin.html:65
|
||||
#: cps/templates/admin.html:66
|
||||
msgid "Anonymous browsing"
|
||||
msgstr "Anonymer Zugriff"
|
||||
|
||||
#: cps/templates/admin.html:77
|
||||
#: cps/templates/admin.html:78
|
||||
msgid "Administration"
|
||||
msgstr "Administration"
|
||||
|
||||
#: cps/templates/admin.html:79
|
||||
#: cps/templates/admin.html:80
|
||||
msgid "Current commit timestamp"
|
||||
msgstr "Aktuelles Commit Datum"
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Newest commit timestamp"
|
||||
msgstr "Neuestes Commit Datum"
|
||||
|
||||
#: cps/templates/admin.html:83
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr "Calibre-web Neustarten"
|
||||
|
||||
#: cps/templates/admin.html:80
|
||||
#: cps/templates/admin.html:84
|
||||
msgid "Stop Calibre-web"
|
||||
msgstr "Stoppe Calibre-web"
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
#: cps/templates/admin.html:85
|
||||
msgid "Check for update"
|
||||
msgstr "Suche nach Update"
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
#: cps/templates/admin.html:86
|
||||
msgid "Perform Update"
|
||||
msgstr "Update durchführen"
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
#: cps/templates/admin.html:96
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr "Calibre-web wirklich neustarten?"
|
||||
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
#: cps/templates/admin.html:101 cps/templates/admin.html:115
|
||||
#: cps/templates/admin.html:136
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: cps/templates/admin.html:102 cps/templates/admin.html:116
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
|
||||
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: cps/templates/admin.html:108
|
||||
#: cps/templates/admin.html:114
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr "Calibre-web wirklich stoppen"
|
||||
|
||||
#: cps/templates/admin.html:127
|
||||
msgid "Updating, please do not reload page"
|
||||
msgstr "Updatevorgang, bitte Seite nicht neu laden"
|
||||
|
||||
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
|
||||
msgid "Book Title"
|
||||
msgstr "Buchtitel"
|
||||
|
@ -511,7 +549,7 @@ msgstr "Beschreibung"
|
|||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "Serien"
|
||||
|
@ -606,7 +644,7 @@ msgstr "Bearbeiten erlauben"
|
|||
msgid "Allow Changing Password"
|
||||
msgstr "Passwort ändern erlauben"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:93
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "Login"
|
||||
|
@ -689,11 +727,11 @@ msgstr "Entdecke (Zufälliges Buch)"
|
|||
msgid "Start"
|
||||
msgstr "Start"
|
||||
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:61
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:58
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:124
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:126
|
||||
msgid "Hot Books"
|
||||
msgstr "Beliebte Bücher"
|
||||
|
||||
|
@ -701,7 +739,7 @@ msgstr "Beliebte Bücher"
|
|||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr "Beliebte Publikationen aus dieser Bibliothek basierend auf Downloadzahlen"
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:129
|
||||
msgid "Best rated Books"
|
||||
msgstr "Best bewertete Bücher"
|
||||
|
||||
|
@ -709,7 +747,7 @@ msgstr "Best bewertete Bücher"
|
|||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "Beliebte Veröffentlichungen dieses Katalogs basierend auf Bewertungen"
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:124
|
||||
msgid "New Books"
|
||||
msgstr "Neue Bücher"
|
||||
|
||||
|
@ -721,7 +759,7 @@ msgstr "Die neuesten Bücher"
|
|||
msgid "Show Random Books"
|
||||
msgstr "Zeige zufällige Bücher"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:140
|
||||
msgid "Authors"
|
||||
msgstr "Autoren"
|
||||
|
||||
|
@ -741,51 +779,51 @@ msgstr "Bücher nach Reihen geordnet"
|
|||
msgid "Toggle navigation"
|
||||
msgstr "Nagivation umschalten"
|
||||
|
||||
#: cps/templates/layout.html:63
|
||||
#: cps/templates/layout.html:60
|
||||
msgid "Go!"
|
||||
msgstr "Los!"
|
||||
|
||||
#: cps/templates/layout.html:66
|
||||
#: cps/templates/layout.html:68
|
||||
msgid "Advanced Search"
|
||||
msgstr "Erweiterte Suche"
|
||||
|
||||
#: cps/templates/layout.html:87
|
||||
#: cps/templates/layout.html:89
|
||||
msgid "Logout"
|
||||
msgstr "Logout"
|
||||
|
||||
#: cps/templates/layout.html:92 cps/templates/register.html:18
|
||||
#: cps/templates/layout.html:94 cps/templates/register.html:18
|
||||
msgid "Register"
|
||||
msgstr "Registrieren"
|
||||
|
||||
#: cps/templates/layout.html:121
|
||||
#: cps/templates/layout.html:123
|
||||
msgid "Browse"
|
||||
msgstr "Browsen"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:132
|
||||
msgid "Discover"
|
||||
msgstr "Entdecke"
|
||||
|
||||
#: cps/templates/layout.html:133
|
||||
#: cps/templates/layout.html:135
|
||||
msgid "Categories"
|
||||
msgstr "Kategorien"
|
||||
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:142 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "Sprachen"
|
||||
|
||||
#: cps/templates/layout.html:143
|
||||
#: cps/templates/layout.html:145
|
||||
msgid "Public Shelves"
|
||||
msgstr "Öffentiche Bücherregale"
|
||||
|
||||
#: cps/templates/layout.html:147
|
||||
#: cps/templates/layout.html:149
|
||||
msgid "Your Shelves"
|
||||
msgstr "Deine Bücherregale"
|
||||
|
||||
#: cps/templates/layout.html:152
|
||||
#: cps/templates/layout.html:154
|
||||
msgid "Create a Shelf"
|
||||
msgstr "Bücherregal erzeugen"
|
||||
|
||||
#: cps/templates/layout.html:153
|
||||
#: cps/templates/layout.html:155
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
|
|
Binary file not shown.
|
@ -14,7 +14,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+0100\n"
|
||||
"POT-Creation-Date: 2017-02-20 19:47+0100\n"
|
||||
"PO-Revision-Date: 2016-11-13 18:35+0100\n"
|
||||
"Last-Translator: Juan F. Villa <juan.villa@paisdelconocimiento.org>\n"
|
||||
"Language: es\n"
|
||||
|
@ -25,316 +25,341 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
|
||||
msgid "not installed"
|
||||
msgstr "No instalado"
|
||||
|
||||
#: cps/helper.py:136
|
||||
#: cps/helper.py:150
|
||||
#, python-format
|
||||
msgid "Failed to send mail: %s"
|
||||
msgstr "Fallo al enviar el correo : %s"
|
||||
|
||||
#: cps/helper.py:143
|
||||
#: cps/helper.py:157
|
||||
msgid "Calibre-web test email"
|
||||
msgstr "Prueba de Correo Calibre-web"
|
||||
|
||||
#: cps/helper.py:144 cps/helper.py:154
|
||||
#: cps/helper.py:158 cps/helper.py:168
|
||||
msgid "This email has been sent via calibre web."
|
||||
msgstr "Este mensaje ha sido enviado via Calibre Web."
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
#: cps/helper.py:167 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "Enviar a Kindle"
|
||||
|
||||
#: cps/helper.py:171 cps/helper.py:186
|
||||
#: cps/helper.py:185 cps/helper.py:200
|
||||
msgid "Could not find any formats suitable for sending by email"
|
||||
msgstr "Formato no compatible para enviar por correo electronico"
|
||||
|
||||
#: cps/helper.py:180
|
||||
#: cps/helper.py:194
|
||||
msgid "Could not convert epub to mobi"
|
||||
msgstr "No fue posible convertir de epub a mobi"
|
||||
|
||||
#: cps/helper.py:206
|
||||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr "El fichero solicitado no puede ser leido. Problema de permisos?"
|
||||
|
||||
#: cps/ub.py:443
|
||||
#: cps/ub.py:434
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:778
|
||||
#: cps/web.py:734
|
||||
msgid "Requesting update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:735
|
||||
msgid "Downloading update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:736
|
||||
msgid "Unzipping update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:737
|
||||
msgid "Files are replaced"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:738
|
||||
msgid "Database connections are closed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:739
|
||||
msgid "Server is stopped"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:740
|
||||
msgid "Update finished, please press okay and reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:810
|
||||
msgid "Latest Books"
|
||||
msgstr "Libros recientes"
|
||||
|
||||
#: cps/web.py:803
|
||||
#: cps/web.py:835
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "Libros Populares (los mas descargados)"
|
||||
|
||||
#: cps/web.py:813
|
||||
#: cps/web.py:845
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
#: cps/templates/index.xml:36 cps/web.py:854
|
||||
msgid "Random Books"
|
||||
msgstr "Libros al Azar"
|
||||
|
||||
#: cps/web.py:835
|
||||
#: cps/web.py:867
|
||||
msgid "Author list"
|
||||
msgstr "Lista de Autores"
|
||||
|
||||
#: cps/web.py:846
|
||||
#: cps/web.py:878
|
||||
#, python-format
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
|
||||
#: cps/web.py:2115
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr "Error en apertura del Objeto. El archivo no existe o no es accesible"
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
#: cps/templates/index.xml:57 cps/web.py:894
|
||||
msgid "Series list"
|
||||
msgstr "lista de Series"
|
||||
|
||||
#: cps/web.py:874
|
||||
#: cps/web.py:906
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Series : %(serie)s"
|
||||
|
||||
#: cps/web.py:907
|
||||
#: cps/web.py:939
|
||||
msgid "Available languages"
|
||||
msgstr "Lenguajes disponibles"
|
||||
|
||||
#: cps/web.py:922
|
||||
#: cps/web.py:954
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "Lenguaje: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
#: cps/templates/index.xml:50 cps/web.py:967
|
||||
msgid "Category list"
|
||||
msgstr "Lista de Categorias"
|
||||
|
||||
#: cps/web.py:947
|
||||
#: cps/web.py:979
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "Categoria : %(name)s"
|
||||
|
||||
#: cps/web.py:1008
|
||||
#: cps/web.py:1040
|
||||
msgid "Statistics"
|
||||
msgstr "Estadisticas"
|
||||
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
#: cps/web.py:1061
|
||||
msgid "Server restarted, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1031
|
||||
#: cps/web.py:1063
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1055
|
||||
#: cps/web.py:1073
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
#: cps/web.py:1147 cps/web.py:1160
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
|
||||
msgid "Read a Book"
|
||||
msgstr "Leer un Libro"
|
||||
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
#: cps/web.py:1276 cps/web.py:1713
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "Por favor llenar todos los campos!"
|
||||
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
|
||||
msgid "register"
|
||||
msgstr "Registrarse"
|
||||
|
||||
#: cps/web.py:1280
|
||||
#: cps/web.py:1292
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "Ocurrio un error. Intentar de nuevo mas tarde."
|
||||
|
||||
#: cps/web.py:1285
|
||||
#: cps/web.py:1297
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr "Usuario o direccion de correo en uso."
|
||||
|
||||
#: cps/web.py:1303
|
||||
#: cps/web.py:1315
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "Sesion iniciada como : '%(nickname)s'"
|
||||
|
||||
#: cps/web.py:1308
|
||||
#: cps/web.py:1320
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "Usuario o contraseña invalido"
|
||||
|
||||
#: cps/web.py:1310
|
||||
#: cps/web.py:1322
|
||||
msgid "login"
|
||||
msgstr "Iniciar Sesion"
|
||||
|
||||
#: cps/web.py:1327
|
||||
#: cps/web.py:1339
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "Configurar primero los parametros SMTP por favor..."
|
||||
|
||||
#: cps/web.py:1331
|
||||
#: cps/web.py:1343
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "Envio de Libro a %(kindlemail)s correctamente"
|
||||
|
||||
#: cps/web.py:1335
|
||||
#: cps/web.py:1347
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr "Ha sucedido un error en el envio del Libro: %(res)s"
|
||||
|
||||
#: cps/web.py:1337
|
||||
#: cps/web.py:1349
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "Configurar primero la dirección de correo Kindle por favor..."
|
||||
|
||||
#: cps/web.py:1357
|
||||
#: cps/web.py:1369
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr "El libro fue agregado a el estante: %(sname)s"
|
||||
|
||||
#: cps/web.py:1378
|
||||
#: cps/web.py:1390
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr "El libro fue removido del estante: %(sname)s"
|
||||
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#: cps/web.py:1409 cps/web.py:1433
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr "Une étagère de ce nom '%(title)s' existe déjà."
|
||||
|
||||
#: cps/web.py:1402
|
||||
#: cps/web.py:1414
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "Estante %(title)s creado"
|
||||
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
#: cps/web.py:1416 cps/web.py:1444
|
||||
msgid "There was an error"
|
||||
msgstr "Hemos tenido un error"
|
||||
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
#: cps/web.py:1417 cps/web.py:1419
|
||||
msgid "create a shelf"
|
||||
msgstr "Crear un Estante"
|
||||
|
||||
#: cps/web.py:1430
|
||||
#: cps/web.py:1442
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
#: cps/web.py:1445 cps/web.py:1447
|
||||
msgid "Edit a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1453
|
||||
#: cps/web.py:1465
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "Estante %(name)s fue borrado correctamente"
|
||||
|
||||
#: cps/web.py:1475
|
||||
#: cps/web.py:1487
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "Estante: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1506
|
||||
#: cps/web.py:1518
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1568
|
||||
#: cps/web.py:1580
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "Existe una cuenta vinculada a esta cuenta de correo."
|
||||
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#: cps/web.py:1582 cps/web.py:1586
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "Perfil de %(name)s"
|
||||
|
||||
#: cps/web.py:1571
|
||||
#: cps/web.py:1583
|
||||
msgid "Profile updated"
|
||||
msgstr "Perfil actualizado"
|
||||
|
||||
#: cps/web.py:1584
|
||||
#: cps/web.py:1597
|
||||
msgid "Admin page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1656
|
||||
#: cps/web.py:1668
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
|
||||
msgid "Basic Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1667
|
||||
#: cps/web.py:1679
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
|
||||
msgid "Add new user"
|
||||
msgstr "Agregar un nuevo usuario"
|
||||
|
||||
#: cps/web.py:1741
|
||||
#: cps/web.py:1753
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "Usuario '%(user)s' creado"
|
||||
|
||||
#: cps/web.py:1745
|
||||
#: cps/web.py:1757
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr "Se ha encontrado una cuenta vinculada a esta cuenta de correo o usuario."
|
||||
|
||||
#: cps/web.py:1767
|
||||
#: cps/web.py:1779
|
||||
msgid "Mail settings updated"
|
||||
msgstr "Parametros de correo actualizados"
|
||||
|
||||
#: cps/web.py:1773
|
||||
#: cps/web.py:1785
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr "Exito al realizar envio de prueba a %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1776
|
||||
#: cps/web.py:1788
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr "Error al realizar envio de prueba a E-Mail: %(res)s"
|
||||
|
||||
#: cps/web.py:1777
|
||||
#: cps/web.py:1789
|
||||
msgid "Edit mail settings"
|
||||
msgstr "Editar parametros de correo"
|
||||
|
||||
#: cps/web.py:1805
|
||||
#: cps/web.py:1817
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "Usuario '%(nick)s' borrado"
|
||||
|
||||
#: cps/web.py:1886
|
||||
#: cps/web.py:1898
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "Usuario '%(nick)s' Actualizado"
|
||||
|
||||
#: cps/web.py:1889
|
||||
#: cps/web.py:1901
|
||||
msgid "An unknown error occured."
|
||||
msgstr "Oups ! Error inesperado."
|
||||
|
||||
#: cps/web.py:1892
|
||||
#: cps/web.py:1904
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "Editar Usuario %(nick)s"
|
||||
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
|
||||
msgid "edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2133
|
||||
#: cps/web.py:2145
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "Fallo al crear la ruta %s (permiso negado)"
|
||||
|
||||
#: cps/web.py:2138
|
||||
#: cps/web.py:2150
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "Fallo al almacenar el archivo %s (permiso negado)"
|
||||
|
||||
#: cps/web.py:2143
|
||||
#: cps/web.py:2155
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "Fallo al borrar el archivo %s (permiso negado)"
|
||||
|
@ -343,145 +368,158 @@ msgstr "Fallo al borrar el archivo %s (permiso negado)"
|
|||
msgid "User list"
|
||||
msgstr "lista de usuarios"
|
||||
|
||||
#: cps/templates/admin.html:7
|
||||
#: cps/templates/admin.html:8
|
||||
msgid "Nickname"
|
||||
msgstr "Nickname"
|
||||
|
||||
#: cps/templates/admin.html:8
|
||||
#: cps/templates/admin.html:9
|
||||
msgid "Email"
|
||||
msgstr "Correo"
|
||||
|
||||
#: cps/templates/admin.html:9
|
||||
#: cps/templates/admin.html:10
|
||||
msgid "Kindle"
|
||||
msgstr "Kindle"
|
||||
|
||||
#: cps/templates/admin.html:10
|
||||
#: cps/templates/admin.html:11
|
||||
msgid "DLS"
|
||||
msgstr "DLS"
|
||||
|
||||
#: cps/templates/admin.html:11 cps/templates/layout.html:83
|
||||
#: cps/templates/admin.html:12 cps/templates/layout.html:85
|
||||
msgid "Admin"
|
||||
msgstr "Administracion"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
#: cps/templates/admin.html:13 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "Descarga"
|
||||
|
||||
#: cps/templates/admin.html:13 cps/templates/layout.html:76
|
||||
#: cps/templates/admin.html:14 cps/templates/layout.html:78
|
||||
msgid "Upload"
|
||||
msgstr "Subir archivo"
|
||||
|
||||
#: cps/templates/admin.html:14
|
||||
#: cps/templates/admin.html:15
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
|
||||
#: cps/templates/admin.html:15
|
||||
#: cps/templates/admin.html:16
|
||||
msgid "Passwd"
|
||||
msgstr "Clave"
|
||||
|
||||
#: cps/templates/admin.html:34
|
||||
#: cps/templates/admin.html:35
|
||||
msgid "SMTP mail settings"
|
||||
msgstr "Parametros smtp del correo"
|
||||
|
||||
#: cps/templates/admin.html:37 cps/templates/email_edit.html:7
|
||||
#: cps/templates/admin.html:38 cps/templates/email_edit.html:7
|
||||
msgid "SMTP hostname"
|
||||
msgstr "Servidor smtp"
|
||||
|
||||
#: cps/templates/admin.html:38
|
||||
#: cps/templates/admin.html:39
|
||||
msgid "SMTP port"
|
||||
msgstr "Puerto smtp"
|
||||
|
||||
#: cps/templates/admin.html:39
|
||||
#: cps/templates/admin.html:40
|
||||
msgid "SSL"
|
||||
msgstr "SSL"
|
||||
|
||||
#: cps/templates/admin.html:40 cps/templates/email_edit.html:23
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:23
|
||||
msgid "SMTP login"
|
||||
msgstr "Login SMTP"
|
||||
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:27
|
||||
#: cps/templates/admin.html:42 cps/templates/email_edit.html:27
|
||||
msgid "SMTP password"
|
||||
msgstr "Clave SMTP"
|
||||
|
||||
#: cps/templates/admin.html:42
|
||||
#: cps/templates/admin.html:43
|
||||
msgid "From mail"
|
||||
msgstr "Desde el correo"
|
||||
|
||||
#: cps/templates/admin.html:54
|
||||
#: cps/templates/admin.html:55
|
||||
msgid "Change SMTP settings"
|
||||
msgstr "Cambiar parametros smtp"
|
||||
|
||||
#: cps/templates/admin.html:56 cps/templates/admin.html:76
|
||||
#: cps/templates/admin.html:57 cps/templates/admin.html:77
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:59
|
||||
#: cps/templates/admin.html:60
|
||||
msgid "Calibre DB dir"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:60 cps/templates/config_edit.html:32
|
||||
#: cps/templates/admin.html:61 cps/templates/config_edit.html:32
|
||||
msgid "Log Level"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:61
|
||||
#: cps/templates/admin.html:62
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:62 cps/templates/config_edit.html:19
|
||||
#: cps/templates/admin.html:63 cps/templates/config_edit.html:19
|
||||
msgid "Books per page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:63
|
||||
#: cps/templates/admin.html:64
|
||||
msgid "Uploading"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:64
|
||||
#: cps/templates/admin.html:65
|
||||
msgid "Public registration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:65
|
||||
#: cps/templates/admin.html:66
|
||||
msgid "Anonymous browsing"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:77
|
||||
#: cps/templates/admin.html:78
|
||||
msgid "Administration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:79
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:80
|
||||
msgid "Stop Calibre-web"
|
||||
msgid "Current commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Newest commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:83
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:84
|
||||
msgid "Stop Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:85
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
#: cps/templates/admin.html:86
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
#: cps/templates/admin.html:96
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
#: cps/templates/admin.html:101 cps/templates/admin.html:115
|
||||
#: cps/templates/admin.html:136
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: cps/templates/admin.html:102 cps/templates/admin.html:116
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
|
||||
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "Regresar"
|
||||
|
||||
#: cps/templates/admin.html:108
|
||||
#: cps/templates/admin.html:114
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:127
|
||||
msgid "Updating, please do not reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
|
||||
msgid "Book Title"
|
||||
msgstr "Titulo del Libro"
|
||||
|
@ -498,7 +536,7 @@ msgstr "Descripcion"
|
|||
msgid "Tags"
|
||||
msgstr "Etiqueta"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "Series"
|
||||
|
@ -593,7 +631,7 @@ msgstr "Permitir editar"
|
|||
msgid "Allow Changing Password"
|
||||
msgstr "Permitir cambiar la clave"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:93
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "Inicio de Sesion"
|
||||
|
@ -674,11 +712,11 @@ msgstr "Descubrir (Libros al azar)"
|
|||
msgid "Start"
|
||||
msgstr "Iniciar"
|
||||
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:61
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:58
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:124
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:126
|
||||
msgid "Hot Books"
|
||||
msgstr "Libros Populares"
|
||||
|
||||
|
@ -686,7 +724,7 @@ msgstr "Libros Populares"
|
|||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:129
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -694,7 +732,7 @@ msgstr ""
|
|||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "Publicaciones populares del catalogo basados en el puntaje."
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:124
|
||||
msgid "New Books"
|
||||
msgstr "Nuevos Libros"
|
||||
|
||||
|
@ -706,7 +744,7 @@ msgstr "Libros Recientes"
|
|||
msgid "Show Random Books"
|
||||
msgstr "Mostrar libros al azar"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:140
|
||||
msgid "Authors"
|
||||
msgstr "Autores"
|
||||
|
||||
|
@ -726,51 +764,51 @@ msgstr "Libros ordenados por Series"
|
|||
msgid "Toggle navigation"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:63
|
||||
#: cps/templates/layout.html:60
|
||||
msgid "Go!"
|
||||
msgstr "Vamos!"
|
||||
|
||||
#: cps/templates/layout.html:66
|
||||
#: cps/templates/layout.html:68
|
||||
msgid "Advanced Search"
|
||||
msgstr "Busqueda avanzada"
|
||||
|
||||
#: cps/templates/layout.html:87
|
||||
#: cps/templates/layout.html:89
|
||||
msgid "Logout"
|
||||
msgstr "Cerrar Sesion"
|
||||
|
||||
#: cps/templates/layout.html:92 cps/templates/register.html:18
|
||||
#: cps/templates/layout.html:94 cps/templates/register.html:18
|
||||
msgid "Register"
|
||||
msgstr "Registro"
|
||||
|
||||
#: cps/templates/layout.html:121
|
||||
#: cps/templates/layout.html:123
|
||||
msgid "Browse"
|
||||
msgstr "Explorar"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:132
|
||||
msgid "Discover"
|
||||
msgstr "Descubrir"
|
||||
|
||||
#: cps/templates/layout.html:133
|
||||
#: cps/templates/layout.html:135
|
||||
msgid "Categories"
|
||||
msgstr "Categoria"
|
||||
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:142 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "Lenguaje"
|
||||
|
||||
#: cps/templates/layout.html:143
|
||||
#: cps/templates/layout.html:145
|
||||
msgid "Public Shelves"
|
||||
msgstr "Estantes Publicos"
|
||||
|
||||
#: cps/templates/layout.html:147
|
||||
#: cps/templates/layout.html:149
|
||||
msgid "Your Shelves"
|
||||
msgstr "Sus Estantes"
|
||||
|
||||
#: cps/templates/layout.html:152
|
||||
#: cps/templates/layout.html:154
|
||||
msgid "Create a Shelf"
|
||||
msgstr "Crear un estante"
|
||||
|
||||
#: cps/templates/layout.html:153
|
||||
#: cps/templates/layout.html:155
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
|
@ -789,7 +827,7 @@ msgid "Remember me"
|
|||
msgstr "Recordarme"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgid "Calibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
|
|
Binary file not shown.
|
@ -20,7 +20,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+0100\n"
|
||||
"POT-Creation-Date: 2017-02-20 19:47+0100\n"
|
||||
"PO-Revision-Date: 2016-11-13 18:35+0100\n"
|
||||
"Last-Translator: Nicolas Roudninski <nicoroud@gmail.com>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -31,320 +31,343 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
|
||||
msgid "not installed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:136
|
||||
#: cps/helper.py:150
|
||||
#, python-format
|
||||
msgid "Failed to send mail: %s"
|
||||
msgstr "Impossible d'envoyer le courriel : %s"
|
||||
|
||||
#: cps/helper.py:143
|
||||
#: cps/helper.py:157
|
||||
msgid "Calibre-web test email"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:144 cps/helper.py:154
|
||||
#: cps/helper.py:158 cps/helper.py:168
|
||||
msgid "This email has been sent via calibre web."
|
||||
msgstr "Ce message a été envoyé depuis calibre web."
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
#: cps/helper.py:167 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "Envoyer ver Kindle"
|
||||
|
||||
#: cps/helper.py:171 cps/helper.py:186
|
||||
#: cps/helper.py:185 cps/helper.py:200
|
||||
msgid "Could not find any formats suitable for sending by email"
|
||||
msgstr "Impossible de trouver un format adapté à envoyer par courriel"
|
||||
|
||||
#: cps/helper.py:180
|
||||
#: cps/helper.py:194
|
||||
msgid "Could not convert epub to mobi"
|
||||
msgstr "Impossible de convertir epub vers mobi"
|
||||
|
||||
#: cps/helper.py:206
|
||||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr ""
|
||||
"Le fichier demandé ne peux pas être lu. Peut-être de mauvaises "
|
||||
"permissions ?"
|
||||
|
||||
#: cps/ub.py:443
|
||||
#: cps/ub.py:434
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:778
|
||||
#: cps/web.py:734
|
||||
msgid "Requesting update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:735
|
||||
msgid "Downloading update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:736
|
||||
msgid "Unzipping update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:737
|
||||
msgid "Files are replaced"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:738
|
||||
msgid "Database connections are closed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:739
|
||||
msgid "Server is stopped"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:740
|
||||
msgid "Update finished, please press okay and reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:810
|
||||
msgid "Latest Books"
|
||||
msgstr "Derniers livres"
|
||||
|
||||
#: cps/web.py:803
|
||||
#: cps/web.py:835
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "Livres populaires (les plus téléchargés)"
|
||||
|
||||
#: cps/web.py:813
|
||||
#: cps/web.py:845
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
#: cps/templates/index.xml:36 cps/web.py:854
|
||||
msgid "Random Books"
|
||||
msgstr "Livres au hasard"
|
||||
|
||||
#: cps/web.py:835
|
||||
#: cps/web.py:867
|
||||
msgid "Author list"
|
||||
msgstr "Liste des auteurs"
|
||||
|
||||
#: cps/web.py:846
|
||||
#: cps/web.py:878
|
||||
#, python-format
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
|
||||
#: cps/web.py:2115
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr ""
|
||||
"Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est "
|
||||
"pas accessible :"
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
#: cps/templates/index.xml:57 cps/web.py:894
|
||||
msgid "Series list"
|
||||
msgstr "Liste des séries"
|
||||
|
||||
#: cps/web.py:874
|
||||
#: cps/web.py:906
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Séries : %(serie)s"
|
||||
|
||||
#: cps/web.py:907
|
||||
#: cps/web.py:939
|
||||
msgid "Available languages"
|
||||
msgstr "Langues disponibles"
|
||||
|
||||
#: cps/web.py:922
|
||||
#: cps/web.py:954
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "Langue : %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
#: cps/templates/index.xml:50 cps/web.py:967
|
||||
msgid "Category list"
|
||||
msgstr "Liste des catégories"
|
||||
|
||||
#: cps/web.py:947
|
||||
#: cps/web.py:979
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "Catégorie : %(name)s"
|
||||
|
||||
#: cps/web.py:1008
|
||||
#: cps/web.py:1040
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiques"
|
||||
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
#: cps/web.py:1061
|
||||
msgid "Server restarted, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1031
|
||||
#: cps/web.py:1063
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1055
|
||||
#: cps/web.py:1073
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
#: cps/web.py:1147 cps/web.py:1160
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
|
||||
msgid "Read a Book"
|
||||
msgstr "Lire un livre"
|
||||
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
#: cps/web.py:1276 cps/web.py:1713
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "SVP, complétez tous les champs !"
|
||||
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
|
||||
msgid "register"
|
||||
msgstr "S'enregistrer"
|
||||
|
||||
#: cps/web.py:1280
|
||||
#: cps/web.py:1292
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "Une erreur a eu lieu. Merci de réessayez plus tard."
|
||||
|
||||
#: cps/web.py:1285
|
||||
#: cps/web.py:1297
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr "Ce nom d'utilisateur ou cette adresse de courriel est déjà utilisée."
|
||||
|
||||
#: cps/web.py:1303
|
||||
#: cps/web.py:1315
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'"
|
||||
|
||||
#: cps/web.py:1308
|
||||
#: cps/web.py:1320
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "Mauvais nom d'utilisateur ou mot de passe"
|
||||
|
||||
#: cps/web.py:1310
|
||||
#: cps/web.py:1322
|
||||
msgid "login"
|
||||
msgstr "Connexion"
|
||||
|
||||
#: cps/web.py:1327
|
||||
#: cps/web.py:1339
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "Veillez configurer les paramètres smtp d'abord..."
|
||||
|
||||
#: cps/web.py:1331
|
||||
#: cps/web.py:1343
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "Livres envoyés à %(kindlemail)s avec succès"
|
||||
|
||||
#: cps/web.py:1335
|
||||
#: cps/web.py:1347
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s"
|
||||
|
||||
#: cps/web.py:1337
|
||||
#: cps/web.py:1349
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "Veuillez configurer votre adresse kindle d'abord..."
|
||||
|
||||
#: cps/web.py:1357
|
||||
#: cps/web.py:1369
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr "Le livre a bien été ajouté à l'étagère : %(sname)s"
|
||||
|
||||
#: cps/web.py:1378
|
||||
#: cps/web.py:1390
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr "Le livre a été supprimé de l'étagère %(sname)s"
|
||||
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#: cps/web.py:1409 cps/web.py:1433
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr "Une étagère de ce nom '%(title)s' existe déjà."
|
||||
|
||||
#: cps/web.py:1402
|
||||
#: cps/web.py:1414
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "Étagère %(title)s créée"
|
||||
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
#: cps/web.py:1416 cps/web.py:1444
|
||||
msgid "There was an error"
|
||||
msgstr "Il y a eu une erreur"
|
||||
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
#: cps/web.py:1417 cps/web.py:1419
|
||||
msgid "create a shelf"
|
||||
msgstr "Créer une étagère"
|
||||
|
||||
#: cps/web.py:1430
|
||||
#: cps/web.py:1442
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
#: cps/web.py:1445 cps/web.py:1447
|
||||
msgid "Edit a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1453
|
||||
#: cps/web.py:1465
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "L'étagère %(name)s a été supprimé avec succès"
|
||||
|
||||
#: cps/web.py:1475
|
||||
#: cps/web.py:1487
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "Étagère : '%(name)s'"
|
||||
|
||||
#: cps/web.py:1506
|
||||
#: cps/web.py:1518
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1568
|
||||
#: cps/web.py:1580
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "Un compte avec cette adresse de courriel existe déjà."
|
||||
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#: cps/web.py:1582 cps/web.py:1586
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "Profil de %(name)s"
|
||||
|
||||
#: cps/web.py:1571
|
||||
#: cps/web.py:1583
|
||||
msgid "Profile updated"
|
||||
msgstr "Profil mis à jour"
|
||||
|
||||
#: cps/web.py:1584
|
||||
#: cps/web.py:1597
|
||||
msgid "Admin page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1656
|
||||
#: cps/web.py:1668
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
|
||||
msgid "Basic Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1667
|
||||
#: cps/web.py:1679
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
|
||||
msgid "Add new user"
|
||||
msgstr "Ajouter un nouvel utilisateur"
|
||||
|
||||
#: cps/web.py:1741
|
||||
#: cps/web.py:1753
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "Utilisateur '%(user)s' créé"
|
||||
|
||||
#: cps/web.py:1745
|
||||
#: cps/web.py:1757
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr "Un compte avec cette adresse de courriel ou ce surnom existe déjà."
|
||||
|
||||
#: cps/web.py:1767
|
||||
#: cps/web.py:1779
|
||||
msgid "Mail settings updated"
|
||||
msgstr "Paramètres de courriel mis à jour"
|
||||
|
||||
#: cps/web.py:1773
|
||||
#: cps/web.py:1785
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1776
|
||||
#: cps/web.py:1788
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1777
|
||||
#: cps/web.py:1789
|
||||
msgid "Edit mail settings"
|
||||
msgstr "Éditer les paramètres de courriel"
|
||||
|
||||
#: cps/web.py:1805
|
||||
#: cps/web.py:1817
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "Utilisateur '%(nick)s' supprimé"
|
||||
|
||||
#: cps/web.py:1886
|
||||
#: cps/web.py:1898
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "Utilisateur '%(nick)s' mis à jour"
|
||||
|
||||
#: cps/web.py:1889
|
||||
#: cps/web.py:1901
|
||||
msgid "An unknown error occured."
|
||||
msgstr "Oups ! Une erreur inconnue a eu lieu."
|
||||
|
||||
#: cps/web.py:1892
|
||||
#: cps/web.py:1904
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "Éditer l'utilisateur %(nick)s"
|
||||
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
|
||||
msgid "edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2133
|
||||
#: cps/web.py:2145
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "Impossible de créer le chemin %s (permission refusée)"
|
||||
|
||||
#: cps/web.py:2138
|
||||
#: cps/web.py:2150
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "Impossible d'enregistrer le fichier %s (permission refusée)"
|
||||
|
||||
#: cps/web.py:2143
|
||||
#: cps/web.py:2155
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "Impossible de supprimer le fichier %s (permission refusée)"
|
||||
|
@ -353,145 +376,158 @@ msgstr "Impossible de supprimer le fichier %s (permission refusée)"
|
|||
msgid "User list"
|
||||
msgstr "Liste des ustilisateurs"
|
||||
|
||||
#: cps/templates/admin.html:7
|
||||
#: cps/templates/admin.html:8
|
||||
msgid "Nickname"
|
||||
msgstr "Surnom"
|
||||
|
||||
#: cps/templates/admin.html:8
|
||||
#: cps/templates/admin.html:9
|
||||
msgid "Email"
|
||||
msgstr "Courriel"
|
||||
|
||||
#: cps/templates/admin.html:9
|
||||
#: cps/templates/admin.html:10
|
||||
msgid "Kindle"
|
||||
msgstr "Kindle"
|
||||
|
||||
#: cps/templates/admin.html:10
|
||||
#: cps/templates/admin.html:11
|
||||
msgid "DLS"
|
||||
msgstr "DLS"
|
||||
|
||||
#: cps/templates/admin.html:11 cps/templates/layout.html:83
|
||||
#: cps/templates/admin.html:12 cps/templates/layout.html:85
|
||||
msgid "Admin"
|
||||
msgstr "Administration"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
#: cps/templates/admin.html:13 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
#: cps/templates/admin.html:13 cps/templates/layout.html:76
|
||||
#: cps/templates/admin.html:14 cps/templates/layout.html:78
|
||||
msgid "Upload"
|
||||
msgstr "Téléverser"
|
||||
|
||||
#: cps/templates/admin.html:14
|
||||
#: cps/templates/admin.html:15
|
||||
msgid "Edit"
|
||||
msgstr "Éditer"
|
||||
|
||||
#: cps/templates/admin.html:15
|
||||
#: cps/templates/admin.html:16
|
||||
msgid "Passwd"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: cps/templates/admin.html:34
|
||||
#: cps/templates/admin.html:35
|
||||
msgid "SMTP mail settings"
|
||||
msgstr "Paramètres smtp"
|
||||
|
||||
#: cps/templates/admin.html:37 cps/templates/email_edit.html:7
|
||||
#: cps/templates/admin.html:38 cps/templates/email_edit.html:7
|
||||
msgid "SMTP hostname"
|
||||
msgstr "Serveur smtp"
|
||||
|
||||
#: cps/templates/admin.html:38
|
||||
#: cps/templates/admin.html:39
|
||||
msgid "SMTP port"
|
||||
msgstr "Port smtp"
|
||||
|
||||
#: cps/templates/admin.html:39
|
||||
#: cps/templates/admin.html:40
|
||||
msgid "SSL"
|
||||
msgstr "SSL"
|
||||
|
||||
#: cps/templates/admin.html:40 cps/templates/email_edit.html:23
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:23
|
||||
msgid "SMTP login"
|
||||
msgstr "Login smtp"
|
||||
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:27
|
||||
#: cps/templates/admin.html:42 cps/templates/email_edit.html:27
|
||||
msgid "SMTP password"
|
||||
msgstr "Mot de passe smtp"
|
||||
|
||||
#: cps/templates/admin.html:42
|
||||
#: cps/templates/admin.html:43
|
||||
msgid "From mail"
|
||||
msgstr "Expéditeur des courriels"
|
||||
|
||||
#: cps/templates/admin.html:54
|
||||
#: cps/templates/admin.html:55
|
||||
msgid "Change SMTP settings"
|
||||
msgstr "Changer les paramètre smtp"
|
||||
|
||||
#: cps/templates/admin.html:56 cps/templates/admin.html:76
|
||||
#: cps/templates/admin.html:57 cps/templates/admin.html:77
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:59
|
||||
#: cps/templates/admin.html:60
|
||||
msgid "Calibre DB dir"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:60 cps/templates/config_edit.html:32
|
||||
#: cps/templates/admin.html:61 cps/templates/config_edit.html:32
|
||||
msgid "Log Level"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:61
|
||||
#: cps/templates/admin.html:62
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:62 cps/templates/config_edit.html:19
|
||||
#: cps/templates/admin.html:63 cps/templates/config_edit.html:19
|
||||
msgid "Books per page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:63
|
||||
#: cps/templates/admin.html:64
|
||||
msgid "Uploading"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:64
|
||||
#: cps/templates/admin.html:65
|
||||
msgid "Public registration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:65
|
||||
#: cps/templates/admin.html:66
|
||||
msgid "Anonymous browsing"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:77
|
||||
#: cps/templates/admin.html:78
|
||||
msgid "Administration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:79
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:80
|
||||
msgid "Stop Calibre-web"
|
||||
msgid "Current commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Newest commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:83
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:84
|
||||
msgid "Stop Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:85
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
#: cps/templates/admin.html:86
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
#: cps/templates/admin.html:96
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
#: cps/templates/admin.html:101 cps/templates/admin.html:115
|
||||
#: cps/templates/admin.html:136
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: cps/templates/admin.html:102 cps/templates/admin.html:116
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
|
||||
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "Retour"
|
||||
|
||||
#: cps/templates/admin.html:108
|
||||
#: cps/templates/admin.html:114
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:127
|
||||
msgid "Updating, please do not reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
|
||||
msgid "Book Title"
|
||||
msgstr "Titre du livre"
|
||||
|
@ -508,7 +544,7 @@ msgstr "Description"
|
|||
msgid "Tags"
|
||||
msgstr "Étiquette"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "Séries"
|
||||
|
@ -603,7 +639,7 @@ msgstr "Permettre l'édition"
|
|||
msgid "Allow Changing Password"
|
||||
msgstr "Permettre le changement de mot de passe"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:93
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "Connexion"
|
||||
|
@ -684,11 +720,11 @@ msgstr "Découverte (livres au hasard)"
|
|||
msgid "Start"
|
||||
msgstr "Démarrer"
|
||||
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:61
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:58
|
||||
msgid "Search"
|
||||
msgstr "Chercher"
|
||||
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:124
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:126
|
||||
msgid "Hot Books"
|
||||
msgstr "Livres populaires"
|
||||
|
||||
|
@ -696,7 +732,7 @@ msgstr "Livres populaires"
|
|||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:129
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -704,7 +740,7 @@ msgstr ""
|
|||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "Publications populaires de ce catalogue sur la base de notes."
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:124
|
||||
msgid "New Books"
|
||||
msgstr "Nouveaux livres"
|
||||
|
||||
|
@ -716,7 +752,7 @@ msgstr "Les derniers livres"
|
|||
msgid "Show Random Books"
|
||||
msgstr "Montrer des livres au hasard"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:140
|
||||
msgid "Authors"
|
||||
msgstr "Auteurs"
|
||||
|
||||
|
@ -736,51 +772,51 @@ msgstr "Livres classés par série"
|
|||
msgid "Toggle navigation"
|
||||
msgstr "Basculer la navigation"
|
||||
|
||||
#: cps/templates/layout.html:63
|
||||
#: cps/templates/layout.html:60
|
||||
msgid "Go!"
|
||||
msgstr "Allez !"
|
||||
|
||||
#: cps/templates/layout.html:66
|
||||
#: cps/templates/layout.html:68
|
||||
msgid "Advanced Search"
|
||||
msgstr "Recherche avancée"
|
||||
|
||||
#: cps/templates/layout.html:87
|
||||
#: cps/templates/layout.html:89
|
||||
msgid "Logout"
|
||||
msgstr "Déconnexion"
|
||||
|
||||
#: cps/templates/layout.html:92 cps/templates/register.html:18
|
||||
#: cps/templates/layout.html:94 cps/templates/register.html:18
|
||||
msgid "Register"
|
||||
msgstr "S'enregistrer"
|
||||
|
||||
#: cps/templates/layout.html:121
|
||||
#: cps/templates/layout.html:123
|
||||
msgid "Browse"
|
||||
msgstr "Explorer"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:132
|
||||
msgid "Discover"
|
||||
msgstr "Découvrir"
|
||||
|
||||
#: cps/templates/layout.html:133
|
||||
#: cps/templates/layout.html:135
|
||||
msgid "Categories"
|
||||
msgstr "Catégories"
|
||||
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:142 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "Langues"
|
||||
|
||||
#: cps/templates/layout.html:143
|
||||
#: cps/templates/layout.html:145
|
||||
msgid "Public Shelves"
|
||||
msgstr "Étagères publiques"
|
||||
|
||||
#: cps/templates/layout.html:147
|
||||
#: cps/templates/layout.html:149
|
||||
msgid "Your Shelves"
|
||||
msgstr "Vos étagères"
|
||||
|
||||
#: cps/templates/layout.html:152
|
||||
#: cps/templates/layout.html:154
|
||||
msgid "Create a Shelf"
|
||||
msgstr "Créer une étagère"
|
||||
|
||||
#: cps/templates/layout.html:153
|
||||
#: cps/templates/layout.html:155
|
||||
msgid "About"
|
||||
msgstr "À popos"
|
||||
|
||||
|
@ -799,7 +835,7 @@ msgid "Remember me"
|
|||
msgstr "Se rappeler de moi"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgid "Calibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre Web - polski (170210.2017)\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2017-02-12 08:13+0100\n"
|
||||
"POT-Creation-Date: 2017-02-20 19:47+0100\n"
|
||||
"PO-Revision-Date: 2017-02-11 15:56+0100\n"
|
||||
"Last-Translator: Radosław Kierznowski <radek.kierznowski@outlook.com>\n"
|
||||
"Language: pl\n"
|
||||
|
@ -20,318 +20,343 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
|
||||
msgid "not installed"
|
||||
msgstr "nie zainstalowane"
|
||||
|
||||
#: cps/helper.py:136
|
||||
#: cps/helper.py:150
|
||||
#, python-format
|
||||
msgid "Failed to send mail: %s"
|
||||
msgstr "Nie można wysłać poczty: %s"
|
||||
|
||||
#: cps/helper.py:143
|
||||
#: cps/helper.py:157
|
||||
msgid "Calibre-web test email"
|
||||
msgstr "Calibre-web testowy email"
|
||||
|
||||
#: cps/helper.py:144 cps/helper.py:154
|
||||
#: cps/helper.py:158 cps/helper.py:168
|
||||
msgid "This email has been sent via calibre web."
|
||||
msgstr "Ten e-mail został wysłany za pośrednictwem calibre web."
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
#: cps/helper.py:167 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "Wyślij do Kindle"
|
||||
|
||||
#: cps/helper.py:171 cps/helper.py:186
|
||||
#: cps/helper.py:185 cps/helper.py:200
|
||||
msgid "Could not find any formats suitable for sending by email"
|
||||
msgstr ""
|
||||
"Nie można znaleźć żadnych formatów przystosowane do wysyłania pocztą "
|
||||
"e-mail"
|
||||
|
||||
#: cps/helper.py:180
|
||||
#: cps/helper.py:194
|
||||
msgid "Could not convert epub to mobi"
|
||||
msgstr "Nie można konwertować epub do mobi"
|
||||
|
||||
#: cps/helper.py:206
|
||||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr "Żądany plik nie może być odczytany. Może złe uprawnienia?"
|
||||
|
||||
#: cps/ub.py:443
|
||||
#: cps/ub.py:434
|
||||
msgid "Guest"
|
||||
msgstr "Gość"
|
||||
|
||||
#: cps/web.py:778
|
||||
#: cps/web.py:734
|
||||
msgid "Requesting update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:735
|
||||
msgid "Downloading update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:736
|
||||
msgid "Unzipping update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:737
|
||||
msgid "Files are replaced"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:738
|
||||
msgid "Database connections are closed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:739
|
||||
msgid "Server is stopped"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:740
|
||||
msgid "Update finished, please press okay and reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:810
|
||||
msgid "Latest Books"
|
||||
msgstr "Najnowsze książki"
|
||||
|
||||
#: cps/web.py:803
|
||||
#: cps/web.py:835
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "Najpopularniejsze książki (najczęściej pobierane)"
|
||||
|
||||
#: cps/web.py:813
|
||||
#: cps/web.py:845
|
||||
msgid "Best rated books"
|
||||
msgstr "Najlepiej oceniane książki"
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
#: cps/templates/index.xml:36 cps/web.py:854
|
||||
msgid "Random Books"
|
||||
msgstr "Losowe książki"
|
||||
|
||||
#: cps/web.py:835
|
||||
#: cps/web.py:867
|
||||
msgid "Author list"
|
||||
msgstr "Lista autorów"
|
||||
|
||||
#: cps/web.py:846
|
||||
#: cps/web.py:878
|
||||
#, python-format
|
||||
msgid "Author: %(name)s"
|
||||
msgstr "Autor: %(name)s"
|
||||
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
|
||||
#: cps/web.py:2115
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:"
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
#: cps/templates/index.xml:57 cps/web.py:894
|
||||
msgid "Series list"
|
||||
msgstr "Lista serii"
|
||||
|
||||
#: cps/web.py:874
|
||||
#: cps/web.py:906
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Serie: %(serie)s"
|
||||
|
||||
#: cps/web.py:907
|
||||
#: cps/web.py:939
|
||||
msgid "Available languages"
|
||||
msgstr "Dostępne języki"
|
||||
|
||||
#: cps/web.py:922
|
||||
#: cps/web.py:954
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "Język: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
#: cps/templates/index.xml:50 cps/web.py:967
|
||||
msgid "Category list"
|
||||
msgstr "Lista kategorii"
|
||||
|
||||
#: cps/web.py:947
|
||||
#: cps/web.py:979
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "Kategoria: %(name)s"
|
||||
|
||||
#: cps/web.py:1008
|
||||
#: cps/web.py:1040
|
||||
msgid "Statistics"
|
||||
msgstr "Statystyki"
|
||||
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr "Wykonano ponowne uruchomienie, proszę odświeżyć stronę"
|
||||
#: cps/web.py:1061
|
||||
msgid "Server restarted, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1031
|
||||
#: cps/web.py:1063
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno"
|
||||
|
||||
#: cps/web.py:1055
|
||||
#: cps/web.py:1073
|
||||
msgid "Update done"
|
||||
msgstr "Aktualizacja zakończona"
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
#: cps/web.py:1147 cps/web.py:1160
|
||||
msgid "search"
|
||||
msgstr "szukaj"
|
||||
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
|
||||
msgid "Read a Book"
|
||||
msgstr "Czytaj książkę"
|
||||
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
#: cps/web.py:1276 cps/web.py:1713
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "Proszę wypełnić wszystkie pola!"
|
||||
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
|
||||
msgid "register"
|
||||
msgstr "rejestracja"
|
||||
|
||||
#: cps/web.py:1280
|
||||
#: cps/web.py:1292
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później."
|
||||
|
||||
#: cps/web.py:1285
|
||||
#: cps/web.py:1297
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr "Nazwa użytkownika lub adres e-mail jest już w użyciu."
|
||||
|
||||
#: cps/web.py:1303
|
||||
#: cps/web.py:1315
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "Zalogowałeś się jako: '%(nickname)s'"
|
||||
|
||||
#: cps/web.py:1308
|
||||
#: cps/web.py:1320
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "Błędna nazwa użytkownika lub hasło"
|
||||
|
||||
#: cps/web.py:1310
|
||||
#: cps/web.py:1322
|
||||
msgid "login"
|
||||
msgstr "logowanie"
|
||||
|
||||
#: cps/web.py:1327
|
||||
#: cps/web.py:1339
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
|
||||
|
||||
#: cps/web.py:1331
|
||||
#: cps/web.py:1343
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "Książka została pomyślnie wysłana do %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1335
|
||||
#: cps/web.py:1347
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s"
|
||||
|
||||
#: cps/web.py:1337
|
||||
#: cps/web.py:1349
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..."
|
||||
|
||||
#: cps/web.py:1357
|
||||
#: cps/web.py:1369
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr "Książka została dodana do półki: %(sname)s"
|
||||
|
||||
#: cps/web.py:1378
|
||||
#: cps/web.py:1390
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr "Książka została usunięta z półki: %(sname)s"
|
||||
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#: cps/web.py:1409 cps/web.py:1433
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr "Półka o nazwie '%(title)s' już istnieje."
|
||||
|
||||
#: cps/web.py:1402
|
||||
#: cps/web.py:1414
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "Półka %(title)s została utworzona"
|
||||
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
#: cps/web.py:1416 cps/web.py:1444
|
||||
msgid "There was an error"
|
||||
msgstr "Wystąpił błąd"
|
||||
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
#: cps/web.py:1417 cps/web.py:1419
|
||||
msgid "create a shelf"
|
||||
msgstr "utwórz półkę"
|
||||
|
||||
#: cps/web.py:1430
|
||||
#: cps/web.py:1442
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr "Półka %(title)s została zmieniona"
|
||||
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
#: cps/web.py:1445 cps/web.py:1447
|
||||
msgid "Edit a shelf"
|
||||
msgstr "Edytuj półkę"
|
||||
|
||||
#: cps/web.py:1453
|
||||
#: cps/web.py:1465
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "pomyślnie usunięto półkę %(name)s"
|
||||
|
||||
#: cps/web.py:1475
|
||||
#: cps/web.py:1487
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "Półka: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1506
|
||||
#: cps/web.py:1518
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr "Zmieniono kolejność półki: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1568
|
||||
#: cps/web.py:1580
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "Znaleziono istniejące konto dla tego adresu e-mail."
|
||||
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#: cps/web.py:1582 cps/web.py:1586
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "Profil użytkownika %(name)s"
|
||||
|
||||
#: cps/web.py:1571
|
||||
#: cps/web.py:1583
|
||||
msgid "Profile updated"
|
||||
msgstr "Zaktualizowano profil"
|
||||
|
||||
#: cps/web.py:1584
|
||||
#: cps/web.py:1597
|
||||
msgid "Admin page"
|
||||
msgstr "Portal administracyjny"
|
||||
|
||||
#: cps/web.py:1656
|
||||
#: cps/web.py:1668
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr "Konfiguracja Calibre-web została zaktualizowana"
|
||||
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
|
||||
msgid "Basic Configuration"
|
||||
msgstr "Podstawowa konfiguracja"
|
||||
|
||||
#: cps/web.py:1667
|
||||
#: cps/web.py:1679
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr "Lokalizacja bazy danych nie jest prawidłowa, wpisz poprawną ścieżkę"
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
|
||||
msgid "Add new user"
|
||||
msgstr "Dodaj nowego użytkownika"
|
||||
|
||||
#: cps/web.py:1741
|
||||
#: cps/web.py:1753
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "Użytkownik '%(user)s' został utworzony"
|
||||
|
||||
#: cps/web.py:1745
|
||||
#: cps/web.py:1757
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika."
|
||||
|
||||
#: cps/web.py:1767
|
||||
#: cps/web.py:1779
|
||||
msgid "Mail settings updated"
|
||||
msgstr "Zaktualizowano ustawienia poczty e-mail"
|
||||
|
||||
#: cps/web.py:1773
|
||||
#: cps/web.py:1785
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr "Testowy e-mail pomyślnie wysłany do %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1776
|
||||
#: cps/web.py:1788
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s"
|
||||
|
||||
#: cps/web.py:1777
|
||||
#: cps/web.py:1789
|
||||
msgid "Edit mail settings"
|
||||
msgstr "Edytuj ustawienia poczty e-mail"
|
||||
|
||||
#: cps/web.py:1805
|
||||
#: cps/web.py:1817
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "Użytkownik '%(nick)s' został usunięty"
|
||||
|
||||
#: cps/web.py:1886
|
||||
#: cps/web.py:1898
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "Użytkownik '%(nick)s' został zaktualizowany"
|
||||
|
||||
#: cps/web.py:1889
|
||||
#: cps/web.py:1901
|
||||
msgid "An unknown error occured."
|
||||
msgstr "Wystąpił nieznany błąd."
|
||||
|
||||
#: cps/web.py:1892
|
||||
#: cps/web.py:1904
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "Edytuj użytkownika %(nick)s"
|
||||
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
|
||||
msgid "edit metadata"
|
||||
msgstr "edytuj metadane"
|
||||
|
||||
#: cps/web.py:2133
|
||||
#: cps/web.py:2145
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)."
|
||||
|
||||
#: cps/web.py:2138
|
||||
#: cps/web.py:2150
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)."
|
||||
|
||||
#: cps/web.py:2143
|
||||
#: cps/web.py:2155
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)."
|
||||
|
@ -340,145 +365,158 @@ msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)."
|
|||
msgid "User list"
|
||||
msgstr "Lista użytkowników"
|
||||
|
||||
#: cps/templates/admin.html:7
|
||||
#: cps/templates/admin.html:8
|
||||
msgid "Nickname"
|
||||
msgstr "Nazwa użytkownika"
|
||||
|
||||
#: cps/templates/admin.html:8
|
||||
#: cps/templates/admin.html:9
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: cps/templates/admin.html:9
|
||||
#: cps/templates/admin.html:10
|
||||
msgid "Kindle"
|
||||
msgstr "Kindle"
|
||||
|
||||
#: cps/templates/admin.html:10
|
||||
#: cps/templates/admin.html:11
|
||||
msgid "DLS"
|
||||
msgstr "DLS"
|
||||
|
||||
#: cps/templates/admin.html:11 cps/templates/layout.html:83
|
||||
#: cps/templates/admin.html:12 cps/templates/layout.html:85
|
||||
msgid "Admin"
|
||||
msgstr "Portal administracyjny"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
#: cps/templates/admin.html:13 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "Pobierz"
|
||||
|
||||
#: cps/templates/admin.html:13 cps/templates/layout.html:76
|
||||
#: cps/templates/admin.html:14 cps/templates/layout.html:78
|
||||
msgid "Upload"
|
||||
msgstr "Wyślij"
|
||||
|
||||
#: cps/templates/admin.html:14
|
||||
#: cps/templates/admin.html:15
|
||||
msgid "Edit"
|
||||
msgstr "Edycja"
|
||||
|
||||
#: cps/templates/admin.html:15
|
||||
#: cps/templates/admin.html:16
|
||||
msgid "Passwd"
|
||||
msgstr "Zmiana hasła"
|
||||
|
||||
#: cps/templates/admin.html:34
|
||||
#: cps/templates/admin.html:35
|
||||
msgid "SMTP mail settings"
|
||||
msgstr "Ustawienia poczty SMTP"
|
||||
|
||||
#: cps/templates/admin.html:37 cps/templates/email_edit.html:7
|
||||
#: cps/templates/admin.html:38 cps/templates/email_edit.html:7
|
||||
msgid "SMTP hostname"
|
||||
msgstr "Adres serwera SMTP"
|
||||
|
||||
#: cps/templates/admin.html:38
|
||||
#: cps/templates/admin.html:39
|
||||
msgid "SMTP port"
|
||||
msgstr "Port serwera SMTP"
|
||||
|
||||
#: cps/templates/admin.html:39
|
||||
#: cps/templates/admin.html:40
|
||||
msgid "SSL"
|
||||
msgstr "SSL"
|
||||
|
||||
#: cps/templates/admin.html:40 cps/templates/email_edit.html:23
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:23
|
||||
msgid "SMTP login"
|
||||
msgstr "Nazwa użytkownika SMTP"
|
||||
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:27
|
||||
#: cps/templates/admin.html:42 cps/templates/email_edit.html:27
|
||||
msgid "SMTP password"
|
||||
msgstr "Hasło SMTP"
|
||||
|
||||
#: cps/templates/admin.html:42
|
||||
#: cps/templates/admin.html:43
|
||||
msgid "From mail"
|
||||
msgstr "Wyślij z adresu e-mail"
|
||||
|
||||
#: cps/templates/admin.html:54
|
||||
#: cps/templates/admin.html:55
|
||||
msgid "Change SMTP settings"
|
||||
msgstr "Zmień ustawienia SMTP"
|
||||
|
||||
#: cps/templates/admin.html:56 cps/templates/admin.html:76
|
||||
#: cps/templates/admin.html:57 cps/templates/admin.html:77
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguracja"
|
||||
|
||||
#: cps/templates/admin.html:59
|
||||
#: cps/templates/admin.html:60
|
||||
msgid "Calibre DB dir"
|
||||
msgstr "Folder bazy danych Calibre"
|
||||
|
||||
#: cps/templates/admin.html:60 cps/templates/config_edit.html:32
|
||||
#: cps/templates/admin.html:61 cps/templates/config_edit.html:32
|
||||
msgid "Log Level"
|
||||
msgstr "Poziom logów"
|
||||
|
||||
#: cps/templates/admin.html:61
|
||||
#: cps/templates/admin.html:62
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: cps/templates/admin.html:62 cps/templates/config_edit.html:19
|
||||
#: cps/templates/admin.html:63 cps/templates/config_edit.html:19
|
||||
msgid "Books per page"
|
||||
msgstr "Ilość książek na stronie"
|
||||
|
||||
#: cps/templates/admin.html:63
|
||||
#: cps/templates/admin.html:64
|
||||
msgid "Uploading"
|
||||
msgstr "Wysyłanie"
|
||||
|
||||
#: cps/templates/admin.html:64
|
||||
#: cps/templates/admin.html:65
|
||||
msgid "Public registration"
|
||||
msgstr "Publiczna rejestracja"
|
||||
|
||||
#: cps/templates/admin.html:65
|
||||
#: cps/templates/admin.html:66
|
||||
msgid "Anonymous browsing"
|
||||
msgstr "Anonimowe przeglądanie"
|
||||
|
||||
#: cps/templates/admin.html:77
|
||||
#: cps/templates/admin.html:78
|
||||
msgid "Administration"
|
||||
msgstr "Zarządzanie"
|
||||
|
||||
#: cps/templates/admin.html:79
|
||||
#: cps/templates/admin.html:80
|
||||
msgid "Current commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Newest commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:83
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr "Uruchom ponownie Calibre-web"
|
||||
|
||||
#: cps/templates/admin.html:80
|
||||
#: cps/templates/admin.html:84
|
||||
msgid "Stop Calibre-web"
|
||||
msgstr "Zatrzymaj Calibre-web"
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
#: cps/templates/admin.html:85
|
||||
msgid "Check for update"
|
||||
msgstr "Sprawdź aktualizacje"
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
#: cps/templates/admin.html:86
|
||||
msgid "Perform Update"
|
||||
msgstr "Wykonaj aktualizację"
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
#: cps/templates/admin.html:96
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr "Na pewno chcesz uruchomić ponownie Calibre-web?"
|
||||
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
#: cps/templates/admin.html:101 cps/templates/admin.html:115
|
||||
#: cps/templates/admin.html:136
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: cps/templates/admin.html:102 cps/templates/admin.html:116
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
|
||||
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "Wróć"
|
||||
|
||||
#: cps/templates/admin.html:108
|
||||
#: cps/templates/admin.html:114
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr "Na pewno chcesz zatrzymać Calibre-web?"
|
||||
|
||||
#: cps/templates/admin.html:127
|
||||
msgid "Updating, please do not reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
|
||||
msgid "Book Title"
|
||||
msgstr "Tytuł książki"
|
||||
|
@ -495,7 +533,7 @@ msgstr "Opis"
|
|||
msgid "Tags"
|
||||
msgstr "Tagi"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "Serie"
|
||||
|
@ -590,7 +628,7 @@ msgstr "Zezwalaj na edycję"
|
|||
msgid "Allow Changing Password"
|
||||
msgstr "Zezwalaj na zmianę hasła"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:93
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "Zaloguj się"
|
||||
|
@ -673,11 +711,11 @@ msgstr "Odkrywaj (losowe książki)"
|
|||
msgid "Start"
|
||||
msgstr "Rozpocznij"
|
||||
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:61
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:58
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:124
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:126
|
||||
msgid "Hot Books"
|
||||
msgstr "Najpopularniejsze książki"
|
||||
|
||||
|
@ -685,7 +723,7 @@ msgstr "Najpopularniejsze książki"
|
|||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr "Popularne publikacje z tego katalogu bazujące na pobieraniach."
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:129
|
||||
msgid "Best rated Books"
|
||||
msgstr "Najlepiej ocenione książki"
|
||||
|
||||
|
@ -693,7 +731,7 @@ msgstr "Najlepiej ocenione książki"
|
|||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "Popularne publikacje z tego katalogu bazujące na ocenach."
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:124
|
||||
msgid "New Books"
|
||||
msgstr "Nowe książki"
|
||||
|
||||
|
@ -705,7 +743,7 @@ msgstr "Ostatnie książki"
|
|||
msgid "Show Random Books"
|
||||
msgstr "Pokazuj losowe książki"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:140
|
||||
msgid "Authors"
|
||||
msgstr "Autorzy"
|
||||
|
||||
|
@ -725,51 +763,51 @@ msgstr "Książki sortowane według serii"
|
|||
msgid "Toggle navigation"
|
||||
msgstr "Przełącz nawigację"
|
||||
|
||||
#: cps/templates/layout.html:63
|
||||
#: cps/templates/layout.html:60
|
||||
msgid "Go!"
|
||||
msgstr "Idź!"
|
||||
|
||||
#: cps/templates/layout.html:66
|
||||
#: cps/templates/layout.html:68
|
||||
msgid "Advanced Search"
|
||||
msgstr "Zaawansowane wyszukiwanie"
|
||||
|
||||
#: cps/templates/layout.html:87
|
||||
#: cps/templates/layout.html:89
|
||||
msgid "Logout"
|
||||
msgstr "Wyloguj się"
|
||||
|
||||
#: cps/templates/layout.html:92 cps/templates/register.html:18
|
||||
#: cps/templates/layout.html:94 cps/templates/register.html:18
|
||||
msgid "Register"
|
||||
msgstr "Zarejestruj się"
|
||||
|
||||
#: cps/templates/layout.html:121
|
||||
#: cps/templates/layout.html:123
|
||||
msgid "Browse"
|
||||
msgstr "Przeglądaj"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:132
|
||||
msgid "Discover"
|
||||
msgstr "Odkrywaj"
|
||||
|
||||
#: cps/templates/layout.html:133
|
||||
#: cps/templates/layout.html:135
|
||||
msgid "Categories"
|
||||
msgstr "Kategorie"
|
||||
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:142 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "Języki"
|
||||
|
||||
#: cps/templates/layout.html:143
|
||||
#: cps/templates/layout.html:145
|
||||
msgid "Public Shelves"
|
||||
msgstr "Publiczne półki"
|
||||
|
||||
#: cps/templates/layout.html:147
|
||||
#: cps/templates/layout.html:149
|
||||
msgid "Your Shelves"
|
||||
msgstr "Twoje półki"
|
||||
|
||||
#: cps/templates/layout.html:152
|
||||
#: cps/templates/layout.html:154
|
||||
msgid "Create a Shelf"
|
||||
msgstr "Utwórz półkę"
|
||||
|
||||
#: cps/templates/layout.html:153
|
||||
#: cps/templates/layout.html:155
|
||||
msgid "About"
|
||||
msgstr "O programie"
|
||||
|
||||
|
@ -788,7 +826,7 @@ msgid "Remember me"
|
|||
msgstr "Zapamiętaj mnie"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgid "Calibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
|
|
Binary file not shown.
|
@ -15,7 +15,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+0100\n"
|
||||
"POT-Creation-Date: 2017-02-20 19:47+0100\n"
|
||||
"PO-Revision-Date: 2017-01-06 17:00+0000\n"
|
||||
"Last-Translator: dalin <dalin.lin@gmail.com>\n"
|
||||
"Language: zh_Hans_CN\n"
|
||||
|
@ -26,316 +26,341 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
|
||||
msgid "not installed"
|
||||
msgstr "未安装"
|
||||
|
||||
#: cps/helper.py:136
|
||||
#: cps/helper.py:150
|
||||
#, python-format
|
||||
msgid "Failed to send mail: %s"
|
||||
msgstr "发送邮件失败: %s"
|
||||
|
||||
#: cps/helper.py:143
|
||||
#: cps/helper.py:157
|
||||
msgid "Calibre-web test email"
|
||||
msgstr "Calibre-web 测试邮件"
|
||||
|
||||
#: cps/helper.py:144 cps/helper.py:154
|
||||
#: cps/helper.py:158 cps/helper.py:168
|
||||
msgid "This email has been sent via calibre web."
|
||||
msgstr "此邮件由calibre web发送"
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
#: cps/helper.py:167 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "发送到Kindle"
|
||||
|
||||
#: cps/helper.py:171 cps/helper.py:186
|
||||
#: cps/helper.py:185 cps/helper.py:200
|
||||
msgid "Could not find any formats suitable for sending by email"
|
||||
msgstr "无法找到适合邮件发送的格式"
|
||||
|
||||
#: cps/helper.py:180
|
||||
#: cps/helper.py:194
|
||||
msgid "Could not convert epub to mobi"
|
||||
msgstr "无法转换epub到mobi"
|
||||
|
||||
#: cps/helper.py:206
|
||||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr "无法读取所请求的文件。可能是错误权限不对?"
|
||||
|
||||
#: cps/ub.py:443
|
||||
#: cps/ub.py:434
|
||||
msgid "Guest"
|
||||
msgstr "游客"
|
||||
|
||||
#: cps/web.py:778
|
||||
#: cps/web.py:734
|
||||
msgid "Requesting update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:735
|
||||
msgid "Downloading update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:736
|
||||
msgid "Unzipping update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:737
|
||||
msgid "Files are replaced"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:738
|
||||
msgid "Database connections are closed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:739
|
||||
msgid "Server is stopped"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:740
|
||||
msgid "Update finished, please press okay and reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:810
|
||||
msgid "Latest Books"
|
||||
msgstr "最新书籍"
|
||||
|
||||
#: cps/web.py:803
|
||||
#: cps/web.py:835
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "热门书籍(最多下载)"
|
||||
|
||||
#: cps/web.py:813
|
||||
#: cps/web.py:845
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
#: cps/templates/index.xml:36 cps/web.py:854
|
||||
msgid "Random Books"
|
||||
msgstr "随机书籍"
|
||||
|
||||
#: cps/web.py:835
|
||||
#: cps/web.py:867
|
||||
msgid "Author list"
|
||||
msgstr "作者列表"
|
||||
|
||||
#: cps/web.py:846
|
||||
#: cps/web.py:878
|
||||
#, python-format
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
|
||||
#: cps/web.py:2115
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr "无法打开电子书。 文件不存在或者文件不可访问:"
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
#: cps/templates/index.xml:57 cps/web.py:894
|
||||
msgid "Series list"
|
||||
msgstr "丛书列表"
|
||||
|
||||
#: cps/web.py:874
|
||||
#: cps/web.py:906
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "丛书: %(serie)s"
|
||||
|
||||
#: cps/web.py:907
|
||||
#: cps/web.py:939
|
||||
msgid "Available languages"
|
||||
msgstr "可用语言"
|
||||
|
||||
#: cps/web.py:922
|
||||
#: cps/web.py:954
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "语言: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
#: cps/templates/index.xml:50 cps/web.py:967
|
||||
msgid "Category list"
|
||||
msgstr "分类列表"
|
||||
|
||||
#: cps/web.py:947
|
||||
#: cps/web.py:979
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "分类: %(name)s"
|
||||
|
||||
#: cps/web.py:1008
|
||||
#: cps/web.py:1040
|
||||
msgid "Statistics"
|
||||
msgstr "统计"
|
||||
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr "正在重启,请刷新页面"
|
||||
#: cps/web.py:1061
|
||||
msgid "Server restarted, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1031
|
||||
#: cps/web.py:1063
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr "正在关闭服务器,请关闭窗口"
|
||||
|
||||
#: cps/web.py:1055
|
||||
#: cps/web.py:1073
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
#: cps/web.py:1147 cps/web.py:1160
|
||||
msgid "search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
|
||||
msgid "Read a Book"
|
||||
msgstr "阅读一本书"
|
||||
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
#: cps/web.py:1276 cps/web.py:1713
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "请填写所有字段"
|
||||
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
|
||||
msgid "register"
|
||||
msgstr "注册"
|
||||
|
||||
#: cps/web.py:1280
|
||||
#: cps/web.py:1292
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "发生一个未知错误。请稍后再试。"
|
||||
|
||||
#: cps/web.py:1285
|
||||
#: cps/web.py:1297
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr "此用户名或邮箱已被使用。"
|
||||
|
||||
#: cps/web.py:1303
|
||||
#: cps/web.py:1315
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "您现在已以'%(nickname)s'身份登录"
|
||||
|
||||
#: cps/web.py:1308
|
||||
#: cps/web.py:1320
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "用户名或密码错误"
|
||||
|
||||
#: cps/web.py:1310
|
||||
#: cps/web.py:1322
|
||||
msgid "login"
|
||||
msgstr "登录"
|
||||
|
||||
#: cps/web.py:1327
|
||||
#: cps/web.py:1339
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "请先配置SMTP邮箱..."
|
||||
|
||||
#: cps/web.py:1331
|
||||
#: cps/web.py:1343
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "此书已被成功发给 %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1335
|
||||
#: cps/web.py:1347
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr "发送这本书的时候出现错误: %(res)s"
|
||||
|
||||
#: cps/web.py:1337
|
||||
#: cps/web.py:1349
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "请先配置您的kindle电子邮箱地址..."
|
||||
|
||||
#: cps/web.py:1357
|
||||
#: cps/web.py:1369
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr "此书已被添加到书架: %(sname)s"
|
||||
|
||||
#: cps/web.py:1378
|
||||
#: cps/web.py:1390
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr "此书已从书架 %(sname)s 中删除"
|
||||
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#: cps/web.py:1409 cps/web.py:1433
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr "已存在书架 '%(title)s'。"
|
||||
|
||||
#: cps/web.py:1402
|
||||
#: cps/web.py:1414
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "书架 %(title)s 已被创建"
|
||||
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
#: cps/web.py:1416 cps/web.py:1444
|
||||
msgid "There was an error"
|
||||
msgstr "发生错误"
|
||||
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
#: cps/web.py:1417 cps/web.py:1419
|
||||
msgid "create a shelf"
|
||||
msgstr "创建书架"
|
||||
|
||||
#: cps/web.py:1430
|
||||
#: cps/web.py:1442
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr "书架 %(title)s 已被修改"
|
||||
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
#: cps/web.py:1445 cps/web.py:1447
|
||||
msgid "Edit a shelf"
|
||||
msgstr "编辑书架"
|
||||
|
||||
#: cps/web.py:1453
|
||||
#: cps/web.py:1465
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "成功删除书架 %(name)s"
|
||||
|
||||
#: cps/web.py:1475
|
||||
#: cps/web.py:1487
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "书架: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1506
|
||||
#: cps/web.py:1518
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr "修改书架 '%(name)s' 顺序"
|
||||
|
||||
#: cps/web.py:1568
|
||||
#: cps/web.py:1580
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "找到已使用此邮箱的账号。"
|
||||
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#: cps/web.py:1582 cps/web.py:1586
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "%(name)s 的资料"
|
||||
|
||||
#: cps/web.py:1571
|
||||
#: cps/web.py:1583
|
||||
msgid "Profile updated"
|
||||
msgstr "资料已更新"
|
||||
|
||||
#: cps/web.py:1584
|
||||
#: cps/web.py:1597
|
||||
msgid "Admin page"
|
||||
msgstr "管理页"
|
||||
|
||||
#: cps/web.py:1656
|
||||
#: cps/web.py:1668
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr "Calibre-web配置已更新"
|
||||
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
|
||||
msgid "Basic Configuration"
|
||||
msgstr "基本配置"
|
||||
|
||||
#: cps/web.py:1667
|
||||
#: cps/web.py:1679
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr "DB位置无效,请输入正确路径"
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
|
||||
msgid "Add new user"
|
||||
msgstr "添加新用户"
|
||||
|
||||
#: cps/web.py:1741
|
||||
#: cps/web.py:1753
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "用户 '%(user)s' 已被创建"
|
||||
|
||||
#: cps/web.py:1745
|
||||
#: cps/web.py:1757
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr "已找到使用此邮箱或昵称的账号。"
|
||||
|
||||
#: cps/web.py:1767
|
||||
#: cps/web.py:1779
|
||||
msgid "Mail settings updated"
|
||||
msgstr "邮箱设置已更新"
|
||||
|
||||
#: cps/web.py:1773
|
||||
#: cps/web.py:1785
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr "测试邮件已成功发送到 %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1776
|
||||
#: cps/web.py:1788
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr "发送测试邮件时发生错误: %(res)s"
|
||||
|
||||
#: cps/web.py:1777
|
||||
#: cps/web.py:1789
|
||||
msgid "Edit mail settings"
|
||||
msgstr "编辑邮箱设置"
|
||||
|
||||
#: cps/web.py:1805
|
||||
#: cps/web.py:1817
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "用户 '%(nick)s' 已被删除"
|
||||
|
||||
#: cps/web.py:1886
|
||||
#: cps/web.py:1898
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "用户 '%(nick)s' 已被更新"
|
||||
|
||||
#: cps/web.py:1889
|
||||
#: cps/web.py:1901
|
||||
msgid "An unknown error occured."
|
||||
msgstr "发生未知错误。"
|
||||
|
||||
#: cps/web.py:1892
|
||||
#: cps/web.py:1904
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "编辑用户 %(nick)s"
|
||||
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
|
||||
msgid "edit metadata"
|
||||
msgstr "编辑元数据"
|
||||
|
||||
#: cps/web.py:2133
|
||||
#: cps/web.py:2145
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "创建路径 %s 失败(权限拒绝)。"
|
||||
|
||||
#: cps/web.py:2138
|
||||
#: cps/web.py:2150
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "存储文件 %s 失败(权限拒绝)。"
|
||||
|
||||
#: cps/web.py:2143
|
||||
#: cps/web.py:2155
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "删除文件 %s 失败(权限拒绝)。"
|
||||
|
@ -344,145 +369,158 @@ msgstr "删除文件 %s 失败(权限拒绝)。"
|
|||
msgid "User list"
|
||||
msgstr "用户列表"
|
||||
|
||||
#: cps/templates/admin.html:7
|
||||
#: cps/templates/admin.html:8
|
||||
msgid "Nickname"
|
||||
msgstr "昵称"
|
||||
|
||||
#: cps/templates/admin.html:8
|
||||
#: cps/templates/admin.html:9
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:9
|
||||
#: cps/templates/admin.html:10
|
||||
msgid "Kindle"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:10
|
||||
#: cps/templates/admin.html:11
|
||||
msgid "DLS"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:11 cps/templates/layout.html:83
|
||||
#: cps/templates/admin.html:12 cps/templates/layout.html:85
|
||||
msgid "Admin"
|
||||
msgstr "管理"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
#: cps/templates/admin.html:13 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "下载"
|
||||
|
||||
#: cps/templates/admin.html:13 cps/templates/layout.html:76
|
||||
#: cps/templates/admin.html:14 cps/templates/layout.html:78
|
||||
msgid "Upload"
|
||||
msgstr "上传"
|
||||
|
||||
#: cps/templates/admin.html:14
|
||||
#: cps/templates/admin.html:15
|
||||
msgid "Edit"
|
||||
msgstr "编辑"
|
||||
|
||||
#: cps/templates/admin.html:15
|
||||
#: cps/templates/admin.html:16
|
||||
msgid "Passwd"
|
||||
msgstr "修改密码"
|
||||
|
||||
#: cps/templates/admin.html:34
|
||||
#: cps/templates/admin.html:35
|
||||
msgid "SMTP mail settings"
|
||||
msgstr "SMTP设置"
|
||||
|
||||
#: cps/templates/admin.html:37 cps/templates/email_edit.html:7
|
||||
#: cps/templates/admin.html:38 cps/templates/email_edit.html:7
|
||||
msgid "SMTP hostname"
|
||||
msgstr "SMTP地址"
|
||||
|
||||
#: cps/templates/admin.html:38
|
||||
#: cps/templates/admin.html:39
|
||||
msgid "SMTP port"
|
||||
msgstr "SMTP端口"
|
||||
|
||||
#: cps/templates/admin.html:39
|
||||
#: cps/templates/admin.html:40
|
||||
msgid "SSL"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:40 cps/templates/email_edit.html:23
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:23
|
||||
msgid "SMTP login"
|
||||
msgstr "SMTP用户名"
|
||||
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:27
|
||||
#: cps/templates/admin.html:42 cps/templates/email_edit.html:27
|
||||
msgid "SMTP password"
|
||||
msgstr "SMTP密码"
|
||||
|
||||
#: cps/templates/admin.html:42
|
||||
#: cps/templates/admin.html:43
|
||||
msgid "From mail"
|
||||
msgstr "来自邮箱"
|
||||
|
||||
#: cps/templates/admin.html:54
|
||||
#: cps/templates/admin.html:55
|
||||
msgid "Change SMTP settings"
|
||||
msgstr "修改SMTP设置"
|
||||
|
||||
#: cps/templates/admin.html:56 cps/templates/admin.html:76
|
||||
#: cps/templates/admin.html:57 cps/templates/admin.html:77
|
||||
msgid "Configuration"
|
||||
msgstr "配置"
|
||||
|
||||
#: cps/templates/admin.html:59
|
||||
#: cps/templates/admin.html:60
|
||||
msgid "Calibre DB dir"
|
||||
msgstr "Calibre DB目录"
|
||||
|
||||
#: cps/templates/admin.html:60 cps/templates/config_edit.html:32
|
||||
#: cps/templates/admin.html:61 cps/templates/config_edit.html:32
|
||||
msgid "Log Level"
|
||||
msgstr "日志级别"
|
||||
|
||||
#: cps/templates/admin.html:61
|
||||
#: cps/templates/admin.html:62
|
||||
msgid "Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: cps/templates/admin.html:62 cps/templates/config_edit.html:19
|
||||
#: cps/templates/admin.html:63 cps/templates/config_edit.html:19
|
||||
msgid "Books per page"
|
||||
msgstr "每页书籍数"
|
||||
|
||||
#: cps/templates/admin.html:63
|
||||
#: cps/templates/admin.html:64
|
||||
msgid "Uploading"
|
||||
msgstr "上传"
|
||||
|
||||
#: cps/templates/admin.html:64
|
||||
#: cps/templates/admin.html:65
|
||||
msgid "Public registration"
|
||||
msgstr "开放注册"
|
||||
|
||||
#: cps/templates/admin.html:65
|
||||
#: cps/templates/admin.html:66
|
||||
msgid "Anonymous browsing"
|
||||
msgstr "匿名浏览"
|
||||
|
||||
#: cps/templates/admin.html:77
|
||||
#: cps/templates/admin.html:78
|
||||
msgid "Administration"
|
||||
msgstr "管理"
|
||||
|
||||
#: cps/templates/admin.html:79
|
||||
#: cps/templates/admin.html:80
|
||||
msgid "Current commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Newest commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:83
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr "重启 Calibre-web"
|
||||
|
||||
#: cps/templates/admin.html:80
|
||||
#: cps/templates/admin.html:84
|
||||
msgid "Stop Calibre-web"
|
||||
msgstr "停止 Calibre-web"
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
#: cps/templates/admin.html:85
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
#: cps/templates/admin.html:86
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
#: cps/templates/admin.html:96
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr "您确定要重启 Calibre-web 吗?"
|
||||
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
#: cps/templates/admin.html:101 cps/templates/admin.html:115
|
||||
#: cps/templates/admin.html:136
|
||||
msgid "Ok"
|
||||
msgstr "确定"
|
||||
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: cps/templates/admin.html:102 cps/templates/admin.html:116
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
|
||||
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "后退"
|
||||
|
||||
#: cps/templates/admin.html:108
|
||||
#: cps/templates/admin.html:114
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr "您确定要关闭 Calibre-web 吗?"
|
||||
|
||||
#: cps/templates/admin.html:127
|
||||
msgid "Updating, please do not reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
|
||||
msgid "Book Title"
|
||||
msgstr "书名"
|
||||
|
@ -499,7 +537,7 @@ msgstr "简介"
|
|||
msgid "Tags"
|
||||
msgstr "标签"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "丛书"
|
||||
|
@ -594,7 +632,7 @@ msgstr "允许编辑"
|
|||
msgid "Allow Changing Password"
|
||||
msgstr "允许修改密码"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:93
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "登录"
|
||||
|
@ -675,11 +713,11 @@ msgstr "发现(随机书籍)"
|
|||
msgid "Start"
|
||||
msgstr "开始"
|
||||
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:61
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:58
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:124
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:126
|
||||
msgid "Hot Books"
|
||||
msgstr "热门书籍"
|
||||
|
||||
|
@ -687,7 +725,7 @@ msgstr "热门书籍"
|
|||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:129
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -695,7 +733,7 @@ msgstr ""
|
|||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "基于评分的热门书籍"
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:124
|
||||
msgid "New Books"
|
||||
msgstr "新书"
|
||||
|
||||
|
@ -707,7 +745,7 @@ msgstr "最新书籍"
|
|||
msgid "Show Random Books"
|
||||
msgstr "显示随机书籍"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:140
|
||||
msgid "Authors"
|
||||
msgstr "作者"
|
||||
|
||||
|
@ -727,51 +765,51 @@ msgstr "书籍按丛书排序"
|
|||
msgid "Toggle navigation"
|
||||
msgstr "切换导航"
|
||||
|
||||
#: cps/templates/layout.html:63
|
||||
#: cps/templates/layout.html:60
|
||||
msgid "Go!"
|
||||
msgstr "走起!"
|
||||
|
||||
#: cps/templates/layout.html:66
|
||||
#: cps/templates/layout.html:68
|
||||
msgid "Advanced Search"
|
||||
msgstr "高级搜索"
|
||||
|
||||
#: cps/templates/layout.html:87
|
||||
#: cps/templates/layout.html:89
|
||||
msgid "Logout"
|
||||
msgstr "注销"
|
||||
|
||||
#: cps/templates/layout.html:92 cps/templates/register.html:18
|
||||
#: cps/templates/layout.html:94 cps/templates/register.html:18
|
||||
msgid "Register"
|
||||
msgstr "注册"
|
||||
|
||||
#: cps/templates/layout.html:121
|
||||
#: cps/templates/layout.html:123
|
||||
msgid "Browse"
|
||||
msgstr "浏览"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:132
|
||||
msgid "Discover"
|
||||
msgstr "发现"
|
||||
|
||||
#: cps/templates/layout.html:133
|
||||
#: cps/templates/layout.html:135
|
||||
msgid "Categories"
|
||||
msgstr "分类"
|
||||
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:142 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "语言"
|
||||
|
||||
#: cps/templates/layout.html:143
|
||||
#: cps/templates/layout.html:145
|
||||
msgid "Public Shelves"
|
||||
msgstr "公开书架"
|
||||
|
||||
#: cps/templates/layout.html:147
|
||||
#: cps/templates/layout.html:149
|
||||
msgid "Your Shelves"
|
||||
msgstr "您的书架"
|
||||
|
||||
#: cps/templates/layout.html:152
|
||||
#: cps/templates/layout.html:154
|
||||
msgid "Create a Shelf"
|
||||
msgstr "创建书架"
|
||||
|
||||
#: cps/templates/layout.html:153
|
||||
#: cps/templates/layout.html:155
|
||||
msgid "About"
|
||||
msgstr "关于"
|
||||
|
||||
|
@ -790,7 +828,7 @@ msgid "Remember me"
|
|||
msgstr "记住我"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgid "Calibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
|
|
83
cps/web.py
83
cps/web.py
|
@ -3,7 +3,6 @@
|
|||
import mimetypes
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
from tempfile import gettempdir
|
||||
import textwrap
|
||||
from flask import Flask, render_template, session, request, Response, redirect, url_for, send_from_directory, \
|
||||
make_response, g, flash, abort
|
||||
|
@ -39,9 +38,10 @@ import sys
|
|||
import subprocess
|
||||
import re
|
||||
import db
|
||||
import thread
|
||||
from shutil import move, copyfile
|
||||
from tornado.ioloop import IOLoop
|
||||
import StringIO
|
||||
|
||||
|
||||
try:
|
||||
from wand.image import Image
|
||||
|
@ -51,9 +51,6 @@ except ImportError, e:
|
|||
use_generic_pdf_cover = True
|
||||
from cgi import escape
|
||||
|
||||
# Global variables
|
||||
global_task = None
|
||||
|
||||
|
||||
# Proxy Helper class
|
||||
class ReverseProxied(object):
|
||||
|
@ -476,7 +473,9 @@ def feed_search(term):
|
|||
filter = True
|
||||
if term:
|
||||
entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")),
|
||||
db.Books.series.any(db.Series.name.like("%" + term + "%")),
|
||||
db.Books.authors.any(db.Authors.name.like("%" + term + "%")),
|
||||
db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")),
|
||||
db.Books.title.like("%" + term + "%"))).filter(filter).all()
|
||||
entriescount = len(entries) if len(entries) > 0 else 1
|
||||
pagination = Pagination(1, entriescount, entriescount)
|
||||
|
@ -668,7 +667,7 @@ def get_opds_download_link(book_id, format):
|
|||
file_name = book.title
|
||||
if len(book.authors) > 0:
|
||||
file_name = book.authors[0].name + '-' + file_name
|
||||
file_name = helper.get_valid_filename(file_name)
|
||||
# file_name = helper.get_valid_filename(file_name)
|
||||
response = make_response(send_from_directory(os.path.join(config.config_calibre_dir, book.path), data.name + "." + format))
|
||||
response.headers["Content-Disposition"] = "attachment; filename=\"%s.%s\"" % (data.name, format)
|
||||
return response
|
||||
|
@ -716,10 +715,42 @@ def get_update_status():
|
|||
commit = requests.get('https://api.github.com/repos/janeczku/calibre-web/git/refs/heads/master').json()
|
||||
if "object" in commit and commit['object']['sha'] != commit_id:
|
||||
status['status'] = True
|
||||
commitdate = requests.get('https://api.github.com/repos/janeczku/calibre-web/git/commits/'+commit['object']['sha']).json()
|
||||
if "committer" in commitdate:
|
||||
status['commit'] = commitdate['committer']['date']
|
||||
else:
|
||||
status['commit'] = u'Unknown'
|
||||
else:
|
||||
status['status'] = False
|
||||
return json.dumps(status)
|
||||
|
||||
@app.route("/get_updater_status", methods=['GET','POST'])
|
||||
@login_required
|
||||
@admin_required
|
||||
def get_updater_status():
|
||||
status = {}
|
||||
if request.method == "POST":
|
||||
commit = request.form.to_dict()
|
||||
if "start" in commit and commit['start'] == 'True':
|
||||
text={
|
||||
"1": _(u'Requesting update package'),
|
||||
"2": _(u'Downloading update package'),
|
||||
"3": _(u'Unzipping update package'),
|
||||
"4": _(u'Files are replaced'),
|
||||
"5": _(u'Database connections are closed'),
|
||||
"6": _(u'Server is stopped'),
|
||||
"7": _(u'Update finished, please press okay and reload page')
|
||||
}
|
||||
status['text']=text
|
||||
helper.updater_thread = helper.Updater()
|
||||
helper.updater_thread.start()
|
||||
status['status']=helper.updater_thread.get_update_status()
|
||||
elif request.method == "GET":
|
||||
try:
|
||||
status['status']=helper.updater_thread.get_update_status()
|
||||
except:
|
||||
status['status'] = 7
|
||||
return json.dumps(status)
|
||||
|
||||
|
||||
@app.route("/get_languages_json", methods=['GET', 'POST'])
|
||||
|
@ -1018,9 +1049,9 @@ def stats():
|
|||
@login_required
|
||||
@admin_required
|
||||
def shutdown():
|
||||
global global_task
|
||||
# global global_task
|
||||
task = int(request.args.get("parameter").strip())
|
||||
global_task = task
|
||||
helper.global_task = task
|
||||
if task == 1 or task == 0: # valid commandos received
|
||||
# close all database connections
|
||||
db.session.close()
|
||||
|
@ -1032,7 +1063,7 @@ def shutdown():
|
|||
server.add_callback(server.stop)
|
||||
showtext = {}
|
||||
if task == 0:
|
||||
showtext['text'] = _(u'Performing Restart, please reload page')
|
||||
showtext['text'] = _(u'Server restarted, please reload page')
|
||||
else:
|
||||
showtext['text'] = _(u'Performing shutdown of server, please close window')
|
||||
return json.dumps(showtext)
|
||||
|
@ -1043,23 +1074,10 @@ def shutdown():
|
|||
@login_required
|
||||
@admin_required
|
||||
def update():
|
||||
global global_task
|
||||
r = requests.get('https://api.github.com/repos/janeczku/calibre-web/zipball/master', stream=True)
|
||||
fname = re.findall("filename=(.+)", r.headers['content-disposition'])[0]
|
||||
z = zipfile.ZipFile(StringIO.StringIO(r.content))
|
||||
tmp_dir = gettempdir()
|
||||
z.extractall(tmp_dir)
|
||||
helper.update_source(os.path.join(tmp_dir,os.path.splitext(fname)[0]),config.get_main_dir)
|
||||
global_task = 0
|
||||
db.session.close()
|
||||
db.engine.dispose()
|
||||
ub.session.close()
|
||||
ub.engine.dispose()
|
||||
# stop tornado server
|
||||
server = IOLoop.instance()
|
||||
server.add_callback(server.stop)
|
||||
helper.updater_thread = helper.Updater()
|
||||
flash(_(u"Update done"), category="info")
|
||||
return logout()
|
||||
return ""
|
||||
|
||||
|
||||
@app.route("/search", methods=["GET"])
|
||||
@login_required_if_no_ano
|
||||
|
@ -1073,6 +1091,7 @@ def search():
|
|||
entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")),
|
||||
db.Books.series.any(db.Series.name.like("%" + term + "%")),
|
||||
db.Books.authors.any(db.Authors.name.like("%" + term + "%")),
|
||||
db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")),
|
||||
db.Books.title.like("%" + term + "%"))).filter(filter).all()
|
||||
return render_title_template('search.html', searchterm=term, entries=entries)
|
||||
else:
|
||||
|
@ -1093,12 +1112,14 @@ def advanced_search():
|
|||
|
||||
author_name = request.args.get("author_name")
|
||||
book_title = request.args.get("book_title")
|
||||
publisher = request.args.get("publisher")
|
||||
if author_name: author_name = author_name.strip()
|
||||
if book_title: book_title = book_title.strip()
|
||||
if publisher: publisher = publisher.strip()
|
||||
if include_tag_inputs or exclude_tag_inputs or include_series_inputs or exclude_series_inputs or \
|
||||
include_languages_inputs or exclude_languages_inputs or author_name or book_title:
|
||||
include_languages_inputs or exclude_languages_inputs or author_name or book_title or publisher:
|
||||
searchterm = []
|
||||
searchterm.extend((author_name, book_title))
|
||||
searchterm.extend((author_name, book_title, publisher))
|
||||
tag_names = db.session.query(db.Tags).filter(db.Tags.id.in_(include_tag_inputs)).all()
|
||||
searchterm.extend(tag.name for tag in tag_names)
|
||||
# searchterm = " + ".join(filter(None, searchterm))
|
||||
|
@ -1114,7 +1135,8 @@ def advanced_search():
|
|||
searchterm.extend(language.name for language in language_names)
|
||||
searchterm = " + ".join(filter(None, searchterm))
|
||||
q = q.filter(db.Books.authors.any(db.Authors.name.like("%" + author_name + "%")),
|
||||
db.Books.title.like("%" + book_title + "%"))
|
||||
db.Books.title.like("%" + book_title + "%"),
|
||||
db.Books.publishers.any(db.Publishers.name.like("%" + publisher + "%")))
|
||||
for tag in include_tag_inputs:
|
||||
q = q.filter(db.Books.tags.any(db.Tags.id == tag))
|
||||
for tag in exclude_tag_inputs:
|
||||
|
@ -1598,14 +1620,13 @@ def basic_configuration():
|
|||
|
||||
|
||||
def configuration_helper(origin):
|
||||
global global_task
|
||||
# global global_task
|
||||
reboot_required = False
|
||||
db_change = False
|
||||
success = False
|
||||
if request.method == "POST":
|
||||
to_save = request.form.to_dict()
|
||||
content = ub.session.query(ub.Settings).first()
|
||||
# ToDo: check lib vaild, and change without restart
|
||||
if "config_calibre_dir" in to_save:
|
||||
if content.config_calibre_dir != to_save["config_calibre_dir"]:
|
||||
content.config_calibre_dir = to_save["config_calibre_dir"]
|
||||
|
@ -1674,7 +1695,7 @@ def configuration_helper(origin):
|
|||
# stop tornado server
|
||||
server = IOLoop.instance()
|
||||
server.add_callback(server.stop)
|
||||
global_task = 0
|
||||
helper.global_task = 0
|
||||
app.logger.info('Reboot required, restarting')
|
||||
if origin:
|
||||
success = True
|
||||
|
|
304
messages.pot
304
messages.pot
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+0100\n"
|
||||
"POT-Creation-Date: 2017-02-20 19:47+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -17,316 +17,341 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
|
||||
msgid "not installed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:136
|
||||
#: cps/helper.py:150
|
||||
#, python-format
|
||||
msgid "Failed to send mail: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:143
|
||||
#: cps/helper.py:157
|
||||
msgid "Calibre-web test email"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:144 cps/helper.py:154
|
||||
#: cps/helper.py:158 cps/helper.py:168
|
||||
msgid "This email has been sent via calibre web."
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
#: cps/helper.py:167 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:171 cps/helper.py:186
|
||||
#: cps/helper.py:185 cps/helper.py:200
|
||||
msgid "Could not find any formats suitable for sending by email"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:180
|
||||
#: cps/helper.py:194
|
||||
msgid "Could not convert epub to mobi"
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:206
|
||||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/ub.py:443
|
||||
#: cps/ub.py:434
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:778
|
||||
#: cps/web.py:734
|
||||
msgid "Requesting update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:735
|
||||
msgid "Downloading update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:736
|
||||
msgid "Unzipping update package"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:737
|
||||
msgid "Files are replaced"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:738
|
||||
msgid "Database connections are closed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:739
|
||||
msgid "Server is stopped"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:740
|
||||
msgid "Update finished, please press okay and reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:810
|
||||
msgid "Latest Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:803
|
||||
#: cps/web.py:835
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:813
|
||||
#: cps/web.py:845
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
#: cps/templates/index.xml:36 cps/web.py:854
|
||||
msgid "Random Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:835
|
||||
#: cps/web.py:867
|
||||
msgid "Author list"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:846
|
||||
#: cps/web.py:878
|
||||
#, python-format
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
|
||||
#: cps/web.py:2115
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
#: cps/templates/index.xml:57 cps/web.py:894
|
||||
msgid "Series list"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:874
|
||||
#: cps/web.py:906
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:907
|
||||
#: cps/web.py:939
|
||||
msgid "Available languages"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:922
|
||||
#: cps/web.py:954
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
#: cps/templates/index.xml:50 cps/web.py:967
|
||||
msgid "Category list"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:947
|
||||
#: cps/web.py:979
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1008
|
||||
#: cps/web.py:1040
|
||||
msgid "Statistics"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
#: cps/web.py:1061
|
||||
msgid "Server restarted, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1031
|
||||
#: cps/web.py:1063
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1055
|
||||
#: cps/web.py:1073
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
#: cps/web.py:1147 cps/web.py:1160
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
|
||||
msgid "Read a Book"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
#: cps/web.py:1276 cps/web.py:1713
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
|
||||
msgid "register"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1280
|
||||
#: cps/web.py:1292
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1285
|
||||
#: cps/web.py:1297
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1303
|
||||
#: cps/web.py:1315
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1308
|
||||
#: cps/web.py:1320
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1310
|
||||
#: cps/web.py:1322
|
||||
msgid "login"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1327
|
||||
#: cps/web.py:1339
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1331
|
||||
#: cps/web.py:1343
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1335
|
||||
#: cps/web.py:1347
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1337
|
||||
#: cps/web.py:1349
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1357
|
||||
#: cps/web.py:1369
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1378
|
||||
#: cps/web.py:1390
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#: cps/web.py:1409 cps/web.py:1433
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1402
|
||||
#: cps/web.py:1414
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
#: cps/web.py:1416 cps/web.py:1444
|
||||
msgid "There was an error"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
#: cps/web.py:1417 cps/web.py:1419
|
||||
msgid "create a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1430
|
||||
#: cps/web.py:1442
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
#: cps/web.py:1445 cps/web.py:1447
|
||||
msgid "Edit a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1453
|
||||
#: cps/web.py:1465
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1475
|
||||
#: cps/web.py:1487
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1506
|
||||
#: cps/web.py:1518
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1568
|
||||
#: cps/web.py:1580
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#: cps/web.py:1582 cps/web.py:1586
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1571
|
||||
#: cps/web.py:1583
|
||||
msgid "Profile updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1584
|
||||
#: cps/web.py:1597
|
||||
msgid "Admin page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1656
|
||||
#: cps/web.py:1668
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
|
||||
msgid "Basic Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1667
|
||||
#: cps/web.py:1679
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
|
||||
msgid "Add new user"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1741
|
||||
#: cps/web.py:1753
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1745
|
||||
#: cps/web.py:1757
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1767
|
||||
#: cps/web.py:1779
|
||||
msgid "Mail settings updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1773
|
||||
#: cps/web.py:1785
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1776
|
||||
#: cps/web.py:1788
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1777
|
||||
#: cps/web.py:1789
|
||||
msgid "Edit mail settings"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1805
|
||||
#: cps/web.py:1817
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1886
|
||||
#: cps/web.py:1898
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1889
|
||||
#: cps/web.py:1901
|
||||
msgid "An unknown error occured."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1892
|
||||
#: cps/web.py:1904
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
|
||||
msgid "edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2133
|
||||
#: cps/web.py:2145
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2138
|
||||
#: cps/web.py:2150
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2143
|
||||
#: cps/web.py:2155
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr ""
|
||||
|
@ -335,145 +360,158 @@ msgstr ""
|
|||
msgid "User list"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:7
|
||||
#: cps/templates/admin.html:8
|
||||
msgid "Nickname"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:8
|
||||
#: cps/templates/admin.html:9
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:9
|
||||
#: cps/templates/admin.html:10
|
||||
msgid "Kindle"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:10
|
||||
#: cps/templates/admin.html:11
|
||||
msgid "DLS"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:11 cps/templates/layout.html:83
|
||||
#: cps/templates/admin.html:12 cps/templates/layout.html:85
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
#: cps/templates/admin.html:13 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:13 cps/templates/layout.html:76
|
||||
#: cps/templates/admin.html:14 cps/templates/layout.html:78
|
||||
msgid "Upload"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:14
|
||||
#: cps/templates/admin.html:15
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:15
|
||||
#: cps/templates/admin.html:16
|
||||
msgid "Passwd"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:34
|
||||
#: cps/templates/admin.html:35
|
||||
msgid "SMTP mail settings"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:37 cps/templates/email_edit.html:7
|
||||
#: cps/templates/admin.html:38 cps/templates/email_edit.html:7
|
||||
msgid "SMTP hostname"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:38
|
||||
#: cps/templates/admin.html:39
|
||||
msgid "SMTP port"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:39
|
||||
#: cps/templates/admin.html:40
|
||||
msgid "SSL"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:40 cps/templates/email_edit.html:23
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:23
|
||||
msgid "SMTP login"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:41 cps/templates/email_edit.html:27
|
||||
#: cps/templates/admin.html:42 cps/templates/email_edit.html:27
|
||||
msgid "SMTP password"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:42
|
||||
#: cps/templates/admin.html:43
|
||||
msgid "From mail"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:54
|
||||
#: cps/templates/admin.html:55
|
||||
msgid "Change SMTP settings"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:56 cps/templates/admin.html:76
|
||||
#: cps/templates/admin.html:57 cps/templates/admin.html:77
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:59
|
||||
#: cps/templates/admin.html:60
|
||||
msgid "Calibre DB dir"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:60 cps/templates/config_edit.html:32
|
||||
#: cps/templates/admin.html:61 cps/templates/config_edit.html:32
|
||||
msgid "Log Level"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:61
|
||||
#: cps/templates/admin.html:62
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:62 cps/templates/config_edit.html:19
|
||||
#: cps/templates/admin.html:63 cps/templates/config_edit.html:19
|
||||
msgid "Books per page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:63
|
||||
#: cps/templates/admin.html:64
|
||||
msgid "Uploading"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:64
|
||||
#: cps/templates/admin.html:65
|
||||
msgid "Public registration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:65
|
||||
#: cps/templates/admin.html:66
|
||||
msgid "Anonymous browsing"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:77
|
||||
#: cps/templates/admin.html:78
|
||||
msgid "Administration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:79
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:80
|
||||
msgid "Stop Calibre-web"
|
||||
msgid "Current commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Newest commit timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:83
|
||||
msgid "Restart Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:84
|
||||
msgid "Stop Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:85
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
#: cps/templates/admin.html:86
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
#: cps/templates/admin.html:96
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
#: cps/templates/admin.html:101 cps/templates/admin.html:115
|
||||
#: cps/templates/admin.html:136
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: cps/templates/admin.html:102 cps/templates/admin.html:116
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
|
||||
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:108
|
||||
#: cps/templates/admin.html:114
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:127
|
||||
msgid "Updating, please do not reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
|
||||
msgid "Book Title"
|
||||
msgstr ""
|
||||
|
@ -490,7 +528,7 @@ msgstr ""
|
|||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
@ -585,7 +623,7 @@ msgstr ""
|
|||
msgid "Allow Changing Password"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:93
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
@ -666,11 +704,11 @@ msgstr ""
|
|||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:61
|
||||
#: cps/templates/index.xml:7 cps/templates/layout.html:58
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:124
|
||||
#: cps/templates/index.xml:15 cps/templates/layout.html:126
|
||||
msgid "Hot Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -678,7 +716,7 @@ msgstr ""
|
|||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:129
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -686,7 +724,7 @@ msgstr ""
|
|||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:124
|
||||
msgid "New Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -698,7 +736,7 @@ msgstr ""
|
|||
msgid "Show Random Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:140
|
||||
msgid "Authors"
|
||||
msgstr ""
|
||||
|
||||
|
@ -718,51 +756,51 @@ msgstr ""
|
|||
msgid "Toggle navigation"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:63
|
||||
#: cps/templates/layout.html:60
|
||||
msgid "Go!"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:66
|
||||
#: cps/templates/layout.html:68
|
||||
msgid "Advanced Search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:87
|
||||
#: cps/templates/layout.html:89
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:92 cps/templates/register.html:18
|
||||
#: cps/templates/layout.html:94 cps/templates/register.html:18
|
||||
msgid "Register"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:121
|
||||
#: cps/templates/layout.html:123
|
||||
msgid "Browse"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:132
|
||||
msgid "Discover"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:133
|
||||
#: cps/templates/layout.html:135
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:142 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:143
|
||||
#: cps/templates/layout.html:145
|
||||
msgid "Public Shelves"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:147
|
||||
#: cps/templates/layout.html:149
|
||||
msgid "Your Shelves"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:152
|
||||
#: cps/templates/layout.html:154
|
||||
msgid "Create a Shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:153
|
||||
#: cps/templates/layout.html:155
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
|
@ -781,7 +819,7 @@ msgid "Remember me"
|
|||
msgstr ""
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgid "Calibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
|
|
Loading…
Reference in New Issue
Block a user