Merge remote-tracking branch 'refs/remotes/janeczku/master'
This commit is contained in:
commit
0307ab6f1f
|
@ -99,7 +99,7 @@ def pdf_preview(tmp_file_path, tmp_dir):
|
|||
return None
|
||||
else:
|
||||
cover_file_name = os.path.splitext(tmp_file_path)[0] + ".cover.jpg"
|
||||
with Image(filename=tmp_file_path +"[0]", resolution=150) as img:
|
||||
with Image(filename=tmp_file_path + "[0]", resolution=150) as img:
|
||||
img.compression_quality = 88
|
||||
img.save(filename=os.path.join(tmp_dir, cover_file_name))
|
||||
return cover_file_name
|
||||
|
|
32
cps/db.py
32
cps/db.py
|
@ -32,29 +32,29 @@ def title_sort(title):
|
|||
Base = declarative_base()
|
||||
|
||||
books_authors_link = Table('books_authors_link', Base.metadata,
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('author', Integer, ForeignKey('authors.id'), primary_key=True)
|
||||
)
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('author', Integer, ForeignKey('authors.id'), primary_key=True)
|
||||
)
|
||||
|
||||
books_tags_link = Table('books_tags_link', Base.metadata,
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('tag', Integer, ForeignKey('tags.id'), primary_key=True)
|
||||
)
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('tag', Integer, ForeignKey('tags.id'), primary_key=True)
|
||||
)
|
||||
|
||||
books_series_link = Table('books_series_link', Base.metadata,
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('series', Integer, ForeignKey('series.id'), primary_key=True)
|
||||
)
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('series', Integer, ForeignKey('series.id'), primary_key=True)
|
||||
)
|
||||
|
||||
books_ratings_link = Table('books_ratings_link', Base.metadata,
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('rating', Integer, ForeignKey('ratings.id'), primary_key=True)
|
||||
)
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('rating', Integer, ForeignKey('ratings.id'), primary_key=True)
|
||||
)
|
||||
|
||||
books_languages_link = Table('books_languages_link', Base.metadata,
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('lang_code', Integer, ForeignKey('languages.id'), primary_key=True)
|
||||
)
|
||||
Column('book', Integer, ForeignKey('books.id'), primary_key=True),
|
||||
Column('lang_code', Integer, ForeignKey('languages.id'), primary_key=True)
|
||||
)
|
||||
|
||||
|
||||
class Identifiers(Base):
|
||||
|
@ -227,7 +227,7 @@ class Books(Base):
|
|||
identifiers = relationship('Identifiers', backref='books')
|
||||
|
||||
def __init__(self, title, sort, author_sort, timestamp, pubdate, series_index, last_modified, path, has_cover,
|
||||
authors, tags): # ToDO check Authors and tags necessary
|
||||
authors, tags):
|
||||
self.title = title
|
||||
self.sort = sort
|
||||
self.author_sort = author_sort
|
||||
|
|
32
cps/fb2.py
32
cps/fb2.py
|
@ -6,7 +6,7 @@ import os
|
|||
import uploader
|
||||
import StringIO
|
||||
|
||||
# ToDo: Check usage of original_file_name
|
||||
|
||||
def get_fb2_info(tmp_file_path, original_file_extension):
|
||||
|
||||
ns = {
|
||||
|
@ -20,37 +20,35 @@ def get_fb2_info(tmp_file_path, original_file_extension):
|
|||
authors = tree.xpath('/fb:FictionBook/fb:description/fb:title-info/fb:author', namespaces=ns)
|
||||
|
||||
def get_author(element):
|
||||
last_name=element.xpath('fb:last-name/text()', namespaces=ns)
|
||||
last_name = element.xpath('fb:last-name/text()', namespaces=ns)
|
||||
if len(last_name):
|
||||
last_name=last_name[0]
|
||||
last_name = last_name[0]
|
||||
else:
|
||||
last_name=u''
|
||||
middle_name=element.xpath('fb:middle-name/text()', namespaces=ns)
|
||||
last_name = u''
|
||||
middle_name = element.xpath('fb:middle-name/text()', namespaces=ns)
|
||||
if len(middle_name):
|
||||
middle_name=middle_name[0]
|
||||
middle_name = middle_name[0]
|
||||
else:
|
||||
middle_name=u''
|
||||
first_name=element.xpath('fb:first-name/text()', namespaces=ns)
|
||||
middle_name = u''
|
||||
first_name = element.xpath('fb:first-name/text()', namespaces=ns)
|
||||
if len(first_name):
|
||||
first_name=first_name[0]
|
||||
first_name = first_name[0]
|
||||
else:
|
||||
first_name=u''
|
||||
return first_name + ' ' + middle_name + ' ' + last_name
|
||||
first_name = u''
|
||||
return first_name + ' ' + middle_name + ' ' + last_name
|
||||
|
||||
author = unicode(", ".join(map(get_author, authors)))
|
||||
|
||||
title = tree.xpath('/fb:FictionBook/fb:description/fb:title-info/fb:book-title/text()', namespaces=ns)
|
||||
if len(title):
|
||||
title=unicode(title[0])
|
||||
title = unicode(title[0])
|
||||
else:
|
||||
title=u''
|
||||
title = u''
|
||||
description = tree.xpath('/fb:FictionBook/fb:description/fb:publish-info/fb:book-name/text()', namespaces=ns)
|
||||
if len(description):
|
||||
description=unicode(description[0])
|
||||
description = unicode(description[0])
|
||||
else:
|
||||
description=u''
|
||||
|
||||
|
||||
description = u''
|
||||
|
||||
return uploader.BookMeta(
|
||||
file_path=tmp_file_path,
|
||||
|
|
|
@ -22,6 +22,11 @@ from email.generator import Generator
|
|||
from flask_babel import gettext as _
|
||||
import subprocess
|
||||
import shutil
|
||||
try:
|
||||
import unidecode
|
||||
use_unidecode=True
|
||||
except:
|
||||
use_unidecode=False
|
||||
|
||||
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 ==
|
||||
|
@ -203,7 +208,7 @@ def get_attachment(file_path):
|
|||
return attachment
|
||||
except IOError:
|
||||
traceback.print_exc()
|
||||
message = (_('The requested file could not be read. Maybe wrong permissions?')) # ToDo: What is this?
|
||||
app.logger.error = (u'The requested file could not be read. Maybe wrong permissions?')
|
||||
return None
|
||||
|
||||
|
||||
|
@ -212,47 +217,54 @@ def get_valid_filename(value, replace_whitespace=True):
|
|||
Returns the given string converted to a string that can be used for a clean
|
||||
filename. Limits num characters to 128 max.
|
||||
"""
|
||||
value = value[:128]
|
||||
# re_slugify = re.compile('[^\w\s-]', re.UNICODE)
|
||||
value = unicodedata.normalize('NFKD', value)
|
||||
re_slugify = re.compile('[^\w\s-]', re.UNICODE)
|
||||
value = unicode(re_slugify.sub('', value).strip())
|
||||
if value[-1:] ==u'.':
|
||||
value = value[:-1]+u'_'
|
||||
if use_unidecode:
|
||||
value=(unidecode.unidecode(value)).strip()
|
||||
else:
|
||||
value=value.replace('§','SS')
|
||||
value=value.replace('ß','ss')
|
||||
value = unicodedata.normalize('NFKD', value)
|
||||
re_slugify = re.compile('[\W\s-]', re.UNICODE)
|
||||
value = unicode(re_slugify.sub('', value).strip())
|
||||
if replace_whitespace:
|
||||
value = re.sub('[\s]+', '_', value, flags=re.U)
|
||||
value = value.replace(u"\u00DF", "ss")
|
||||
#*+:\"/<>? werden durch _ ersetzt
|
||||
value = re.sub('[\*\+:\\\"/<>\?]+', '_', value, flags=re.U)
|
||||
|
||||
value = value[:128]
|
||||
return value
|
||||
|
||||
def get_sorted_author(value):
|
||||
regexes = ["^(JR|SR)\.?$","^I{1,3}\.?$","^IV\.?$"]
|
||||
combined = "(" + ")|(".join(regexes) + ")"
|
||||
value = value.split(" ")
|
||||
if re.match(combined,value[-1].upper()):
|
||||
value2 = value[-2] + ", " + " ".join(value[:-2]) + " " + value[-1]
|
||||
else:
|
||||
value2 = value[-1] + ", " + " ".join(value[:-1])
|
||||
return value2
|
||||
|
||||
def get_normalized_author(value):
|
||||
"""
|
||||
Normalizes sorted author name
|
||||
"""
|
||||
value = unicodedata.normalize('NFKD', value)
|
||||
value = re.sub('[^\w,\s]', '', value, flags=re.U)
|
||||
value = " ".join(value.split(", ")[::-1])
|
||||
return value
|
||||
|
||||
|
||||
def update_dir_stucture(book_id, calibrepath):
|
||||
db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort)
|
||||
book = db.session.query(db.Books).filter(db.Books.id == book_id).first()
|
||||
path = os.path.join(calibrepath, book.path)
|
||||
path = os.path.join(calibrepath, book.path)#.replace('/',os.path.sep)).replace('\\',os.path.sep)
|
||||
|
||||
authordir = book.path.split(os.sep)[0]
|
||||
new_authordir = get_valid_filename(book.authors[0].name, False)
|
||||
titledir = book.path.split(os.sep)[1]
|
||||
new_titledir = get_valid_filename(book.title, False) + " (" + str(book_id) + ")"
|
||||
authordir = book.path.split('/')[0]
|
||||
new_authordir = get_valid_filename(book.authors[0].name)
|
||||
titledir = book.path.split('/')[1]
|
||||
new_titledir = get_valid_filename(book.title) + " (" + str(book_id) + ")"
|
||||
|
||||
if titledir != new_titledir:
|
||||
new_title_path = os.path.join(os.path.dirname(path), new_titledir)
|
||||
os.rename(path, new_title_path)
|
||||
path = new_title_path
|
||||
book.path = book.path.split(os.sep)[0] + os.sep + new_titledir
|
||||
book.path = book.path.split('/')[0] + '/' + new_titledir
|
||||
|
||||
if authordir != new_authordir:
|
||||
new_author_path = os.path.join(os.path.join(calibrepath, new_authordir), os.path.basename(path))
|
||||
os.renames(path, new_author_path)
|
||||
book.path = new_authordir + os.sep + book.path.split(os.sep)[1]
|
||||
os.rename(path, new_author_path)
|
||||
book.path = new_authordir + '/' + book.path.split('/')[1]
|
||||
db.session.commit()
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{% block body %}
|
||||
<div class="discover">
|
||||
<h2>{{_('User list')}}</h2>
|
||||
<table class="table table-striped">
|
||||
<table class="table table-striped" id="table_user">
|
||||
<tr>
|
||||
<th>{{_('Nickname')}}</th>
|
||||
<th>{{_('Email')}}</th>
|
||||
|
@ -30,9 +30,9 @@
|
|||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<div class="btn btn-default"><a href="{{url_for('new_user')}}">{{_('Add new user')}}</a></div>
|
||||
<div class="btn btn-default" id="admin_new_user"><a href="{{url_for('new_user')}}">{{_('Add new user')}}</a></div>
|
||||
<h2>{{_('SMTP mail settings')}}</h2>
|
||||
<table class="table table-striped">
|
||||
<table class="table table-striped" id="table_email">
|
||||
<tr>
|
||||
<th>{{_('SMTP hostname')}}</th>
|
||||
<th>{{_('SMTP port')}}</th>
|
||||
|
@ -51,10 +51,10 @@
|
|||
|
||||
</table>
|
||||
|
||||
<div class="btn btn-default"><a href="{{url_for('edit_mailsettings')}}">{{_('Change SMTP settings')}}</a></div>
|
||||
<div class="btn btn-default" id="admin_edit_email"><a href="{{url_for('edit_mailsettings')}}">{{_('Change SMTP settings')}}</a></div>
|
||||
|
||||
<h2>{{_('Configuration')}}</h2>
|
||||
<table class="table table-striped">
|
||||
<table class="table table-striped" id="table_configuration">
|
||||
<tr>
|
||||
<th>{{_('Calibre DB dir')}}</th>
|
||||
<th>{{_('Log Level')}}</th>
|
||||
|
@ -76,6 +76,7 @@
|
|||
<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>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% extends "layout.html" %}
|
||||
{% block body %}
|
||||
<div class="discover">
|
||||
<h1>{{title}}</h1>
|
||||
<h2>{{title}}</h2>
|
||||
<form role="form" method="POST" autocomplete="off">
|
||||
<div class="form-group required">
|
||||
<label for="config_calibre_dir">{{_('Location of Calibre database')}}</label>
|
||||
|
@ -49,6 +49,27 @@
|
|||
<input type="checkbox" id="config_public_reg" name="config_public_reg" {% if content.config_public_reg %}checked{% endif %}>
|
||||
<label for="config_public_reg">{{_('Enable public registration')}}</label>
|
||||
</div>
|
||||
<h2>{{_('Default Settings for new users')}}</h2>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="admin_role" id="admin_role" {% if content.role_admin() %}checked{% endif %}>
|
||||
<label for="admin_role">{{_('Admin user')}}</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="download_role" id="download_role" {% if content.role_download() %}checked{% endif %}>
|
||||
<label for="download_role">{{_('Allow Downloads')}}</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="upload_role" id="upload_role" {% if content.role_upload() %}checked{% endif %}>
|
||||
<label for="upload_role">{{_('Allow Uploads')}}</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="edit_role" id="edit_role" {% if content.role_edit() %}checked{% endif %}>
|
||||
<label for="edit_role">{{_('Allow Edit')}}</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="passwd_role" id="passwd_role" {% if content.role_passwd() %}checked{% endif %}>
|
||||
<label for="passwd_role">{{_('Allow Changing Password')}}</label>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">{{_('Submit')}}</button>
|
||||
{% if not origin %}
|
||||
<a href="{{ url_for('admin') }}" class="btn btn-default">{{_('Back')}}</a>
|
||||
|
|
|
@ -70,8 +70,8 @@
|
|||
</div>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if entry.pubdate != '0101-01-01 00:00:00' %}
|
||||
<p>{{_('Publishing date')}}: {{entry.pubdate[:10]}} </p>
|
||||
{% if entry.pubdate[:10] != '0101-01-01' %}
|
||||
<p>{{_('Publishing date')}}: {{entry.pubdate|formatdate}} </p>
|
||||
{% endif %}
|
||||
{% if cc|length > 0 %}
|
||||
<p>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div class="row">
|
||||
|
||||
{% for entry in random %}
|
||||
<div class="col-sm-3 col-lg-2 col-xs-6 book">
|
||||
<div id="books_rand" class="col-sm-3 col-lg-2 col-xs-6 book">
|
||||
<div class="cover">
|
||||
<a href="{{ url_for('show_book', id=entry.id) }}">
|
||||
{% if entry.has_cover %}
|
||||
|
@ -41,7 +41,7 @@
|
|||
<h2>{{title}}</h2>
|
||||
<div class="row">
|
||||
{% for entry in entries %}
|
||||
<div class="col-sm-3 col-lg-2 col-xs-6 book">
|
||||
<div id="books" class="col-sm-3 col-lg-2 col-xs-6 book">
|
||||
<div class="cover">
|
||||
<a href="{{ url_for('show_book', id=entry.id) }}">
|
||||
{% if entry.has_cover %}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
{% for lang in languages %}
|
||||
<div class="row">
|
||||
<div class="col-xs-1" align="left"><span class="badge">{{lang_counter[loop.index0].bookcount}}</span></div>
|
||||
<div class="col-xs-6"><a href="{{url_for('language', name=lang.lang_code)}}">{{lang.name}}</a></div>
|
||||
<div class="col-xs-6"><a id="list_{{loop.index0}}" href="{{url_for('language', name=lang.lang_code)}}">{{lang.name}}</a></div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
|
|
@ -80,16 +80,16 @@
|
|||
{% endif %}
|
||||
{% endif %}
|
||||
{% if g.user.role_admin() %}
|
||||
<li><a href="{{url_for('admin')}}"><span class="glyphicon glyphicon-dashboard"></span> {{_('Admin')}}</a></li>
|
||||
<li><a id="top_admin" href="{{url_for('admin')}}"><span class="glyphicon glyphicon-dashboard"></span> {{_('Admin')}}</a></li>
|
||||
{% endif %}
|
||||
<li><a href="{{url_for('profile')}}"><span class="glyphicon glyphicon-user"></span> {{g.user.nickname}}</a></li>
|
||||
<li><a id="top_user" href="{{url_for('profile')}}"><span class="glyphicon glyphicon-user"></span> {{g.user.nickname}}</a></li>
|
||||
{% if not g.user.is_anonymous() %}
|
||||
<li><a href="{{url_for('logout')}}"><span class="glyphicon glyphicon-log-out"></span> {{_('Logout')}}</a></li>
|
||||
<li><a id="logout" href="{{url_for('logout')}}"><span class="glyphicon glyphicon-log-out"></span> {{_('Logout')}}</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if g.allow_registration and not g.user.is_authenticated %}
|
||||
<li><a href="{{url_for('login')}}"><span class="glyphicon glyphicon-log-in"></span> {{_('Login')}}</a></li>
|
||||
<li><a href="{{url_for('register')}}"><span class="glyphicon glyphicon-user"></span> {{_('Register')}}</a></li>
|
||||
<li><a id="login" href="{{url_for('login')}}"><span class="glyphicon glyphicon-log-in"></span> {{_('Login')}}</a></li>
|
||||
<li><a id="register" href="{{url_for('register')}}"><span class="glyphicon glyphicon-user"></span> {{_('Register')}}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
|
@ -98,17 +98,17 @@
|
|||
{% for message in get_flashed_messages(with_categories=True) %}
|
||||
{%if message[0] == "error" %}
|
||||
<div class="row-fluid" style="margin-top: -20px; text-align: center;">
|
||||
<div class="alert alert-danger">{{ message[1] }}</div>
|
||||
<div id="flash_alert" class="alert alert-danger">{{ message[1] }}</div>
|
||||
</div>
|
||||
{%endif%}
|
||||
{%if message[0] == "info" %}
|
||||
<div class="row-fluid" style="margin-top: -20px; text-align: center;">
|
||||
<div class="alert alert-info">{{ message[1] }}</div>
|
||||
<div id="flash_info" class="alert alert-info">{{ message[1] }}</div>
|
||||
</div>
|
||||
{%endif%}
|
||||
{%if message[0] == "success" %}
|
||||
<div class="row-fluid" style="margin-top: -20px; text-align: center;">
|
||||
<div class="alert alert-success">{{ message[1] }}</div>
|
||||
<div id="flash_success" class="alert alert-success">{{ message[1] }}</div>
|
||||
</div>
|
||||
{%endif%}
|
||||
{% endfor %}
|
||||
|
@ -119,25 +119,25 @@
|
|||
<nav class="navigation">
|
||||
<ul class="list-unstyled" id="scnd-nav" intent in-standard-append="nav.navigation" in-mobile-after="#main-nav" in-mobile-class="nav navbar-nav">
|
||||
<li class="nav-head hidden-xs">{{_('Browse')}}</li>
|
||||
<li><a href="{{url_for('index')}}"><span class="glyphicon glyphicon-book"></span> {{_('New Books')}}</a></li>
|
||||
<li id="nav_new"><a href="{{url_for('index')}}"><span class="glyphicon glyphicon-book"></span> {{_('New Books')}}</a></li>
|
||||
{% if g.user.show_hot_books() %}
|
||||
<li><a href="{{url_for('hot_books')}}"><span class="glyphicon glyphicon-fire"></span> {{_('Hot Books')}}</a></li>
|
||||
<li id="nav_hot"><a href="{{url_for('hot_books')}}"><span class="glyphicon glyphicon-fire"></span> {{_('Hot Books')}}</a></li>
|
||||
{%endif%}
|
||||
{% if g.user.show_best_rated_books() %}
|
||||
<li><a href="{{url_for('best_rated_books')}}"><span class="glyphicon glyphicon-star"></span> {{_('Best rated Books')}}</a></li>
|
||||
{%endif%}
|
||||
{% if g.user.show_random_books() %}
|
||||
<li><a href="{{url_for('discover')}}"><span class="glyphicon glyphicon-random"></span> {{_('Discover')}}</a></li>
|
||||
<li id="nav_rand"><a href="{{url_for('discover')}}"><span class="glyphicon glyphicon-random"></span> {{_('Discover')}}</a></li>
|
||||
{%endif%}
|
||||
{% if g.user.show_category() %}
|
||||
<li><a href="{{url_for('category_list')}}"><span class="glyphicon glyphicon-inbox"></span> {{_('Categories')}}</a></li>
|
||||
<li id="nav_cat"><a href="{{url_for('category_list')}}"><span class="glyphicon glyphicon-inbox"></span> {{_('Categories')}}</a></li>
|
||||
{%endif%}
|
||||
{% if g.user.show_series() %}
|
||||
<li><a href="{{url_for('series_list')}}"><span class="glyphicon glyphicon-bookmark"></span> {{_('Series')}}</a></li>
|
||||
<li id="nav_serie"><a href="{{url_for('series_list')}}"><span class="glyphicon glyphicon-bookmark"></span> {{_('Series')}}</a></li>
|
||||
{%endif%}
|
||||
<li><a href="{{url_for('author_list')}}"><span class="glyphicon glyphicon-user"></span> {{_('Authors')}}</a></li>
|
||||
<li id="nav_author"><a href="{{url_for('author_list')}}"><span class="glyphicon glyphicon-user"></span> {{_('Authors')}}</a></li>
|
||||
{% if g.user.filter_language() == 'all' and g.user.show_language() %}
|
||||
<li><a href="{{url_for('language_overview')}}"><span class="glyphicon glyphicon-flag"></span> {{_('Languages')}} </a></li>
|
||||
<li id="nav_lang"><a href="{{url_for('language_overview')}}"><span class="glyphicon glyphicon-flag"></span> {{_('Languages')}} </a></li>
|
||||
{%endif%}
|
||||
{% if g.user.is_authenticated or g.user.is_anonymous() %}
|
||||
<li class="nav-head hidden-xs">{{_('Public Shelves')}}</li>
|
||||
|
@ -160,9 +160,9 @@
|
|||
{% endif %}
|
||||
<div class="col-sm-10">
|
||||
{% block body %}{% endblock %}
|
||||
{% if pagination %}
|
||||
{% if pagination and (pagination.has_next or pagination.has_prev) %}
|
||||
<div class="pagination">
|
||||
{%- for page in pagination.iter_pages() %}
|
||||
{% for page in pagination.iter_pages() %}
|
||||
{% if page %}
|
||||
{% if page != pagination.page %}
|
||||
<a href="{{ url_for_other_page(page) }}">{{ page }}</a>
|
||||
|
@ -172,7 +172,7 @@
|
|||
{% else %}
|
||||
<span class="ellipsis">…</span>
|
||||
{% endif %}
|
||||
{%- endfor %}
|
||||
{% endfor %}
|
||||
{% if pagination.has_next %}
|
||||
<a class="next" href="{{ url_for_other_page(pagination.page + 1)
|
||||
}}">Next »</a>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
{% for entry in entries %}
|
||||
<div class="row">
|
||||
<div class="col-xs-1" align="left"><span class="badge">{{entry.count}}</span></div>
|
||||
<div class="col-xs-6"><a href="{{url_for(folder, id=entry[0].id )}}">{{entry[0].name}}</a></div>
|
||||
<div class="col-xs-6"><a id="list_{{loop.index0}}" href="{{url_for(folder, id=entry[0].id )}}">{{entry[0].name}}</a></div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<input type="checkbox" name="remember_me" checked> {{_('Remember me')}}
|
||||
</label>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">{{_('Submit')}}</button>
|
||||
<button type="submit" name="submit" class="btn btn-default">{{_('Submit')}}</button>
|
||||
</form>
|
||||
</div>
|
||||
{% if error %}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
|
||||
<LongName>{{instance}}</LongName>
|
||||
<ShortName>{{instance}}</ShortName>
|
||||
<Description>{{_('instanceCalibre Web ebook catalog')}}</Description>
|
||||
<Description>{{_('Calibre Web ebook catalog')}}</Description>
|
||||
<Developer>Janeczku</Developer>
|
||||
<Contact>https://github.com/janeczku/calibre-web</Contact>
|
||||
<Url type="text/html"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{% block body %}
|
||||
<h3>{{_('Linked libraries')}}</h3>
|
||||
|
||||
<table class="table">
|
||||
<table id="libs" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{_('Program library')}}</th>
|
||||
|
@ -30,7 +30,7 @@
|
|||
</table>
|
||||
|
||||
<h3>{{_('Calibre library statistics')}}</h3>
|
||||
<table class="table">
|
||||
<table id="stats" class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{bookcounter}}</th>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<label for="locale">{{_('Language')}}</label>
|
||||
<select name="locale" id="locale" class="form-control">
|
||||
{% for translation in translations %}
|
||||
<option value="{{translation}}" {% if translation.language == content.locale %}selected{% endif %} {% if new_user == 1 and loop.first %}selected{% endif %}>{{ translation.display_name }}</option>
|
||||
<option value="{{translation}}" {% if translation|string == content.locale %}selected{% endif %} {% if new_user == 1 and loop.first %}selected{% endif %}>{{ translation.display_name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
@ -108,7 +108,7 @@
|
|||
{% endif %}
|
||||
<button type="submit" id="submit" class="btn btn-default">{{_('Submit')}}</button>
|
||||
{% if not profile %}
|
||||
<a href="{{ url_for('admin') }}" class="btn btn-default">{{_('Back')}}</a>
|
||||
<a href="{{ url_for('admin') }}" id="back" class="btn btn-default">{{_('Back')}}</a>
|
||||
{% endif %}
|
||||
</form>
|
||||
|
||||
|
|
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-01-28 20:35+0100\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 19:54+0200\n"
|
||||
"Last-Translator: Ozzie Isaacs\n"
|
||||
"Language: de\n"
|
||||
|
@ -32,7 +32,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:109 cps/book_formats.py:113 cps/web.py:982
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
msgid "not installed"
|
||||
msgstr "Nicht installiert"
|
||||
|
||||
|
@ -49,7 +49,7 @@ msgstr "Calibre-web Test E-Mail"
|
|||
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:129
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "An Kindle senden"
|
||||
|
||||
|
@ -67,279 +67,287 @@ msgstr "Konnte .epub nicht nach .mobi konvertieren"
|
|||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr "Die angeforderte Datei konnte nicht gelesen werden. Falsche Dateirechte?"
|
||||
|
||||
#: cps/ub.py:380
|
||||
#: cps/ub.py:443
|
||||
msgid "Guest"
|
||||
msgstr "Gast"
|
||||
|
||||
#: cps/web.py:774
|
||||
#: cps/web.py:778
|
||||
msgid "Latest Books"
|
||||
msgstr "Letzte Bücher"
|
||||
|
||||
#: cps/web.py:799
|
||||
#: cps/web.py:803
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "Beliebte Bücher (die meisten Downloads)"
|
||||
|
||||
#: cps/templates/index.xml:29 cps/web.py:808
|
||||
#: cps/web.py:813
|
||||
msgid "Best rated books"
|
||||
msgstr "Best bewertete Bücher"
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
msgid "Random Books"
|
||||
msgstr "Zufällige Bücher"
|
||||
|
||||
#: cps/web.py:821
|
||||
#: cps/web.py:835
|
||||
msgid "Author list"
|
||||
msgstr "Autorenliste"
|
||||
|
||||
#: cps/web.py:838
|
||||
#: cps/web.py:846
|
||||
#, python-format
|
||||
msgid "Author: %(nam)s"
|
||||
msgstr "Autor: %(nam)s"
|
||||
msgid "Author: %(name)s"
|
||||
msgstr "Autor: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:851
|
||||
msgid "Series list"
|
||||
msgstr "Liste Serien"
|
||||
|
||||
#: cps/web.py:862
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Serie: %(serie)s"
|
||||
|
||||
#: cps/web.py:864 cps/web.py:961 cps/web.py:1179 cps/web.py:2041
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
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/web.py:895
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
msgid "Series list"
|
||||
msgstr "Liste Serien"
|
||||
|
||||
#: cps/web.py:874
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Serie: %(serie)s"
|
||||
|
||||
#: cps/web.py:907
|
||||
msgid "Available languages"
|
||||
msgstr "Verfügbare Sprachen"
|
||||
|
||||
#: cps/web.py:910
|
||||
#: cps/web.py:922
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "Sprache: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/web.py:923
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
msgid "Category list"
|
||||
msgstr "Kategorieliste"
|
||||
|
||||
#: cps/web.py:933
|
||||
#: cps/web.py:947
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "Kategorie: %(name)s"
|
||||
|
||||
#: cps/web.py:992
|
||||
#: cps/web.py:1008
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiken"
|
||||
|
||||
#: cps/web.py:1013
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr "Führe Neustart durch, bitte Seite neu laden"
|
||||
|
||||
#: cps/web.py:1015
|
||||
#: cps/web.py:1031
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr "Server wird runtergefahren, bitte Fenster schließen"
|
||||
|
||||
#: cps/web.py:1091 cps/web.py:1104
|
||||
#: cps/web.py:1055
|
||||
msgid "Update done"
|
||||
msgstr "Update durchgeführt"
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
msgid "search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: cps/web.py:1155 cps/web.py:1162 cps/web.py:1169 cps/web.py:1176
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
msgid "Read a Book"
|
||||
msgstr "Lese ein Buch"
|
||||
|
||||
#: cps/web.py:1227 cps/web.py:1649
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "Bitte alle Felder ausfüllen!"
|
||||
|
||||
#: cps/web.py:1228 cps/web.py:1244 cps/web.py:1249 cps/web.py:1251
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
msgid "register"
|
||||
msgstr "Registieren"
|
||||
|
||||
#: cps/web.py:1243
|
||||
#: cps/web.py:1280
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen."
|
||||
|
||||
#: cps/web.py:1248
|
||||
#: cps/web.py:1285
|
||||
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:1266
|
||||
#: cps/web.py:1303
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "Du bist nun eingeloggt als '%(nickname)s'"
|
||||
|
||||
#: cps/web.py:1270
|
||||
#: cps/web.py:1308
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "Falscher Benutzername oder Passwort"
|
||||
|
||||
#: cps/web.py:1272
|
||||
#: cps/web.py:1310
|
||||
msgid "login"
|
||||
msgstr "Login"
|
||||
|
||||
#: cps/web.py:1289
|
||||
#: cps/web.py:1327
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "Bitte zuerst die SMTP Mail Einstellung konfigurieren ..."
|
||||
|
||||
#: cps/web.py:1293
|
||||
#: cps/web.py:1331
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "Buch erfolgreich versandt an %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1297
|
||||
#: cps/web.py:1335
|
||||
#, 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:1299
|
||||
#: cps/web.py:1337
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "Bitte die Kindle E-Mail Adresse zuuerst konfigurieren..."
|
||||
|
||||
#: cps/web.py:1319
|
||||
#: cps/web.py:1357
|
||||
#, 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:1340
|
||||
#: cps/web.py:1378
|
||||
#, 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:1359 cps/web.py:1383
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#, 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:1364
|
||||
#: cps/web.py:1402
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "Bücherregal %(title)s erzeugt"
|
||||
|
||||
#: cps/web.py:1366 cps/web.py:1394
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
msgid "There was an error"
|
||||
msgstr "Es trat ein Fehler auf"
|
||||
|
||||
#: cps/web.py:1367 cps/web.py:1369
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
msgid "create a shelf"
|
||||
msgstr "Bücherregal erzeugen"
|
||||
|
||||
#: cps/web.py:1392
|
||||
#: cps/web.py:1430
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr "Bücherregal %(title)s verändert"
|
||||
|
||||
#: cps/web.py:1395 cps/web.py:1397
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
msgid "Edit a shelf"
|
||||
msgstr "Bücherregal editieren"
|
||||
|
||||
#: cps/web.py:1415
|
||||
#: cps/web.py:1453
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "Bücherregal %(name)s erfolgreich gelöscht"
|
||||
|
||||
#: cps/web.py:1437
|
||||
#: cps/web.py:1475
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "Bücherregal: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1468
|
||||
#: cps/web.py:1506
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr "Reihenfolge in Bücherregal '%(name)s' verändern"
|
||||
|
||||
#: cps/web.py:1528
|
||||
#: cps/web.py:1568
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "Es existiert ein Benutzerkonto für diese E-Mailadresse"
|
||||
|
||||
#: cps/web.py:1530 cps/web.py:1534
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "%(name)s's Profil"
|
||||
|
||||
#: cps/web.py:1531
|
||||
#: cps/web.py:1571
|
||||
msgid "Profile updated"
|
||||
msgstr "Profil aktualisiert"
|
||||
|
||||
#: cps/web.py:1544
|
||||
#: cps/web.py:1584
|
||||
msgid "Admin page"
|
||||
msgstr "Admin Seite"
|
||||
|
||||
#: cps/web.py:1604
|
||||
#: cps/web.py:1656
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr "Calibre-web Konfiguration wurde aktualisiert"
|
||||
|
||||
#: cps/web.py:1611 cps/web.py:1617 cps/web.py:1630
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
msgid "Basic Configuration"
|
||||
msgstr "Basis Konfiguration"
|
||||
|
||||
#: cps/web.py:1615
|
||||
#: cps/web.py:1667
|
||||
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:1651 cps/web.py:1693
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
msgid "Add new user"
|
||||
msgstr "Neuen Benutzer hinzufügen"
|
||||
|
||||
#: cps/web.py:1687
|
||||
#: cps/web.py:1741
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "Benutzer '%(user)s' angelegt"
|
||||
|
||||
#: cps/web.py:1691
|
||||
#: cps/web.py:1745
|
||||
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:1711
|
||||
#: cps/web.py:1767
|
||||
msgid "Mail settings updated"
|
||||
msgstr "E-Mail Einstellungen aktualisiert"
|
||||
|
||||
#: cps/web.py:1717
|
||||
#: cps/web.py:1773
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr "Test E-Mail erfolgreich an %(kindlemail)s versendet"
|
||||
|
||||
#: cps/web.py:1720
|
||||
#: cps/web.py:1776
|
||||
#, 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:1721
|
||||
#: cps/web.py:1777
|
||||
msgid "Edit mail settings"
|
||||
msgstr "E-Mail Einstellungen editieren"
|
||||
|
||||
#: cps/web.py:1749
|
||||
#: cps/web.py:1805
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "Benutzer '%(nick)s' gelöscht"
|
||||
|
||||
#: cps/web.py:1825
|
||||
#: cps/web.py:1886
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "Benutzer '%(nick)s' aktualisiert"
|
||||
|
||||
#: cps/web.py:1828
|
||||
#: cps/web.py:1889
|
||||
msgid "An unknown error occured."
|
||||
msgstr "Es ist ein unbekanter Fehler aufgetreten"
|
||||
|
||||
#: cps/web.py:1831
|
||||
#: cps/web.py:1892
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "Benutzer %(nick)s bearbeiten"
|
||||
|
||||
#: cps/web.py:2036 cps/web.py:2039 cps/web.py:2113
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
msgid "edit metadata"
|
||||
msgstr "Metadaten editieren"
|
||||
|
||||
#: cps/web.py:2071
|
||||
#: cps/web.py:2133
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "Fehler beim Erzeugen des Pfads %s (Zugriff verweigert)"
|
||||
|
||||
#: cps/web.py:2076
|
||||
#: cps/web.py:2138
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "Fehler beim speichern der Datei %s (Zugriff verweigert)"
|
||||
|
||||
#: cps/web.py:2081
|
||||
#: cps/web.py:2143
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "Fehler beim Löschen von Datei %s (Zugriff verweigert)"
|
||||
|
@ -368,7 +376,7 @@ msgstr "DLS"
|
|||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:116
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
|
@ -460,22 +468,30 @@ msgstr "Calibre-web Neustarten"
|
|||
msgid "Stop Calibre-web"
|
||||
msgstr "Stoppe Calibre-web"
|
||||
|
||||
#: cps/templates/admin.html:91
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Check for update"
|
||||
msgstr "Suche nach Update"
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
msgid "Perform Update"
|
||||
msgstr "Update durchführen"
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr "Calibre-web wirklich neustarten?"
|
||||
|
||||
#: cps/templates/admin.html:92 cps/templates/admin.html:107
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: cps/templates/admin.html:93 cps/templates/admin.html:108
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:54
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: 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:107
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: cps/templates/admin.html:106
|
||||
#: cps/templates/admin.html:108
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr "Calibre-web wirklich stoppen"
|
||||
|
||||
|
@ -495,7 +511,7 @@ msgstr "Beschreibung"
|
|||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:133
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "Serien"
|
||||
|
@ -528,9 +544,9 @@ msgstr "Nein"
|
|||
msgid "view book after edit"
|
||||
msgstr "Buch nach Bearbeitung ansehen"
|
||||
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:52
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
|
||||
#: cps/templates/login.html:19 cps/templates/search_form.html:75
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:105
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
|
||||
msgid "Submit"
|
||||
msgstr "Abschicken"
|
||||
|
||||
|
@ -566,7 +582,31 @@ msgstr "Anonymes Browsen aktivieren"
|
|||
msgid "Enable public registration"
|
||||
msgstr "Öffentliche Registrierung aktivieren"
|
||||
|
||||
#: cps/templates/config_edit.html:57 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:52
|
||||
msgid "Default Settings for new users"
|
||||
msgstr "Default Einstellungen für neue Benutzer"
|
||||
|
||||
#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
|
||||
msgid "Admin user"
|
||||
msgstr "Admin Benutzer"
|
||||
|
||||
#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
|
||||
msgid "Allow Downloads"
|
||||
msgstr "Downloads erlauben"
|
||||
|
||||
#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
|
||||
msgid "Allow Uploads"
|
||||
msgstr "Uploads erlauben"
|
||||
|
||||
#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
|
||||
msgid "Allow Edit"
|
||||
msgstr "Bearbeiten erlauben"
|
||||
|
||||
#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
|
||||
msgid "Allow Changing Password"
|
||||
msgstr "Passwort ändern erlauben"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "Login"
|
||||
|
@ -583,19 +623,23 @@ msgstr "von"
|
|||
msgid "language"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: cps/templates/detail.html:105
|
||||
#: cps/templates/detail.html:74
|
||||
msgid "Publishing date"
|
||||
msgstr "Herausgabedatum"
|
||||
|
||||
#: cps/templates/detail.html:106
|
||||
msgid "Description:"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
#: cps/templates/detail.html:133
|
||||
#: cps/templates/detail.html:134
|
||||
msgid "Read in browser"
|
||||
msgstr "Im Browser lesen"
|
||||
|
||||
#: cps/templates/detail.html:153
|
||||
#: cps/templates/detail.html:154
|
||||
msgid "Add to shelf"
|
||||
msgstr "Zu Bücherregal hinzufügen"
|
||||
|
||||
#: cps/templates/detail.html:193
|
||||
#: cps/templates/detail.html:194
|
||||
msgid "Edit metadata"
|
||||
msgstr "Metadaten bearbeiten"
|
||||
|
||||
|
@ -654,34 +698,42 @@ msgid "Hot Books"
|
|||
msgstr "Beliebte Bücher"
|
||||
|
||||
#: cps/templates/index.xml:19
|
||||
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
|
||||
msgid "Best rated Books"
|
||||
msgstr "Best bewertete Bücher"
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "Beliebte Veröffentlichungen dieses Katalogs basierend auf Bewertungen"
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
msgid "New Books"
|
||||
msgstr "Neue Bücher"
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
#: cps/templates/index.xml:33
|
||||
msgid "The latest Books"
|
||||
msgstr "Die neuesten Bücher"
|
||||
|
||||
#: cps/templates/index.xml:33
|
||||
#: cps/templates/index.xml:40
|
||||
msgid "Show Random Books"
|
||||
msgstr "Zeige zufällige Bücher"
|
||||
|
||||
#: cps/templates/index.xml:36 cps/templates/layout.html:135
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
msgid "Authors"
|
||||
msgstr "Autoren"
|
||||
|
||||
#: cps/templates/index.xml:40
|
||||
#: cps/templates/index.xml:47
|
||||
msgid "Books ordered by Author"
|
||||
msgstr "Bücher nach Autoren sortiert"
|
||||
|
||||
#: cps/templates/index.xml:47
|
||||
#: cps/templates/index.xml:54
|
||||
msgid "Books ordered by category"
|
||||
msgstr "Bücher nach Kategorien sortiert"
|
||||
|
||||
#: cps/templates/index.xml:54
|
||||
#: cps/templates/index.xml:61
|
||||
msgid "Books ordered by series"
|
||||
msgstr "Bücher nach Reihen geordnet"
|
||||
|
||||
|
@ -709,31 +761,31 @@ msgstr "Registrieren"
|
|||
msgid "Browse"
|
||||
msgstr "Browsen"
|
||||
|
||||
#: cps/templates/layout.html:127
|
||||
#: cps/templates/layout.html:130
|
||||
msgid "Discover"
|
||||
msgstr "Entdecke"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:133
|
||||
msgid "Categories"
|
||||
msgstr "Kategorien"
|
||||
|
||||
#: cps/templates/layout.html:137 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "Sprachen"
|
||||
|
||||
#: cps/templates/layout.html:140
|
||||
#: cps/templates/layout.html:143
|
||||
msgid "Public Shelves"
|
||||
msgstr "Öffentiche Bücherregale"
|
||||
|
||||
#: cps/templates/layout.html:144
|
||||
#: cps/templates/layout.html:147
|
||||
msgid "Your Shelves"
|
||||
msgstr "Deine Bücherregale"
|
||||
|
||||
#: cps/templates/layout.html:149
|
||||
#: cps/templates/layout.html:152
|
||||
msgid "Create a Shelf"
|
||||
msgstr "Bücherregal erzeugen"
|
||||
|
||||
#: cps/templates/layout.html:150
|
||||
#: cps/templates/layout.html:153
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
|
@ -751,6 +803,10 @@ msgstr "Passwort"
|
|||
msgid "Remember me"
|
||||
msgstr "Merken"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "Calibre Web ebook catalog"
|
||||
msgstr "Calibre Web Ebook Katalog"
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
msgid "Reflow text when sidebars are open."
|
||||
msgstr "Text umbrechen wenn Seitenleiste geöffnet ist"
|
||||
|
@ -851,6 +907,14 @@ msgstr "Bücher in dieser Bibliothek"
|
|||
msgid "Authors in this Library"
|
||||
msgstr "Autoren in dieser Bibliothek"
|
||||
|
||||
#: cps/templates/stats.html:45
|
||||
msgid "Categories in this Library"
|
||||
msgstr "Kategorien in dieser Bibliothek"
|
||||
|
||||
#: cps/templates/stats.html:49
|
||||
msgid "Series in this Library"
|
||||
msgstr "Serien in dieser Bibliothek"
|
||||
|
||||
#: cps/templates/user_edit.html:23
|
||||
msgid "Kindle E-Mail"
|
||||
msgstr "Kindle E-Mail"
|
||||
|
@ -872,50 +936,34 @@ msgid "Show hot books"
|
|||
msgstr "Zeige Auswahl Beliebte Bücher"
|
||||
|
||||
#: cps/templates/user_edit.html:53
|
||||
msgid "Show best rated books"
|
||||
msgstr "Zeige am besten bewertete Bücher"
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
msgid "Show language selection"
|
||||
msgstr "Zeige Sprachauswahl"
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
#: cps/templates/user_edit.html:61
|
||||
msgid "Show series selection"
|
||||
msgstr "Zeige Serienauswahl"
|
||||
|
||||
#: cps/templates/user_edit.html:61
|
||||
#: cps/templates/user_edit.html:65
|
||||
msgid "Show category selection"
|
||||
msgstr "Zeige Kategorienauswahl"
|
||||
|
||||
#: cps/templates/user_edit.html:65
|
||||
#: cps/templates/user_edit.html:69
|
||||
msgid "Show author selection"
|
||||
msgstr "Zeige Autorenauswahl"
|
||||
|
||||
#: cps/templates/user_edit.html:69
|
||||
#: cps/templates/user_edit.html:73
|
||||
msgid "Show random books in detail view"
|
||||
msgstr "Zeige zufällige Bücher in der Detailansicht"
|
||||
|
||||
#: cps/templates/user_edit.html:76
|
||||
msgid "Admin user"
|
||||
msgstr "Admin Benutzer"
|
||||
|
||||
#: cps/templates/user_edit.html:81
|
||||
msgid "Allow Downloads"
|
||||
msgstr "Downloads erlauben"
|
||||
|
||||
#: cps/templates/user_edit.html:85
|
||||
msgid "Allow Uploads"
|
||||
msgstr "Uploads erlauben"
|
||||
|
||||
#: cps/templates/user_edit.html:89
|
||||
msgid "Allow Edit"
|
||||
msgstr "Bearbeiten erlauben"
|
||||
|
||||
#: cps/templates/user_edit.html:94
|
||||
msgid "Allow Changing Password"
|
||||
msgstr "Passwort ändern erlauben"
|
||||
|
||||
#: cps/templates/user_edit.html:101
|
||||
#: cps/templates/user_edit.html:105
|
||||
msgid "Delete this user"
|
||||
msgstr "Benutzer löschen"
|
||||
|
||||
#: cps/templates/user_edit.html:112
|
||||
#: cps/templates/user_edit.html:116
|
||||
msgid "Recent Downloads"
|
||||
msgstr "Letzte Downloads"
|
||||
|
||||
|
|
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-01-28 20:35+0100\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+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,7 +25,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:109 cps/book_formats.py:113 cps/web.py:982
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
msgid "not installed"
|
||||
msgstr "No instalado"
|
||||
|
||||
|
@ -42,7 +42,7 @@ msgstr "Prueba de Correo Calibre-web"
|
|||
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:129
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "Enviar a Kindle"
|
||||
|
||||
|
@ -58,275 +58,283 @@ msgstr "No fue posible convertir de epub a mobi"
|
|||
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:380
|
||||
#: cps/ub.py:443
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:774
|
||||
#: cps/web.py:778
|
||||
msgid "Latest Books"
|
||||
msgstr "Libros recientes"
|
||||
|
||||
#: cps/web.py:799
|
||||
#: cps/web.py:803
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "Libros Populares (los mas descargados)"
|
||||
|
||||
#: cps/templates/index.xml:29 cps/web.py:808
|
||||
#: cps/web.py:813
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
msgid "Random Books"
|
||||
msgstr "Libros al Azar"
|
||||
|
||||
#: cps/web.py:821
|
||||
#: cps/web.py:835
|
||||
msgid "Author list"
|
||||
msgstr "Lista de Autores"
|
||||
|
||||
#: cps/web.py:838
|
||||
#: cps/web.py:846
|
||||
#, python-format
|
||||
msgid "Author: %(nam)s"
|
||||
msgstr "Autor : %(nam)s"
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:851
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
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
|
||||
msgid "Series list"
|
||||
msgstr "lista de Series"
|
||||
|
||||
#: cps/web.py:862
|
||||
#: cps/web.py:874
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Series : %(serie)s"
|
||||
|
||||
#: cps/web.py:864 cps/web.py:961 cps/web.py:1179 cps/web.py:2041
|
||||
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/web.py:895
|
||||
#: cps/web.py:907
|
||||
msgid "Available languages"
|
||||
msgstr "Lenguajes disponibles"
|
||||
|
||||
#: cps/web.py:910
|
||||
#: cps/web.py:922
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "Lenguaje: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/web.py:923
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
msgid "Category list"
|
||||
msgstr "Lista de Categorias"
|
||||
|
||||
#: cps/web.py:933
|
||||
#: cps/web.py:947
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "Categoria : %(name)s"
|
||||
|
||||
#: cps/web.py:992
|
||||
#: cps/web.py:1008
|
||||
msgid "Statistics"
|
||||
msgstr "Estadisticas"
|
||||
|
||||
#: cps/web.py:1013
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1015
|
||||
#: cps/web.py:1031
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1091 cps/web.py:1104
|
||||
#: cps/web.py:1055
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1155 cps/web.py:1162 cps/web.py:1169 cps/web.py:1176
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
msgid "Read a Book"
|
||||
msgstr "Leer un Libro"
|
||||
|
||||
#: cps/web.py:1227 cps/web.py:1649
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "Por favor llenar todos los campos!"
|
||||
|
||||
#: cps/web.py:1228 cps/web.py:1244 cps/web.py:1249 cps/web.py:1251
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
msgid "register"
|
||||
msgstr "Registrarse"
|
||||
|
||||
#: cps/web.py:1243
|
||||
#: cps/web.py:1280
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "Ocurrio un error. Intentar de nuevo mas tarde."
|
||||
|
||||
#: cps/web.py:1248
|
||||
#: cps/web.py:1285
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr "Usuario o direccion de correo en uso."
|
||||
|
||||
#: cps/web.py:1266
|
||||
#: cps/web.py:1303
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "Sesion iniciada como : '%(nickname)s'"
|
||||
|
||||
#: cps/web.py:1270
|
||||
#: cps/web.py:1308
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "Usuario o contraseña invalido"
|
||||
|
||||
#: cps/web.py:1272
|
||||
#: cps/web.py:1310
|
||||
msgid "login"
|
||||
msgstr "Iniciar Sesion"
|
||||
|
||||
#: cps/web.py:1289
|
||||
#: cps/web.py:1327
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "Configurar primero los parametros SMTP por favor..."
|
||||
|
||||
#: cps/web.py:1293
|
||||
#: cps/web.py:1331
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "Envio de Libro a %(kindlemail)s correctamente"
|
||||
|
||||
#: cps/web.py:1297
|
||||
#: cps/web.py:1335
|
||||
#, 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:1299
|
||||
#: cps/web.py:1337
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "Configurar primero la dirección de correo Kindle por favor..."
|
||||
|
||||
#: cps/web.py:1319
|
||||
#: cps/web.py:1357
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr "El libro fue agregado a el estante: %(sname)s"
|
||||
|
||||
#: cps/web.py:1340
|
||||
#: cps/web.py:1378
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr "El libro fue removido del estante: %(sname)s"
|
||||
|
||||
#: cps/web.py:1359 cps/web.py:1383
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#, 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:1364
|
||||
#: cps/web.py:1402
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "Estante %(title)s creado"
|
||||
|
||||
#: cps/web.py:1366 cps/web.py:1394
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
msgid "There was an error"
|
||||
msgstr "Hemos tenido un error"
|
||||
|
||||
#: cps/web.py:1367 cps/web.py:1369
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
msgid "create a shelf"
|
||||
msgstr "Crear un Estante"
|
||||
|
||||
#: cps/web.py:1392
|
||||
#: cps/web.py:1430
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1395 cps/web.py:1397
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
msgid "Edit a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1415
|
||||
#: cps/web.py:1453
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "Estante %(name)s fue borrado correctamente"
|
||||
|
||||
#: cps/web.py:1437
|
||||
#: cps/web.py:1475
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "Estante: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1468
|
||||
#: cps/web.py:1506
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1528
|
||||
#: cps/web.py:1568
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "Existe una cuenta vinculada a esta cuenta de correo."
|
||||
|
||||
#: cps/web.py:1530 cps/web.py:1534
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "Perfil de %(name)s"
|
||||
|
||||
#: cps/web.py:1531
|
||||
#: cps/web.py:1571
|
||||
msgid "Profile updated"
|
||||
msgstr "Perfil actualizado"
|
||||
|
||||
#: cps/web.py:1544
|
||||
#: cps/web.py:1584
|
||||
msgid "Admin page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1604
|
||||
#: cps/web.py:1656
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1611 cps/web.py:1617 cps/web.py:1630
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
msgid "Basic Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1615
|
||||
#: cps/web.py:1667
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1651 cps/web.py:1693
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
msgid "Add new user"
|
||||
msgstr "Agregar un nuevo usuario"
|
||||
|
||||
#: cps/web.py:1687
|
||||
#: cps/web.py:1741
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "Usuario '%(user)s' creado"
|
||||
|
||||
#: cps/web.py:1691
|
||||
#: cps/web.py:1745
|
||||
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:1711
|
||||
#: cps/web.py:1767
|
||||
msgid "Mail settings updated"
|
||||
msgstr "Parametros de correo actualizados"
|
||||
|
||||
#: cps/web.py:1717
|
||||
#: cps/web.py:1773
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr "Exito al realizar envio de prueba a %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1720
|
||||
#: cps/web.py:1776
|
||||
#, 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:1721
|
||||
#: cps/web.py:1777
|
||||
msgid "Edit mail settings"
|
||||
msgstr "Editar parametros de correo"
|
||||
|
||||
#: cps/web.py:1749
|
||||
#: cps/web.py:1805
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "Usuario '%(nick)s' borrado"
|
||||
|
||||
#: cps/web.py:1825
|
||||
#: cps/web.py:1886
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "Usuario '%(nick)s' Actualizado"
|
||||
|
||||
#: cps/web.py:1828
|
||||
#: cps/web.py:1889
|
||||
msgid "An unknown error occured."
|
||||
msgstr "Oups ! Error inesperado."
|
||||
|
||||
#: cps/web.py:1831
|
||||
#: cps/web.py:1892
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "Editar Usuario %(nick)s"
|
||||
|
||||
#: cps/web.py:2036 cps/web.py:2039 cps/web.py:2113
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
msgid "edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2071
|
||||
#: cps/web.py:2133
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "Fallo al crear la ruta %s (permiso negado)"
|
||||
|
||||
#: cps/web.py:2076
|
||||
#: cps/web.py:2138
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "Fallo al almacenar el archivo %s (permiso negado)"
|
||||
|
||||
#: cps/web.py:2081
|
||||
#: cps/web.py:2143
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "Fallo al borrar el archivo %s (permiso negado)"
|
||||
|
@ -355,7 +363,7 @@ msgstr "DLS"
|
|||
msgid "Admin"
|
||||
msgstr "Administracion"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:116
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "Descarga"
|
||||
|
||||
|
@ -447,22 +455,30 @@ msgstr ""
|
|||
msgid "Stop Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:91
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:92 cps/templates/admin.html:107
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93 cps/templates/admin.html:108
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:54
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: 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:107
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "Regresar"
|
||||
|
||||
#: cps/templates/admin.html:106
|
||||
#: cps/templates/admin.html:108
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
|
@ -482,7 +498,7 @@ msgstr "Descripcion"
|
|||
msgid "Tags"
|
||||
msgstr "Etiqueta"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:133
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "Series"
|
||||
|
@ -515,9 +531,9 @@ msgstr "No"
|
|||
msgid "view book after edit"
|
||||
msgstr "Ver libro tras la edicion"
|
||||
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:52
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
|
||||
#: cps/templates/login.html:19 cps/templates/search_form.html:75
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:105
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
|
@ -553,7 +569,31 @@ msgstr ""
|
|||
msgid "Enable public registration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:57 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:52
|
||||
msgid "Default Settings for new users"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
|
||||
msgid "Admin user"
|
||||
msgstr "Usuario Administrador"
|
||||
|
||||
#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
|
||||
msgid "Allow Downloads"
|
||||
msgstr "Permitir descargas"
|
||||
|
||||
#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
|
||||
msgid "Allow Uploads"
|
||||
msgstr "Permitir subidas de archivos"
|
||||
|
||||
#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
|
||||
msgid "Allow Edit"
|
||||
msgstr "Permitir editar"
|
||||
|
||||
#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
|
||||
msgid "Allow Changing Password"
|
||||
msgstr "Permitir cambiar la clave"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "Inicio de Sesion"
|
||||
|
@ -570,19 +610,23 @@ msgstr "de"
|
|||
msgid "language"
|
||||
msgstr "Lenguaje"
|
||||
|
||||
#: cps/templates/detail.html:105
|
||||
#: cps/templates/detail.html:74
|
||||
msgid "Publishing date"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:106
|
||||
msgid "Description:"
|
||||
msgstr "Descripcion :"
|
||||
|
||||
#: cps/templates/detail.html:133
|
||||
#: cps/templates/detail.html:134
|
||||
msgid "Read in browser"
|
||||
msgstr "Ver en el navegador"
|
||||
|
||||
#: cps/templates/detail.html:153
|
||||
#: cps/templates/detail.html:154
|
||||
msgid "Add to shelf"
|
||||
msgstr "Agregar al estante"
|
||||
|
||||
#: cps/templates/detail.html:193
|
||||
#: cps/templates/detail.html:194
|
||||
msgid "Edit metadata"
|
||||
msgstr "Editar la metadata"
|
||||
|
||||
|
@ -639,34 +683,42 @@ msgid "Hot Books"
|
|||
msgstr "Libros Populares"
|
||||
|
||||
#: cps/templates/index.xml:19
|
||||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "Publicaciones populares del catalogo basados en el puntaje."
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
msgid "New Books"
|
||||
msgstr "Nuevos Libros"
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
#: cps/templates/index.xml:33
|
||||
msgid "The latest Books"
|
||||
msgstr "Libros Recientes"
|
||||
|
||||
#: cps/templates/index.xml:33
|
||||
#: cps/templates/index.xml:40
|
||||
msgid "Show Random Books"
|
||||
msgstr "Mostrar libros al azar"
|
||||
|
||||
#: cps/templates/index.xml:36 cps/templates/layout.html:135
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
msgid "Authors"
|
||||
msgstr "Autores"
|
||||
|
||||
#: cps/templates/index.xml:40
|
||||
#: cps/templates/index.xml:47
|
||||
msgid "Books ordered by Author"
|
||||
msgstr "Libros ordenados por Autor"
|
||||
|
||||
#: cps/templates/index.xml:47
|
||||
#: cps/templates/index.xml:54
|
||||
msgid "Books ordered by category"
|
||||
msgstr "Libros ordenados por Categorias"
|
||||
|
||||
#: cps/templates/index.xml:54
|
||||
#: cps/templates/index.xml:61
|
||||
msgid "Books ordered by series"
|
||||
msgstr "Libros ordenados por Series"
|
||||
|
||||
|
@ -694,31 +746,31 @@ msgstr "Registro"
|
|||
msgid "Browse"
|
||||
msgstr "Explorar"
|
||||
|
||||
#: cps/templates/layout.html:127
|
||||
#: cps/templates/layout.html:130
|
||||
msgid "Discover"
|
||||
msgstr "Descubrir"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:133
|
||||
msgid "Categories"
|
||||
msgstr "Categoria"
|
||||
|
||||
#: cps/templates/layout.html:137 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "Lenguaje"
|
||||
|
||||
#: cps/templates/layout.html:140
|
||||
#: cps/templates/layout.html:143
|
||||
msgid "Public Shelves"
|
||||
msgstr "Estantes Publicos"
|
||||
|
||||
#: cps/templates/layout.html:144
|
||||
#: cps/templates/layout.html:147
|
||||
msgid "Your Shelves"
|
||||
msgstr "Sus Estantes"
|
||||
|
||||
#: cps/templates/layout.html:149
|
||||
#: cps/templates/layout.html:152
|
||||
msgid "Create a Shelf"
|
||||
msgstr "Crear un estante"
|
||||
|
||||
#: cps/templates/layout.html:150
|
||||
#: cps/templates/layout.html:153
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
|
@ -736,6 +788,10 @@ msgstr "Clave"
|
|||
msgid "Remember me"
|
||||
msgstr "Recordarme"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
msgid "Reflow text when sidebars are open."
|
||||
msgstr "Redimensionar el texto cuando las barras laterales estan abiertas"
|
||||
|
@ -836,6 +892,14 @@ msgstr "Libros en esta Biblioteca"
|
|||
msgid "Authors in this Library"
|
||||
msgstr "Autores en esta Biblioteca"
|
||||
|
||||
#: cps/templates/stats.html:45
|
||||
msgid "Categories in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/stats.html:49
|
||||
msgid "Series in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:23
|
||||
msgid "Kindle E-Mail"
|
||||
msgstr "Correo del Kindle"
|
||||
|
@ -857,50 +921,34 @@ msgid "Show hot books"
|
|||
msgstr "Mostrar libros populares"
|
||||
|
||||
#: cps/templates/user_edit.html:53
|
||||
msgid "Show best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
msgid "Show language selection"
|
||||
msgstr "Mostrar lenguaje seleccionado"
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
#: cps/templates/user_edit.html:61
|
||||
msgid "Show series selection"
|
||||
msgstr "Mostrar series seleccionadas"
|
||||
|
||||
#: cps/templates/user_edit.html:61
|
||||
#: cps/templates/user_edit.html:65
|
||||
msgid "Show category selection"
|
||||
msgstr "Mostrar categorias elegidas"
|
||||
|
||||
#: cps/templates/user_edit.html:65
|
||||
#: cps/templates/user_edit.html:69
|
||||
msgid "Show author selection"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:69
|
||||
#: cps/templates/user_edit.html:73
|
||||
msgid "Show random books in detail view"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:76
|
||||
msgid "Admin user"
|
||||
msgstr "Usuario Administrador"
|
||||
|
||||
#: cps/templates/user_edit.html:81
|
||||
msgid "Allow Downloads"
|
||||
msgstr "Permitir descargas"
|
||||
|
||||
#: cps/templates/user_edit.html:85
|
||||
msgid "Allow Uploads"
|
||||
msgstr "Permitir subidas de archivos"
|
||||
|
||||
#: cps/templates/user_edit.html:89
|
||||
msgid "Allow Edit"
|
||||
msgstr "Permitir editar"
|
||||
|
||||
#: cps/templates/user_edit.html:94
|
||||
msgid "Allow Changing Password"
|
||||
msgstr "Permitir cambiar la clave"
|
||||
|
||||
#: cps/templates/user_edit.html:101
|
||||
#: cps/templates/user_edit.html:105
|
||||
msgid "Delete this user"
|
||||
msgstr "Borrar este usuario"
|
||||
|
||||
#: cps/templates/user_edit.html:112
|
||||
#: cps/templates/user_edit.html:116
|
||||
msgid "Recent Downloads"
|
||||
msgstr "Descargas Recientes"
|
||||
|
||||
|
|
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-01-28 20:35+0100\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+0100\n"
|
||||
"PO-Revision-Date: 2016-11-13 18:35+0100\n"
|
||||
"Last-Translator: Nicolas Roudninski <nicoroud@gmail.com>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -31,7 +31,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:109 cps/book_formats.py:113 cps/web.py:982
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
msgid "not installed"
|
||||
msgstr ""
|
||||
|
||||
|
@ -48,7 +48,7 @@ msgstr ""
|
|||
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:129
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "Envoyer ver Kindle"
|
||||
|
||||
|
@ -66,277 +66,285 @@ msgstr ""
|
|||
"Le fichier demandé ne peux pas être lu. Peut-être de mauvaises "
|
||||
"permissions ?"
|
||||
|
||||
#: cps/ub.py:380
|
||||
#: cps/ub.py:443
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:774
|
||||
#: cps/web.py:778
|
||||
msgid "Latest Books"
|
||||
msgstr "Derniers livres"
|
||||
|
||||
#: cps/web.py:799
|
||||
#: cps/web.py:803
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "Livres populaires (les plus téléchargés)"
|
||||
|
||||
#: cps/templates/index.xml:29 cps/web.py:808
|
||||
#: cps/web.py:813
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
msgid "Random Books"
|
||||
msgstr "Livres au hasard"
|
||||
|
||||
#: cps/web.py:821
|
||||
#: cps/web.py:835
|
||||
msgid "Author list"
|
||||
msgstr "Liste des auteurs"
|
||||
|
||||
#: cps/web.py:838
|
||||
#: cps/web.py:846
|
||||
#, python-format
|
||||
msgid "Author: %(nam)s"
|
||||
msgstr "Auteur : %(nam)s"
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:851
|
||||
msgid "Series list"
|
||||
msgstr "Liste des séries"
|
||||
|
||||
#: cps/web.py:862
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Séries : %(serie)s"
|
||||
|
||||
#: cps/web.py:864 cps/web.py:961 cps/web.py:1179 cps/web.py:2041
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
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/web.py:895
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
msgid "Series list"
|
||||
msgstr "Liste des séries"
|
||||
|
||||
#: cps/web.py:874
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "Séries : %(serie)s"
|
||||
|
||||
#: cps/web.py:907
|
||||
msgid "Available languages"
|
||||
msgstr "Langues disponibles"
|
||||
|
||||
#: cps/web.py:910
|
||||
#: cps/web.py:922
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "Langue : %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/web.py:923
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
msgid "Category list"
|
||||
msgstr "Liste des catégories"
|
||||
|
||||
#: cps/web.py:933
|
||||
#: cps/web.py:947
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "Catégorie : %(name)s"
|
||||
|
||||
#: cps/web.py:992
|
||||
#: cps/web.py:1008
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiques"
|
||||
|
||||
#: cps/web.py:1013
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1015
|
||||
#: cps/web.py:1031
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1091 cps/web.py:1104
|
||||
#: cps/web.py:1055
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1155 cps/web.py:1162 cps/web.py:1169 cps/web.py:1176
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
msgid "Read a Book"
|
||||
msgstr "Lire un livre"
|
||||
|
||||
#: cps/web.py:1227 cps/web.py:1649
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "SVP, complétez tous les champs !"
|
||||
|
||||
#: cps/web.py:1228 cps/web.py:1244 cps/web.py:1249 cps/web.py:1251
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
msgid "register"
|
||||
msgstr "S'enregistrer"
|
||||
|
||||
#: cps/web.py:1243
|
||||
#: cps/web.py:1280
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "Une erreur a eu lieu. Merci de réessayez plus tard."
|
||||
|
||||
#: cps/web.py:1248
|
||||
#: cps/web.py:1285
|
||||
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:1266
|
||||
#: cps/web.py:1303
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'"
|
||||
|
||||
#: cps/web.py:1270
|
||||
#: cps/web.py:1308
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "Mauvais nom d'utilisateur ou mot de passe"
|
||||
|
||||
#: cps/web.py:1272
|
||||
#: cps/web.py:1310
|
||||
msgid "login"
|
||||
msgstr "Connexion"
|
||||
|
||||
#: cps/web.py:1289
|
||||
#: cps/web.py:1327
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "Veillez configurer les paramètres smtp d'abord..."
|
||||
|
||||
#: cps/web.py:1293
|
||||
#: cps/web.py:1331
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "Livres envoyés à %(kindlemail)s avec succès"
|
||||
|
||||
#: cps/web.py:1297
|
||||
#: cps/web.py:1335
|
||||
#, 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:1299
|
||||
#: cps/web.py:1337
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "Veuillez configurer votre adresse kindle d'abord..."
|
||||
|
||||
#: cps/web.py:1319
|
||||
#: cps/web.py:1357
|
||||
#, 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:1340
|
||||
#: cps/web.py:1378
|
||||
#, 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:1359 cps/web.py:1383
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#, 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:1364
|
||||
#: cps/web.py:1402
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "Étagère %(title)s créée"
|
||||
|
||||
#: cps/web.py:1366 cps/web.py:1394
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
msgid "There was an error"
|
||||
msgstr "Il y a eu une erreur"
|
||||
|
||||
#: cps/web.py:1367 cps/web.py:1369
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
msgid "create a shelf"
|
||||
msgstr "Créer une étagère"
|
||||
|
||||
#: cps/web.py:1392
|
||||
#: cps/web.py:1430
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1395 cps/web.py:1397
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
msgid "Edit a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1415
|
||||
#: cps/web.py:1453
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "L'étagère %(name)s a été supprimé avec succès"
|
||||
|
||||
#: cps/web.py:1437
|
||||
#: cps/web.py:1475
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "Étagère : '%(name)s'"
|
||||
|
||||
#: cps/web.py:1468
|
||||
#: cps/web.py:1506
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1528
|
||||
#: cps/web.py:1568
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "Un compte avec cette adresse de courriel existe déjà."
|
||||
|
||||
#: cps/web.py:1530 cps/web.py:1534
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "Profil de %(name)s"
|
||||
|
||||
#: cps/web.py:1531
|
||||
#: cps/web.py:1571
|
||||
msgid "Profile updated"
|
||||
msgstr "Profil mis à jour"
|
||||
|
||||
#: cps/web.py:1544
|
||||
#: cps/web.py:1584
|
||||
msgid "Admin page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1604
|
||||
#: cps/web.py:1656
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1611 cps/web.py:1617 cps/web.py:1630
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
msgid "Basic Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1615
|
||||
#: cps/web.py:1667
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1651 cps/web.py:1693
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
msgid "Add new user"
|
||||
msgstr "Ajouter un nouvel utilisateur"
|
||||
|
||||
#: cps/web.py:1687
|
||||
#: cps/web.py:1741
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "Utilisateur '%(user)s' créé"
|
||||
|
||||
#: cps/web.py:1691
|
||||
#: cps/web.py:1745
|
||||
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:1711
|
||||
#: cps/web.py:1767
|
||||
msgid "Mail settings updated"
|
||||
msgstr "Paramètres de courriel mis à jour"
|
||||
|
||||
#: cps/web.py:1717
|
||||
#: cps/web.py:1773
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1720
|
||||
#: cps/web.py:1776
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1721
|
||||
#: cps/web.py:1777
|
||||
msgid "Edit mail settings"
|
||||
msgstr "Éditer les paramètres de courriel"
|
||||
|
||||
#: cps/web.py:1749
|
||||
#: cps/web.py:1805
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "Utilisateur '%(nick)s' supprimé"
|
||||
|
||||
#: cps/web.py:1825
|
||||
#: cps/web.py:1886
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "Utilisateur '%(nick)s' mis à jour"
|
||||
|
||||
#: cps/web.py:1828
|
||||
#: cps/web.py:1889
|
||||
msgid "An unknown error occured."
|
||||
msgstr "Oups ! Une erreur inconnue a eu lieu."
|
||||
|
||||
#: cps/web.py:1831
|
||||
#: cps/web.py:1892
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "Éditer l'utilisateur %(nick)s"
|
||||
|
||||
#: cps/web.py:2036 cps/web.py:2039 cps/web.py:2113
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
msgid "edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2071
|
||||
#: cps/web.py:2133
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "Impossible de créer le chemin %s (permission refusée)"
|
||||
|
||||
#: cps/web.py:2076
|
||||
#: cps/web.py:2138
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "Impossible d'enregistrer le fichier %s (permission refusée)"
|
||||
|
||||
#: cps/web.py:2081
|
||||
#: cps/web.py:2143
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "Impossible de supprimer le fichier %s (permission refusée)"
|
||||
|
@ -365,7 +373,7 @@ msgstr "DLS"
|
|||
msgid "Admin"
|
||||
msgstr "Administration"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:116
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
|
@ -457,22 +465,30 @@ msgstr ""
|
|||
msgid "Stop Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:91
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:92 cps/templates/admin.html:107
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93 cps/templates/admin.html:108
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:54
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: 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:107
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "Retour"
|
||||
|
||||
#: cps/templates/admin.html:106
|
||||
#: cps/templates/admin.html:108
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
|
@ -492,7 +508,7 @@ msgstr "Description"
|
|||
msgid "Tags"
|
||||
msgstr "Étiquette"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:133
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "Séries"
|
||||
|
@ -525,9 +541,9 @@ msgstr "Non"
|
|||
msgid "view book after edit"
|
||||
msgstr "Voir le livre après l'édition"
|
||||
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:52
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
|
||||
#: cps/templates/login.html:19 cps/templates/search_form.html:75
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:105
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
|
||||
msgid "Submit"
|
||||
msgstr "Soumettre"
|
||||
|
||||
|
@ -563,7 +579,31 @@ msgstr ""
|
|||
msgid "Enable public registration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:57 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:52
|
||||
msgid "Default Settings for new users"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
|
||||
msgid "Admin user"
|
||||
msgstr "Utilisateur admin"
|
||||
|
||||
#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
|
||||
msgid "Allow Downloads"
|
||||
msgstr "Permettre les téléchargements"
|
||||
|
||||
#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
|
||||
msgid "Allow Uploads"
|
||||
msgstr "Permettre les téléversements"
|
||||
|
||||
#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
|
||||
msgid "Allow Edit"
|
||||
msgstr "Permettre l'édition"
|
||||
|
||||
#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
|
||||
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/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "Connexion"
|
||||
|
@ -580,19 +620,23 @@ msgstr ""
|
|||
msgid "language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: cps/templates/detail.html:105
|
||||
#: cps/templates/detail.html:74
|
||||
msgid "Publishing date"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:106
|
||||
msgid "Description:"
|
||||
msgstr "Description :"
|
||||
|
||||
#: cps/templates/detail.html:133
|
||||
#: cps/templates/detail.html:134
|
||||
msgid "Read in browser"
|
||||
msgstr "Lire dans le navigateur"
|
||||
|
||||
#: cps/templates/detail.html:153
|
||||
#: cps/templates/detail.html:154
|
||||
msgid "Add to shelf"
|
||||
msgstr "Ajouter à l'étagère"
|
||||
|
||||
#: cps/templates/detail.html:193
|
||||
#: cps/templates/detail.html:194
|
||||
msgid "Edit metadata"
|
||||
msgstr "Éditer les métadonnées"
|
||||
|
||||
|
@ -649,34 +693,42 @@ msgid "Hot Books"
|
|||
msgstr "Livres populaires"
|
||||
|
||||
#: cps/templates/index.xml:19
|
||||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "Publications populaires de ce catalogue sur la base de notes."
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
msgid "New Books"
|
||||
msgstr "Nouveaux livres"
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
#: cps/templates/index.xml:33
|
||||
msgid "The latest Books"
|
||||
msgstr "Les derniers livres"
|
||||
|
||||
#: cps/templates/index.xml:33
|
||||
#: cps/templates/index.xml:40
|
||||
msgid "Show Random Books"
|
||||
msgstr "Montrer des livres au hasard"
|
||||
|
||||
#: cps/templates/index.xml:36 cps/templates/layout.html:135
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
msgid "Authors"
|
||||
msgstr "Auteurs"
|
||||
|
||||
#: cps/templates/index.xml:40
|
||||
#: cps/templates/index.xml:47
|
||||
msgid "Books ordered by Author"
|
||||
msgstr "Livres classés par auteur"
|
||||
|
||||
#: cps/templates/index.xml:47
|
||||
#: cps/templates/index.xml:54
|
||||
msgid "Books ordered by category"
|
||||
msgstr "Livres classés par catégorie"
|
||||
|
||||
#: cps/templates/index.xml:54
|
||||
#: cps/templates/index.xml:61
|
||||
msgid "Books ordered by series"
|
||||
msgstr "Livres classés par série"
|
||||
|
||||
|
@ -704,31 +756,31 @@ msgstr "S'enregistrer"
|
|||
msgid "Browse"
|
||||
msgstr "Explorer"
|
||||
|
||||
#: cps/templates/layout.html:127
|
||||
#: cps/templates/layout.html:130
|
||||
msgid "Discover"
|
||||
msgstr "Découvrir"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:133
|
||||
msgid "Categories"
|
||||
msgstr "Catégories"
|
||||
|
||||
#: cps/templates/layout.html:137 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "Langues"
|
||||
|
||||
#: cps/templates/layout.html:140
|
||||
#: cps/templates/layout.html:143
|
||||
msgid "Public Shelves"
|
||||
msgstr "Étagères publiques"
|
||||
|
||||
#: cps/templates/layout.html:144
|
||||
#: cps/templates/layout.html:147
|
||||
msgid "Your Shelves"
|
||||
msgstr "Vos étagères"
|
||||
|
||||
#: cps/templates/layout.html:149
|
||||
#: cps/templates/layout.html:152
|
||||
msgid "Create a Shelf"
|
||||
msgstr "Créer une étagère"
|
||||
|
||||
#: cps/templates/layout.html:150
|
||||
#: cps/templates/layout.html:153
|
||||
msgid "About"
|
||||
msgstr "À popos"
|
||||
|
||||
|
@ -746,6 +798,10 @@ msgstr "Mot de passe"
|
|||
msgid "Remember me"
|
||||
msgstr "Se rappeler de moi"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
msgid "Reflow text when sidebars are open."
|
||||
msgstr ""
|
||||
|
@ -846,6 +902,14 @@ msgstr "Livres dans la bibiothèque"
|
|||
msgid "Authors in this Library"
|
||||
msgstr "Auteurs dans la bibliothèque"
|
||||
|
||||
#: cps/templates/stats.html:45
|
||||
msgid "Categories in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/stats.html:49
|
||||
msgid "Series in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:23
|
||||
msgid "Kindle E-Mail"
|
||||
msgstr "Courriel Kindle"
|
||||
|
@ -867,50 +931,34 @@ msgid "Show hot books"
|
|||
msgstr "Montrer les livres populaires"
|
||||
|
||||
#: cps/templates/user_edit.html:53
|
||||
msgid "Show best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
msgid "Show language selection"
|
||||
msgstr "Montrer la sélection de la langue"
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
#: cps/templates/user_edit.html:61
|
||||
msgid "Show series selection"
|
||||
msgstr "Montrer la sélection des séries"
|
||||
|
||||
#: cps/templates/user_edit.html:61
|
||||
#: cps/templates/user_edit.html:65
|
||||
msgid "Show category selection"
|
||||
msgstr "Montrer la sélection des catégories"
|
||||
|
||||
#: cps/templates/user_edit.html:65
|
||||
#: cps/templates/user_edit.html:69
|
||||
msgid "Show author selection"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:69
|
||||
#: cps/templates/user_edit.html:73
|
||||
msgid "Show random books in detail view"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:76
|
||||
msgid "Admin user"
|
||||
msgstr "Utilisateur admin"
|
||||
|
||||
#: cps/templates/user_edit.html:81
|
||||
msgid "Allow Downloads"
|
||||
msgstr "Permettre les téléchargements"
|
||||
|
||||
#: cps/templates/user_edit.html:85
|
||||
msgid "Allow Uploads"
|
||||
msgstr "Permettre les téléversements"
|
||||
|
||||
#: cps/templates/user_edit.html:89
|
||||
msgid "Allow Edit"
|
||||
msgstr "Permettre l'édition"
|
||||
|
||||
#: cps/templates/user_edit.html:94
|
||||
msgid "Allow Changing Password"
|
||||
msgstr "Permettre le changement de mot de passe"
|
||||
|
||||
#: cps/templates/user_edit.html:101
|
||||
#: cps/templates/user_edit.html:105
|
||||
msgid "Delete this user"
|
||||
msgstr "Supprimer cet utilisateur"
|
||||
|
||||
#: cps/templates/user_edit.html:112
|
||||
#: cps/templates/user_edit.html:116
|
||||
msgid "Recent Downloads"
|
||||
msgstr "Téléchargements récents"
|
||||
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -15,8 +15,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
|
||||
"POT-Creation-Date: 2017-01-28 20:35+0100\n"
|
||||
"PO-Revision-Date: 2017-01-06 17:00+0800\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+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"
|
||||
"Language-Team: zh_Hans_CN <LL@li.org>\n"
|
||||
|
@ -26,7 +26,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:109 cps/book_formats.py:113 cps/web.py:982
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
msgid "not installed"
|
||||
msgstr "未安装"
|
||||
|
||||
|
@ -43,7 +43,7 @@ msgstr "Calibre-web 测试邮件"
|
|||
msgid "This email has been sent via calibre web."
|
||||
msgstr "此邮件由calibre web发送"
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:129
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr "发送到Kindle"
|
||||
|
||||
|
@ -59,275 +59,283 @@ msgstr "无法转换epub到mobi"
|
|||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr "无法读取所请求的文件。可能是错误权限不对?"
|
||||
|
||||
#: cps/ub.py:380
|
||||
#: cps/ub.py:443
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
msgstr "游客"
|
||||
|
||||
#: cps/web.py:774
|
||||
#: cps/web.py:778
|
||||
msgid "Latest Books"
|
||||
msgstr "最新书籍"
|
||||
|
||||
#: cps/web.py:799
|
||||
#: cps/web.py:803
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr "热门书籍(最多下载)"
|
||||
|
||||
#: cps/templates/index.xml:29 cps/web.py:808
|
||||
#: cps/web.py:813
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
msgid "Random Books"
|
||||
msgstr "随机书籍"
|
||||
|
||||
#: cps/web.py:821
|
||||
#: cps/web.py:835
|
||||
msgid "Author list"
|
||||
msgstr "作者列表"
|
||||
|
||||
#: cps/web.py:838
|
||||
#: cps/web.py:846
|
||||
#, python-format
|
||||
msgid "Author: %(nam)s"
|
||||
msgstr "作者: %(nam)s"
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:851
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr "无法打开电子书。 文件不存在或者文件不可访问:"
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
msgid "Series list"
|
||||
msgstr "丛书列表"
|
||||
|
||||
#: cps/web.py:862
|
||||
#: cps/web.py:874
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr "丛书: %(serie)s"
|
||||
|
||||
#: cps/web.py:864 cps/web.py:961 cps/web.py:1179 cps/web.py:2041
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr "无法打开电子书。 文件不存在或者文件不可访问:"
|
||||
|
||||
#: cps/web.py:895
|
||||
#: cps/web.py:907
|
||||
msgid "Available languages"
|
||||
msgstr "可用语言"
|
||||
|
||||
#: cps/web.py:910
|
||||
#: cps/web.py:922
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr "语言: %(name)s"
|
||||
|
||||
#: cps/templates/index.xml:43 cps/web.py:923
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
msgid "Category list"
|
||||
msgstr "分类列表"
|
||||
|
||||
#: cps/web.py:933
|
||||
#: cps/web.py:947
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr "分类: %(name)s"
|
||||
|
||||
#: cps/web.py:992
|
||||
#: cps/web.py:1008
|
||||
msgid "Statistics"
|
||||
msgstr "统计"
|
||||
|
||||
#: cps/web.py:1013
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr ""
|
||||
msgstr "正在重启,请刷新页面"
|
||||
|
||||
#: cps/web.py:1015
|
||||
#: cps/web.py:1031
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr "正在关闭服务器,请关闭窗口"
|
||||
|
||||
#: cps/web.py:1055
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1091 cps/web.py:1104
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
msgstr "搜索"
|
||||
|
||||
#: cps/web.py:1155 cps/web.py:1162 cps/web.py:1169 cps/web.py:1176
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
msgid "Read a Book"
|
||||
msgstr "阅读一本书"
|
||||
|
||||
#: cps/web.py:1227 cps/web.py:1649
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr "请填写所有字段"
|
||||
|
||||
#: cps/web.py:1228 cps/web.py:1244 cps/web.py:1249 cps/web.py:1251
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
msgid "register"
|
||||
msgstr "注册"
|
||||
|
||||
#: cps/web.py:1243
|
||||
#: cps/web.py:1280
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr "发生一个未知错误。请稍后再试。"
|
||||
|
||||
#: cps/web.py:1248
|
||||
#: cps/web.py:1285
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr "此用户名或邮箱已被使用。"
|
||||
|
||||
#: cps/web.py:1266
|
||||
#: cps/web.py:1303
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr "您现在已以'%(nickname)s'身份登录"
|
||||
|
||||
#: cps/web.py:1270
|
||||
#: cps/web.py:1308
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr "用户名或密码错误"
|
||||
|
||||
#: cps/web.py:1272
|
||||
#: cps/web.py:1310
|
||||
msgid "login"
|
||||
msgstr "登录"
|
||||
|
||||
#: cps/web.py:1289
|
||||
#: cps/web.py:1327
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr "请先配置SMTP邮箱..."
|
||||
|
||||
#: cps/web.py:1293
|
||||
#: cps/web.py:1331
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr "此书已被成功发给 %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1297
|
||||
#: cps/web.py:1335
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr "发送这本书的时候出现错误: %(res)s"
|
||||
|
||||
#: cps/web.py:1299
|
||||
#: cps/web.py:1337
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr "请先配置您的kindle电子邮箱地址..."
|
||||
|
||||
#: cps/web.py:1319
|
||||
#: cps/web.py:1357
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr "此书已被添加到书架: %(sname)s"
|
||||
|
||||
#: cps/web.py:1340
|
||||
#: cps/web.py:1378
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr "此书已从书架 %(sname)s 中删除"
|
||||
|
||||
#: cps/web.py:1359 cps/web.py:1383
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr "已存在书架 '%(title)s'。"
|
||||
|
||||
#: cps/web.py:1364
|
||||
#: cps/web.py:1402
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr "书架 %(title)s 已被创建"
|
||||
|
||||
#: cps/web.py:1366 cps/web.py:1394
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
msgid "There was an error"
|
||||
msgstr "发生错误"
|
||||
|
||||
#: cps/web.py:1367 cps/web.py:1369
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
msgid "create a shelf"
|
||||
msgstr "创建书架"
|
||||
|
||||
#: cps/web.py:1392
|
||||
#: cps/web.py:1430
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr "书架 %(title)s 已被修改"
|
||||
|
||||
#: cps/web.py:1395 cps/web.py:1397
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
msgid "Edit a shelf"
|
||||
msgstr "编辑书架"
|
||||
|
||||
#: cps/web.py:1415
|
||||
#: cps/web.py:1453
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr "成功删除书架 %(name)s"
|
||||
|
||||
#: cps/web.py:1437
|
||||
#: cps/web.py:1475
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr "书架: '%(name)s'"
|
||||
|
||||
#: cps/web.py:1468
|
||||
#: cps/web.py:1506
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr "修改书架 '%(name)s' 顺序"
|
||||
|
||||
#: cps/web.py:1528
|
||||
#: cps/web.py:1568
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr "找到已使用此邮箱的账号。"
|
||||
|
||||
#: cps/web.py:1530 cps/web.py:1534
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr "%(name)s 的资料"
|
||||
|
||||
#: cps/web.py:1531
|
||||
#: cps/web.py:1571
|
||||
msgid "Profile updated"
|
||||
msgstr "资料已更新"
|
||||
|
||||
#: cps/web.py:1544
|
||||
#: cps/web.py:1584
|
||||
msgid "Admin page"
|
||||
msgstr "管理页"
|
||||
|
||||
#: cps/web.py:1604
|
||||
#: cps/web.py:1656
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr ""
|
||||
msgstr "Calibre-web配置已更新"
|
||||
|
||||
#: cps/web.py:1611 cps/web.py:1617 cps/web.py:1630
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
msgid "Basic Configuration"
|
||||
msgstr ""
|
||||
msgstr "基本配置"
|
||||
|
||||
#: cps/web.py:1615
|
||||
#: cps/web.py:1667
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr ""
|
||||
msgstr "DB位置无效,请输入正确路径"
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1651 cps/web.py:1693
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
msgid "Add new user"
|
||||
msgstr "添加新用户"
|
||||
|
||||
#: cps/web.py:1687
|
||||
#: cps/web.py:1741
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr "用户 '%(user)s' 已被创建"
|
||||
|
||||
#: cps/web.py:1691
|
||||
#: cps/web.py:1745
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr "已找到使用此邮箱或昵称的账号。"
|
||||
|
||||
#: cps/web.py:1711
|
||||
#: cps/web.py:1767
|
||||
msgid "Mail settings updated"
|
||||
msgstr "邮箱设置已更新"
|
||||
|
||||
#: cps/web.py:1717
|
||||
#: cps/web.py:1773
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr "测试邮件已成功发送到 %(kindlemail)s"
|
||||
|
||||
#: cps/web.py:1720
|
||||
#: cps/web.py:1776
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr "发送测试邮件时发生错误: %(res)s"
|
||||
|
||||
#: cps/web.py:1721
|
||||
#: cps/web.py:1777
|
||||
msgid "Edit mail settings"
|
||||
msgstr "编辑邮箱设置"
|
||||
|
||||
#: cps/web.py:1749
|
||||
#: cps/web.py:1805
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr "用户 '%(nick)s' 已被删除"
|
||||
|
||||
#: cps/web.py:1825
|
||||
#: cps/web.py:1886
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr "用户 '%(nick)s' 已被更新"
|
||||
|
||||
#: cps/web.py:1828
|
||||
#: cps/web.py:1889
|
||||
msgid "An unknown error occured."
|
||||
msgstr "发生未知错误。"
|
||||
|
||||
#: cps/web.py:1831
|
||||
#: cps/web.py:1892
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr "编辑用户 %(nick)s"
|
||||
|
||||
#: cps/web.py:2036 cps/web.py:2039 cps/web.py:2113
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
msgid "edit metadata"
|
||||
msgstr ""
|
||||
msgstr "编辑元数据"
|
||||
|
||||
#: cps/web.py:2071
|
||||
#: cps/web.py:2133
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr "创建路径 %s 失败(权限拒绝)。"
|
||||
|
||||
#: cps/web.py:2076
|
||||
#: cps/web.py:2138
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr "存储文件 %s 失败(权限拒绝)。"
|
||||
|
||||
#: cps/web.py:2081
|
||||
#: cps/web.py:2143
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr "删除文件 %s 失败(权限拒绝)。"
|
||||
|
@ -356,7 +364,7 @@ msgstr ""
|
|||
msgid "Admin"
|
||||
msgstr "管理"
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:116
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr "下载"
|
||||
|
||||
|
@ -410,7 +418,7 @@ msgstr "配置"
|
|||
|
||||
#: cps/templates/admin.html:59
|
||||
msgid "Calibre DB dir"
|
||||
msgstr ""
|
||||
msgstr "Calibre DB目录"
|
||||
|
||||
#: cps/templates/admin.html:60 cps/templates/config_edit.html:32
|
||||
msgid "Log Level"
|
||||
|
@ -446,26 +454,34 @@ msgstr "重启 Calibre-web"
|
|||
|
||||
#: cps/templates/admin.html:80
|
||||
msgid "Stop Calibre-web"
|
||||
msgstr "停止 Calibre-web"
|
||||
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:91
|
||||
#: cps/templates/admin.html:82
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr ""
|
||||
msgstr "您确定要重启 Calibre-web 吗?"
|
||||
|
||||
#: cps/templates/admin.html:92 cps/templates/admin.html:107
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
msgstr "确定"
|
||||
|
||||
#: cps/templates/admin.html:93 cps/templates/admin.html:108
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:54
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: 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:107
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr "后退"
|
||||
|
||||
#: cps/templates/admin.html:106
|
||||
#: cps/templates/admin.html:108
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr ""
|
||||
msgstr "您确定要关闭 Calibre-web 吗?"
|
||||
|
||||
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
|
||||
msgid "Book Title"
|
||||
|
@ -483,7 +499,7 @@ msgstr "简介"
|
|||
msgid "Tags"
|
||||
msgstr "标签"
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:133
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr "丛书"
|
||||
|
@ -516,45 +532,69 @@ msgstr ""
|
|||
msgid "view book after edit"
|
||||
msgstr "编辑后查看书籍"
|
||||
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:52
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
|
||||
#: cps/templates/login.html:19 cps/templates/search_form.html:75
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:105
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
|
||||
msgid "Submit"
|
||||
msgstr "提交"
|
||||
|
||||
#: cps/templates/config_edit.html:7
|
||||
msgid "Location of Calibre database"
|
||||
msgstr ""
|
||||
msgstr "Calibre 数据库位置"
|
||||
|
||||
#: cps/templates/config_edit.html:11
|
||||
msgid "Server Port"
|
||||
msgstr ""
|
||||
msgstr "服务器端口"
|
||||
|
||||
#: cps/templates/config_edit.html:15 cps/templates/shelf_edit.html:7
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
msgstr "标题"
|
||||
|
||||
#: cps/templates/config_edit.html:23
|
||||
msgid "No. of random books to show"
|
||||
msgstr ""
|
||||
msgstr "随机书籍显示数量"
|
||||
|
||||
#: cps/templates/config_edit.html:28
|
||||
msgid "Regular expression for title sorting"
|
||||
msgstr ""
|
||||
msgstr "标题排序的正则表达式"
|
||||
|
||||
#: cps/templates/config_edit.html:42
|
||||
msgid "Enable uploading"
|
||||
msgstr ""
|
||||
msgstr "启用上传"
|
||||
|
||||
#: cps/templates/config_edit.html:46
|
||||
msgid "Enable anonymous browsing"
|
||||
msgstr ""
|
||||
msgstr "启用匿名浏览"
|
||||
|
||||
#: cps/templates/config_edit.html:50
|
||||
msgid "Enable public registration"
|
||||
msgstr "启用注册"
|
||||
|
||||
#: cps/templates/config_edit.html:52
|
||||
msgid "Default Settings for new users"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:57 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
|
||||
msgid "Admin user"
|
||||
msgstr "管理用户"
|
||||
|
||||
#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
|
||||
msgid "Allow Downloads"
|
||||
msgstr "允许下载"
|
||||
|
||||
#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
|
||||
msgid "Allow Uploads"
|
||||
msgstr "允许上传"
|
||||
|
||||
#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
|
||||
msgid "Allow Edit"
|
||||
msgstr "允许编辑"
|
||||
|
||||
#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
|
||||
msgid "Allow Changing Password"
|
||||
msgstr "允许修改密码"
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr "登录"
|
||||
|
@ -571,33 +611,37 @@ msgstr ""
|
|||
msgid "language"
|
||||
msgstr "语言"
|
||||
|
||||
#: cps/templates/detail.html:105
|
||||
#: cps/templates/detail.html:74
|
||||
msgid "Publishing date"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:106
|
||||
msgid "Description:"
|
||||
msgstr "简介:"
|
||||
|
||||
#: cps/templates/detail.html:133
|
||||
#: cps/templates/detail.html:134
|
||||
msgid "Read in browser"
|
||||
msgstr "在浏览器中阅读"
|
||||
|
||||
#: cps/templates/detail.html:153
|
||||
#: cps/templates/detail.html:154
|
||||
msgid "Add to shelf"
|
||||
msgstr "添加到书架"
|
||||
|
||||
#: cps/templates/detail.html:193
|
||||
#: cps/templates/detail.html:194
|
||||
msgid "Edit metadata"
|
||||
msgstr "编辑元数据"
|
||||
|
||||
#: cps/templates/email_edit.html:11
|
||||
msgid "SMTP port (usually 25 for plain SMTP and 465 for SSL and 587 for STARTTLS)"
|
||||
msgstr ""
|
||||
msgstr "SMTP端口(无加密SMTP通常是25, SSL加密是465, STARTTLS加密是587)"
|
||||
|
||||
#: cps/templates/email_edit.html:15
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
msgstr "加密方式"
|
||||
|
||||
#: cps/templates/email_edit.html:17
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
msgstr "无"
|
||||
|
||||
#: cps/templates/email_edit.html:18
|
||||
msgid "STARTTLS"
|
||||
|
@ -640,40 +684,48 @@ msgid "Hot Books"
|
|||
msgstr "热门书籍"
|
||||
|
||||
#: cps/templates/index.xml:19
|
||||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:122
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr "基于评分的热门书籍"
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
msgid "New Books"
|
||||
msgstr "新书"
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
#: cps/templates/index.xml:33
|
||||
msgid "The latest Books"
|
||||
msgstr "最新书籍"
|
||||
|
||||
#: cps/templates/index.xml:33
|
||||
#: cps/templates/index.xml:40
|
||||
msgid "Show Random Books"
|
||||
msgstr "显示随机书籍"
|
||||
|
||||
#: cps/templates/index.xml:36 cps/templates/layout.html:135
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
msgid "Authors"
|
||||
msgstr "作者"
|
||||
|
||||
#: cps/templates/index.xml:40
|
||||
#: cps/templates/index.xml:47
|
||||
msgid "Books ordered by Author"
|
||||
msgstr "书籍按作者排序"
|
||||
|
||||
#: cps/templates/index.xml:47
|
||||
#: cps/templates/index.xml:54
|
||||
msgid "Books ordered by category"
|
||||
msgstr "书籍按分类排序"
|
||||
|
||||
#: cps/templates/index.xml:54
|
||||
#: cps/templates/index.xml:61
|
||||
msgid "Books ordered by series"
|
||||
msgstr "书籍按丛书排序"
|
||||
|
||||
#: cps/templates/layout.html:48
|
||||
msgid "Toggle navigation"
|
||||
msgstr ""
|
||||
msgstr "切换导航"
|
||||
|
||||
#: cps/templates/layout.html:63
|
||||
msgid "Go!"
|
||||
|
@ -695,31 +747,31 @@ msgstr "注册"
|
|||
msgid "Browse"
|
||||
msgstr "浏览"
|
||||
|
||||
#: cps/templates/layout.html:127
|
||||
#: cps/templates/layout.html:130
|
||||
msgid "Discover"
|
||||
msgstr "发现"
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:133
|
||||
msgid "Categories"
|
||||
msgstr "分类"
|
||||
|
||||
#: cps/templates/layout.html:137 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr "语言"
|
||||
|
||||
#: cps/templates/layout.html:140
|
||||
#: cps/templates/layout.html:143
|
||||
msgid "Public Shelves"
|
||||
msgstr "公开书架"
|
||||
|
||||
#: cps/templates/layout.html:144
|
||||
#: cps/templates/layout.html:147
|
||||
msgid "Your Shelves"
|
||||
msgstr "您的书架"
|
||||
|
||||
#: cps/templates/layout.html:149
|
||||
#: cps/templates/layout.html:152
|
||||
msgid "Create a Shelf"
|
||||
msgstr "创建书架"
|
||||
|
||||
#: cps/templates/layout.html:150
|
||||
#: cps/templates/layout.html:153
|
||||
msgid "About"
|
||||
msgstr "关于"
|
||||
|
||||
|
@ -737,17 +789,21 @@ msgstr "密码"
|
|||
msgid "Remember me"
|
||||
msgstr "记住我"
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
msgid "Reflow text when sidebars are open."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/readpdf.html:29
|
||||
msgid "PDF.js viewer"
|
||||
msgstr ""
|
||||
msgstr "PDF.js 查看器"
|
||||
|
||||
#: cps/templates/readtxt.html:6
|
||||
msgid "Basic txt Reader"
|
||||
msgstr ""
|
||||
msgstr "简单txt阅读器"
|
||||
|
||||
#: cps/templates/register.html:4
|
||||
msgid "Register a new account"
|
||||
|
@ -811,7 +867,7 @@ msgstr "要公开此书架吗?"
|
|||
|
||||
#: cps/templates/shelf_order.html:5
|
||||
msgid "Drag 'n drop to rearrange order"
|
||||
msgstr ""
|
||||
msgstr "拖拽以重新排序"
|
||||
|
||||
#: cps/templates/stats.html:3
|
||||
msgid "Linked libraries"
|
||||
|
@ -837,6 +893,14 @@ msgstr "本书在此书库"
|
|||
msgid "Authors in this Library"
|
||||
msgstr "个作者在此书库"
|
||||
|
||||
#: cps/templates/stats.html:45
|
||||
msgid "Categories in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/stats.html:49
|
||||
msgid "Series in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:23
|
||||
msgid "Kindle E-Mail"
|
||||
msgstr ""
|
||||
|
@ -858,50 +922,34 @@ msgid "Show hot books"
|
|||
msgstr "显示热门书籍"
|
||||
|
||||
#: cps/templates/user_edit.html:53
|
||||
msgid "Show best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
msgid "Show language selection"
|
||||
msgstr "显示语言选择"
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
#: cps/templates/user_edit.html:61
|
||||
msgid "Show series selection"
|
||||
msgstr "显示丛书选择"
|
||||
|
||||
#: cps/templates/user_edit.html:61
|
||||
#: cps/templates/user_edit.html:65
|
||||
msgid "Show category selection"
|
||||
msgstr "显示分类选择"
|
||||
|
||||
#: cps/templates/user_edit.html:65
|
||||
msgid "Show author selection"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:69
|
||||
msgid "Show author selection"
|
||||
msgstr "显示作者选择"
|
||||
|
||||
#: cps/templates/user_edit.html:73
|
||||
msgid "Show random books in detail view"
|
||||
msgstr ""
|
||||
msgstr "在详情页显示随机书籍"
|
||||
|
||||
#: cps/templates/user_edit.html:76
|
||||
msgid "Admin user"
|
||||
msgstr "管理用户"
|
||||
|
||||
#: cps/templates/user_edit.html:81
|
||||
msgid "Allow Downloads"
|
||||
msgstr "允许下载"
|
||||
|
||||
#: cps/templates/user_edit.html:85
|
||||
msgid "Allow Uploads"
|
||||
msgstr "允许上传"
|
||||
|
||||
#: cps/templates/user_edit.html:89
|
||||
msgid "Allow Edit"
|
||||
msgstr "允许编辑"
|
||||
|
||||
#: cps/templates/user_edit.html:94
|
||||
msgid "Allow Changing Password"
|
||||
msgstr "允许修改密码"
|
||||
|
||||
#: cps/templates/user_edit.html:101
|
||||
#: cps/templates/user_edit.html:105
|
||||
msgid "Delete this user"
|
||||
msgstr "删除此用户"
|
||||
|
||||
#: cps/templates/user_edit.html:112
|
||||
#: cps/templates/user_edit.html:116
|
||||
msgid "Recent Downloads"
|
||||
msgstr "最近下载"
|
||||
|
||||
|
|
50
cps/ub.py
50
cps/ub.py
|
@ -144,7 +144,6 @@ class UserBase:
|
|||
else:
|
||||
return False
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return '<User %r>' % self.nickname
|
||||
|
||||
|
@ -164,10 +163,6 @@ class User(UserBase, Base):
|
|||
downloads = relationship('Downloads', backref='user', lazy='dynamic')
|
||||
locale = Column(String(2), default="en")
|
||||
sidebar_view = Column(Integer, default=1)
|
||||
#language_books = Column(Integer, default=1)
|
||||
#series_books = Column(Integer, default=1)
|
||||
#category_books = Column(Integer, default=1)
|
||||
#hot_books = Column(Integer, default=1)
|
||||
default_language = Column(String(3), default="all")
|
||||
|
||||
|
||||
|
@ -184,10 +179,6 @@ class Anonymous(AnonymousUserMixin, UserBase):
|
|||
self.role = data.role
|
||||
self.sidebar_view = data.sidebar_view
|
||||
self.default_language = data.default_language
|
||||
#self.language_books = data.language_books
|
||||
#self.series_books = data.series_books
|
||||
#self.category_books = data.category_books
|
||||
#self.hot_books = data.hot_books
|
||||
self.default_language = data.default_language
|
||||
self.locale = data.locale
|
||||
self.anon_browse = settings.config_anonbrowse
|
||||
|
@ -262,6 +253,7 @@ class Settings(Base):
|
|||
config_uploading = Column(SmallInteger, default=0)
|
||||
config_anonbrowse = Column(SmallInteger, default=0)
|
||||
config_public_reg = Column(SmallInteger, default=0)
|
||||
config_default_role = Column(SmallInteger, default=0)
|
||||
|
||||
def __repr__(self):
|
||||
pass
|
||||
|
@ -287,7 +279,8 @@ class Config:
|
|||
self.config_uploading = data.config_uploading
|
||||
self.config_anonbrowse = data.config_anonbrowse
|
||||
self.config_public_reg = data.config_public_reg
|
||||
if self.config_calibre_dir is not None: # and (self.db_configured is None or self.db_configured is True):
|
||||
self.config_default_role = data.config_default_role
|
||||
if self.config_calibre_dir is not None:
|
||||
self.db_configured = True
|
||||
else:
|
||||
self.db_configured = False
|
||||
|
@ -296,6 +289,36 @@ class Config:
|
|||
def get_main_dir(self):
|
||||
return self.config_main_dir
|
||||
|
||||
def role_admin(self):
|
||||
if self.config_default_role is not None:
|
||||
return True if self.config_default_role & ROLE_ADMIN == ROLE_ADMIN else False
|
||||
else:
|
||||
return False
|
||||
|
||||
def role_download(self):
|
||||
if self.config_default_role is not None:
|
||||
return True if self.config_default_role & ROLE_DOWNLOAD == ROLE_DOWNLOAD else False
|
||||
else:
|
||||
return False
|
||||
|
||||
def role_upload(self):
|
||||
if self.config_default_role is not None:
|
||||
return True if self.config_default_role & ROLE_UPLOAD == ROLE_UPLOAD else False
|
||||
else:
|
||||
return False
|
||||
|
||||
def role_edit(self):
|
||||
if self.config_default_role is not None:
|
||||
return True if self.config_default_role & ROLE_EDIT == ROLE_EDIT else False
|
||||
else:
|
||||
return False
|
||||
|
||||
def role_passwd(self):
|
||||
if self.config_default_role is not None:
|
||||
return True if self.config_default_role & ROLE_PASSWD == ROLE_PASSWD else False
|
||||
else:
|
||||
return False
|
||||
|
||||
def get_Log_Level(self):
|
||||
ret_value=""
|
||||
if self.config_log_level == logging.INFO:
|
||||
|
@ -338,6 +361,13 @@ def migrate_Database():
|
|||
conn.execute("ALTER TABLE Settings ADD column `config_anonbrowse` SmallInteger DEFAULT 0")
|
||||
conn.execute("ALTER TABLE Settings ADD column `config_public_reg` SmallInteger DEFAULT 0")
|
||||
session.commit()
|
||||
try:
|
||||
session.query(exists().where(Settings.config_default_role)).scalar()
|
||||
session.commit()
|
||||
except exc.OperationalError: # Database is not compatible, some rows are missing
|
||||
conn = engine.connect()
|
||||
conn.execute("ALTER TABLE Settings ADD column `config_default_role` SmallInteger DEFAULT 0")
|
||||
session.commit()
|
||||
try:
|
||||
session.query(exists().where(BookShelf.order)).scalar()
|
||||
session.commit()
|
||||
|
|
53
cps/web.py
53
cps/web.py
|
@ -25,6 +25,7 @@ import zipfile
|
|||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
from babel import Locale as LC
|
||||
from babel import negotiate_locale
|
||||
from babel.dates import format_date
|
||||
from functools import wraps
|
||||
import base64
|
||||
from sqlalchemy.sql import *
|
||||
|
@ -279,6 +280,12 @@ def mimetype_filter(val):
|
|||
s = 'application/octet-stream'
|
||||
return s
|
||||
|
||||
@app.template_filter('formatdate')
|
||||
def formatdate(val):
|
||||
conformed_timestamp = re.sub(r"[:]|([-](?!((\d{2}[:]\d{2})|(\d{4}))$))", '', val)
|
||||
formatdate = datetime.datetime.strptime(conformed_timestamp[:-5], "%Y%m%d %H%M%S")
|
||||
return format_date(formatdate, format='medium',locale=get_locale())
|
||||
|
||||
|
||||
def admin_required(f):
|
||||
"""
|
||||
|
@ -658,10 +665,9 @@ def get_opds_download_link(book_id, format):
|
|||
data = db.session.query(db.Data).filter(db.Data.book == book.id).filter(db.Data.format == format.upper()).first()
|
||||
if current_user.is_authenticated:
|
||||
helper.update_download(book_id, int(current_user.id))
|
||||
author = helper.get_normalized_author(book.author_sort)
|
||||
file_name = book.title
|
||||
if len(author) > 0:
|
||||
file_name = author + '-' + file_name
|
||||
if len(book.authors) > 0:
|
||||
file_name = book.authors[0].name + '-' + 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)
|
||||
|
@ -1228,10 +1234,9 @@ def get_download_link(book_id, format):
|
|||
# collect downloaded books only for registered user and not for anonymous user
|
||||
if current_user.is_authenticated:
|
||||
helper.update_download(book_id, int(current_user.id))
|
||||
author = helper.get_normalized_author(book.author_sort)
|
||||
file_name = book.title
|
||||
if len(author) > 0:
|
||||
file_name = author + '-' + file_name
|
||||
if len(book.authors) > 0:
|
||||
file_name = book.authors[0].name + '-' + 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))
|
||||
|
@ -1239,13 +1244,7 @@ def get_download_link(book_id, format):
|
|||
response.headers["Content-Type"] = mimetypes.types_map['.' + format]
|
||||
except:
|
||||
pass
|
||||
response.headers["Content-Disposition"] = \
|
||||
"attachment; " \
|
||||
"filename={utf_filename}.{suffix};" \
|
||||
"filename*=UTF-8''{utf_filename}.{suffix}".format(
|
||||
utf_filename=file_name.encode('utf-8'),
|
||||
suffix=format
|
||||
)
|
||||
response.headers["Content-Disposition"] = "attachment; filename=\"%s.%s\"" % (file_name.encode('utf-8'), format)
|
||||
return response
|
||||
else:
|
||||
abort(404)
|
||||
|
@ -1271,7 +1270,7 @@ def register():
|
|||
content.password = generate_password_hash(to_save["password"])
|
||||
content.nickname = to_save["nickname"]
|
||||
content.email = to_save["email"]
|
||||
content.role = 0
|
||||
content.role = config.config_default_role
|
||||
try:
|
||||
ub.session.add(content)
|
||||
ub.session.commit()
|
||||
|
@ -1578,9 +1577,10 @@ def profile():
|
|||
@login_required
|
||||
@admin_required
|
||||
def admin():
|
||||
commit = '$Format:%cI$'
|
||||
content = ub.session.query(ub.User).all()
|
||||
settings = ub.session.query(ub.Settings).first()
|
||||
return render_title_template("admin.html", content=content, email=settings, config=config,
|
||||
return render_title_template("admin.html", content=content, email=settings, config=config, commit=commit,
|
||||
development=ub.DEVELOPMENT, title=_(u"Admin page"))
|
||||
|
||||
|
||||
|
@ -1635,6 +1635,18 @@ def configuration_helper(origin):
|
|||
content.config_anonbrowse = 1
|
||||
if "config_public_reg" in to_save and to_save["config_public_reg"] == "on":
|
||||
content.config_public_reg = 1
|
||||
|
||||
content.config_default_role = 0
|
||||
if "admin_role" in to_save:
|
||||
content.config_default_role = content.config_default_role + ub.ROLE_ADMIN
|
||||
if "download_role" in to_save:
|
||||
content.config_default_role = content.config_default_role + ub.ROLE_DOWNLOAD
|
||||
if "upload_role" in to_save:
|
||||
content.config_default_role = content.config_default_role + ub.ROLE_UPLOAD
|
||||
if "edit_role" in to_save:
|
||||
content.config_default_role = content.config_default_role + ub.ROLE_EDIT
|
||||
if "passwd_role" in to_save:
|
||||
content.config_default_role = content.config_default_role + ub.ROLE_PASSWD
|
||||
try:
|
||||
if db_change:
|
||||
if config.db_configured:
|
||||
|
@ -1656,7 +1668,7 @@ def configuration_helper(origin):
|
|||
return render_title_template("config_edit.html", content=config, origin=origin,
|
||||
title=_(u"Basic Configuration"))
|
||||
if reboot_required:
|
||||
# db.engine.dispose() # ToDo verify correct
|
||||
# db.engine.dispose() # ToDo verify correct
|
||||
ub.session.close()
|
||||
ub.engine.dispose()
|
||||
# stop tornado server
|
||||
|
@ -1731,6 +1743,8 @@ def new_user():
|
|||
except IntegrityError:
|
||||
ub.session.rollback()
|
||||
flash(_(u"Found an existing account for this email address or nickname."), category="error")
|
||||
else:
|
||||
content.role=config.config_default_role
|
||||
return render_title_template("user_edit.html", new_user=1, content=content, translations=translations,
|
||||
languages=languages, title=_(u"Add new user"))
|
||||
|
||||
|
@ -1913,7 +1927,7 @@ def edit_book(book_id):
|
|||
modify_database_object(input_authors, book.authors, db.Authors, db.session, 'author')
|
||||
if author0_before_edit != book.authors[0].name:
|
||||
edited_books_id.add(book.id)
|
||||
book.author_sort=helper.get_normalized_author(input_authors[0]) # ToDo: wrong sorting
|
||||
book.author_sort=helper.get_sorted_author(input_authors[0])
|
||||
|
||||
if to_save["cover_url"] and os.path.splitext(to_save["cover_url"])[1].lower() == ".jpg":
|
||||
img = requests.get(to_save["cover_url"])
|
||||
|
@ -2141,9 +2155,10 @@ def upload():
|
|||
if is_author:
|
||||
db_author = is_author
|
||||
else:
|
||||
db_author = db.Authors(author, helper.get_normalized_author(author), "") # TODO: WRONG Sorting Author function
|
||||
db_author = db.Authors(author, helper.get_sorted_author(author), "")
|
||||
db.session.add(db_author)
|
||||
path = os.path.join(author_dir, title_dir)
|
||||
# combine path and normalize path from windows systems
|
||||
path = os.path.join(author_dir, title_dir).replace('\\','/')
|
||||
db_book = db.Books(title, "", db_author.sort, datetime.datetime.now(), datetime.datetime(101, 01, 01), 1,
|
||||
datetime.datetime.now(), path, has_cover, db_author, [])
|
||||
db_book.authors.append(db_author)
|
||||
|
|
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-01-28 20:35+0100\n"
|
||||
"POT-Creation-Date: 2017-02-10 20:17+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,7 +17,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: cps/book_formats.py:109 cps/book_formats.py:113 cps/web.py:982
|
||||
#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:998
|
||||
msgid "not installed"
|
||||
msgstr ""
|
||||
|
||||
|
@ -34,7 +34,7 @@ msgstr ""
|
|||
msgid "This email has been sent via calibre web."
|
||||
msgstr ""
|
||||
|
||||
#: cps/helper.py:153 cps/templates/detail.html:129
|
||||
#: cps/helper.py:153 cps/templates/detail.html:130
|
||||
msgid "Send to Kindle"
|
||||
msgstr ""
|
||||
|
||||
|
@ -50,275 +50,283 @@ msgstr ""
|
|||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/ub.py:380
|
||||
#: cps/ub.py:443
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:774
|
||||
#: cps/web.py:778
|
||||
msgid "Latest Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:799
|
||||
#: cps/web.py:803
|
||||
msgid "Hot Books (most downloaded)"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:29 cps/web.py:808
|
||||
#: cps/web.py:813
|
||||
msgid "Best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/web.py:822
|
||||
msgid "Random Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:821
|
||||
#: cps/web.py:835
|
||||
msgid "Author list"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:838
|
||||
#: cps/web.py:846
|
||||
#, python-format
|
||||
msgid "Author: %(nam)s"
|
||||
msgid "Author: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:50 cps/web.py:851
|
||||
#: cps/web.py:848 cps/web.py:876 cps/web.py:975 cps/web.py:1216 cps/web.py:2103
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:57 cps/web.py:862
|
||||
msgid "Series list"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:862
|
||||
#: cps/web.py:874
|
||||
#, python-format
|
||||
msgid "Series: %(serie)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:864 cps/web.py:961 cps/web.py:1179 cps/web.py:2041
|
||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:895
|
||||
#: cps/web.py:907
|
||||
msgid "Available languages"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:910
|
||||
#: cps/web.py:922
|
||||
#, python-format
|
||||
msgid "Language: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:43 cps/web.py:923
|
||||
#: cps/templates/index.xml:50 cps/web.py:935
|
||||
msgid "Category list"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:933
|
||||
#: cps/web.py:947
|
||||
#, python-format
|
||||
msgid "Category: %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:992
|
||||
#: cps/web.py:1008
|
||||
msgid "Statistics"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1013
|
||||
#: cps/web.py:1029
|
||||
msgid "Performing Restart, please reload page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1015
|
||||
#: cps/web.py:1031
|
||||
msgid "Performing shutdown of server, please close window"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1091 cps/web.py:1104
|
||||
#: cps/web.py:1055
|
||||
msgid "Update done"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1128 cps/web.py:1141
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1155 cps/web.py:1162 cps/web.py:1169 cps/web.py:1176
|
||||
#: cps/web.py:1192 cps/web.py:1199 cps/web.py:1206 cps/web.py:1213
|
||||
msgid "Read a Book"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1227 cps/web.py:1649
|
||||
#: cps/web.py:1264 cps/web.py:1701
|
||||
msgid "Please fill out all fields!"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1228 cps/web.py:1244 cps/web.py:1249 cps/web.py:1251
|
||||
#: cps/web.py:1265 cps/web.py:1281 cps/web.py:1286 cps/web.py:1288
|
||||
msgid "register"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1243
|
||||
#: cps/web.py:1280
|
||||
msgid "An unknown error occured. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1248
|
||||
#: cps/web.py:1285
|
||||
msgid "This username or email address is already in use."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1266
|
||||
#: cps/web.py:1303
|
||||
#, python-format
|
||||
msgid "you are now logged in as: '%(nickname)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1270
|
||||
#: cps/web.py:1308
|
||||
msgid "Wrong Username or Password"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1272
|
||||
#: cps/web.py:1310
|
||||
msgid "login"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1289
|
||||
#: cps/web.py:1327
|
||||
msgid "Please configure the SMTP mail settings first..."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1293
|
||||
#: cps/web.py:1331
|
||||
#, python-format
|
||||
msgid "Book successfully send to %(kindlemail)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1297
|
||||
#: cps/web.py:1335
|
||||
#, python-format
|
||||
msgid "There was an error sending this book: %(res)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1299
|
||||
#: cps/web.py:1337
|
||||
msgid "Please configure your kindle email address first..."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1319
|
||||
#: cps/web.py:1357
|
||||
#, python-format
|
||||
msgid "Book has been added to shelf: %(sname)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1340
|
||||
#: cps/web.py:1378
|
||||
#, python-format
|
||||
msgid "Book has been removed from shelf: %(sname)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1359 cps/web.py:1383
|
||||
#: cps/web.py:1397 cps/web.py:1421
|
||||
#, python-format
|
||||
msgid "A shelf with the name '%(title)s' already exists."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1364
|
||||
#: cps/web.py:1402
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s created"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1366 cps/web.py:1394
|
||||
#: cps/web.py:1404 cps/web.py:1432
|
||||
msgid "There was an error"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1367 cps/web.py:1369
|
||||
#: cps/web.py:1405 cps/web.py:1407
|
||||
msgid "create a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1392
|
||||
#: cps/web.py:1430
|
||||
#, python-format
|
||||
msgid "Shelf %(title)s changed"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1395 cps/web.py:1397
|
||||
#: cps/web.py:1433 cps/web.py:1435
|
||||
msgid "Edit a shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1415
|
||||
#: cps/web.py:1453
|
||||
#, python-format
|
||||
msgid "successfully deleted shelf %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1437
|
||||
#: cps/web.py:1475
|
||||
#, python-format
|
||||
msgid "Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1468
|
||||
#: cps/web.py:1506
|
||||
#, python-format
|
||||
msgid "Change order of Shelf: '%(name)s'"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1528
|
||||
#: cps/web.py:1568
|
||||
msgid "Found an existing account for this email address."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1530 cps/web.py:1534
|
||||
#: cps/web.py:1570 cps/web.py:1574
|
||||
#, python-format
|
||||
msgid "%(name)s's profile"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1531
|
||||
#: cps/web.py:1571
|
||||
msgid "Profile updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1544
|
||||
#: cps/web.py:1584
|
||||
msgid "Admin page"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1604
|
||||
#: cps/web.py:1656
|
||||
msgid "Calibre-web configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1611 cps/web.py:1617 cps/web.py:1630
|
||||
#: cps/web.py:1663 cps/web.py:1669 cps/web.py:1682
|
||||
msgid "Basic Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1615
|
||||
#: cps/web.py:1667
|
||||
msgid "DB location is not valid, please enter correct path"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:33 cps/web.py:1651 cps/web.py:1693
|
||||
#: cps/templates/admin.html:33 cps/web.py:1703 cps/web.py:1749
|
||||
msgid "Add new user"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1687
|
||||
#: cps/web.py:1741
|
||||
#, python-format
|
||||
msgid "User '%(user)s' created"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1691
|
||||
#: cps/web.py:1745
|
||||
msgid "Found an existing account for this email address or nickname."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1711
|
||||
#: cps/web.py:1767
|
||||
msgid "Mail settings updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1717
|
||||
#: cps/web.py:1773
|
||||
#, python-format
|
||||
msgid "Test E-Mail successfully send to %(kindlemail)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1720
|
||||
#: cps/web.py:1776
|
||||
#, python-format
|
||||
msgid "There was an error sending the Test E-Mail: %(res)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1721
|
||||
#: cps/web.py:1777
|
||||
msgid "Edit mail settings"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1749
|
||||
#: cps/web.py:1805
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' deleted"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1825
|
||||
#: cps/web.py:1886
|
||||
#, python-format
|
||||
msgid "User '%(nick)s' updated"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1828
|
||||
#: cps/web.py:1889
|
||||
msgid "An unknown error occured."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:1831
|
||||
#: cps/web.py:1892
|
||||
#, python-format
|
||||
msgid "Edit User %(nick)s"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2036 cps/web.py:2039 cps/web.py:2113
|
||||
#: cps/web.py:2098 cps/web.py:2101 cps/web.py:2175
|
||||
msgid "edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2071
|
||||
#: cps/web.py:2133
|
||||
#, python-format
|
||||
msgid "Failed to create path %s (Permission denied)."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2076
|
||||
#: cps/web.py:2138
|
||||
#, python-format
|
||||
msgid "Failed to store file %s (Permission denied)."
|
||||
msgstr ""
|
||||
|
||||
#: cps/web.py:2081
|
||||
#: cps/web.py:2143
|
||||
#, python-format
|
||||
msgid "Failed to delete file %s (Permission denied)."
|
||||
msgstr ""
|
||||
|
@ -347,7 +355,7 @@ msgstr ""
|
|||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:116
|
||||
#: cps/templates/admin.html:12 cps/templates/detail.html:117
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
|
@ -439,22 +447,30 @@ msgstr ""
|
|||
msgid "Stop Calibre-web"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:91
|
||||
#: cps/templates/admin.html:81
|
||||
msgid "Check for update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:82
|
||||
msgid "Perform Update"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93
|
||||
msgid "Do you really want to restart Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:92 cps/templates/admin.html:107
|
||||
#: cps/templates/admin.html:94 cps/templates/admin.html:109
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:93 cps/templates/admin.html:108
|
||||
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:54
|
||||
#: cps/templates/admin.html:95 cps/templates/admin.html:110
|
||||
#: 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:107
|
||||
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/admin.html:106
|
||||
#: cps/templates/admin.html:108
|
||||
msgid "Do you really want to stop Calibre-web?"
|
||||
msgstr ""
|
||||
|
||||
|
@ -474,7 +490,7 @@ msgstr ""
|
|||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:133
|
||||
#: cps/templates/book_edit.html:33 cps/templates/layout.html:136
|
||||
#: cps/templates/search_form.html:33
|
||||
msgid "Series"
|
||||
msgstr ""
|
||||
|
@ -507,9 +523,9 @@ msgstr ""
|
|||
msgid "view book after edit"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:52
|
||||
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
|
||||
#: cps/templates/login.html:19 cps/templates/search_form.html:75
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:105
|
||||
#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
|
@ -545,7 +561,31 @@ msgstr ""
|
|||
msgid "Enable public registration"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:57 cps/templates/layout.html:91
|
||||
#: cps/templates/config_edit.html:52
|
||||
msgid "Default Settings for new users"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
|
||||
msgid "Admin user"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
|
||||
msgid "Allow Downloads"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
|
||||
msgid "Allow Uploads"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
|
||||
msgid "Allow Edit"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
|
||||
msgid "Allow Changing Password"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/config_edit.html:78 cps/templates/layout.html:91
|
||||
#: cps/templates/login.html:4
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
@ -562,19 +602,23 @@ msgstr ""
|
|||
msgid "language"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:105
|
||||
#: cps/templates/detail.html:74
|
||||
msgid "Publishing date"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:106
|
||||
msgid "Description:"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:133
|
||||
#: cps/templates/detail.html:134
|
||||
msgid "Read in browser"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:153
|
||||
#: cps/templates/detail.html:154
|
||||
msgid "Add to shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/detail.html:193
|
||||
#: cps/templates/detail.html:194
|
||||
msgid "Edit metadata"
|
||||
msgstr ""
|
||||
|
||||
|
@ -631,34 +675,42 @@ msgid "Hot Books"
|
|||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:19
|
||||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgid "Popular publications from this catalog based on Downloads."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:122
|
||||
msgid "New Books"
|
||||
#: cps/templates/index.xml:22 cps/templates/layout.html:127
|
||||
msgid "Best rated Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:26
|
||||
msgid "The latest Books"
|
||||
msgid "Popular publications from this catalog based on Rating."
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:29 cps/templates/layout.html:122
|
||||
msgid "New Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:33
|
||||
msgid "Show Random Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:36 cps/templates/layout.html:135
|
||||
msgid "Authors"
|
||||
msgid "The latest Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:40
|
||||
msgid "Books ordered by Author"
|
||||
msgid "Show Random Books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:43 cps/templates/layout.html:138
|
||||
msgid "Authors"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:47
|
||||
msgid "Books ordered by category"
|
||||
msgid "Books ordered by Author"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:54
|
||||
msgid "Books ordered by category"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/index.xml:61
|
||||
msgid "Books ordered by series"
|
||||
msgstr ""
|
||||
|
||||
|
@ -686,31 +738,31 @@ msgstr ""
|
|||
msgid "Browse"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:127
|
||||
#: cps/templates/layout.html:130
|
||||
msgid "Discover"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:130
|
||||
#: cps/templates/layout.html:133
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:137 cps/templates/search_form.html:54
|
||||
#: cps/templates/layout.html:140 cps/templates/search_form.html:54
|
||||
msgid "Languages"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:140
|
||||
#: cps/templates/layout.html:143
|
||||
msgid "Public Shelves"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:144
|
||||
#: cps/templates/layout.html:147
|
||||
msgid "Your Shelves"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:149
|
||||
#: cps/templates/layout.html:152
|
||||
msgid "Create a Shelf"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/layout.html:150
|
||||
#: cps/templates/layout.html:153
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
|
@ -728,6 +780,10 @@ msgstr ""
|
|||
msgid "Remember me"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/osd.xml:5
|
||||
msgid "instanceCalibre Web ebook catalog"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/read.html:136
|
||||
msgid "Reflow text when sidebars are open."
|
||||
msgstr ""
|
||||
|
@ -828,6 +884,14 @@ msgstr ""
|
|||
msgid "Authors in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/stats.html:45
|
||||
msgid "Categories in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/stats.html:49
|
||||
msgid "Series in this Library"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:23
|
||||
msgid "Kindle E-Mail"
|
||||
msgstr ""
|
||||
|
@ -849,50 +913,34 @@ msgid "Show hot books"
|
|||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:53
|
||||
msgid "Show language selection"
|
||||
msgid "Show best rated books"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:57
|
||||
msgid "Show series selection"
|
||||
msgid "Show language selection"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:61
|
||||
msgid "Show category selection"
|
||||
msgid "Show series selection"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:65
|
||||
msgid "Show author selection"
|
||||
msgid "Show category selection"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:69
|
||||
msgid "Show author selection"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:73
|
||||
msgid "Show random books in detail view"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:76
|
||||
msgid "Admin user"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:81
|
||||
msgid "Allow Downloads"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:85
|
||||
msgid "Allow Uploads"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:89
|
||||
msgid "Allow Edit"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:94
|
||||
msgid "Allow Changing Password"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:101
|
||||
#: cps/templates/user_edit.html:105
|
||||
msgid "Delete this user"
|
||||
msgstr ""
|
||||
|
||||
#: cps/templates/user_edit.html:112
|
||||
#: cps/templates/user_edit.html:116
|
||||
msgid "Recent Downloads"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ Calibre Web is a web app providing a clean interface for browsing, reading and d
|
|||
- full graphical setup
|
||||
- User management
|
||||
- Admin interface
|
||||
- User Interface in english, french, german, simplified chinese, spanish
|
||||
- User Interface in english, french, german, polish, simplified chinese, spanish
|
||||
- OPDS feed for eBook reader apps
|
||||
- Filter and search by titles, authors, tags, series and language
|
||||
- Create custom book collection (shelves)
|
||||
|
|
Loading…
Reference in New Issue
Block a user