From d2ea3a6c19a3729b830bf2a3069b47dfc9b54e7b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 20 Oct 2017 23:23:16 +0200 Subject: [PATCH 001/180] case-insensitive search for non-ASCII --- cps/db.py | 62 +++++++++++++++++++++------------------ cps/web.py | 41 ++++++++++++++------------ optional-requirements.txt | 2 +- 3 files changed, 57 insertions(+), 48 deletions(-) diff --git a/cps/db.py b/cps/db.py index f337ea4c..8be77977 100755 --- a/cps/db.py +++ b/cps/db.py @@ -26,43 +26,45 @@ def title_sort(title): title = title.replace(prep, '') + ', ' + prep return title.strip() +def lowercase(string): + return string.lower() 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) ) books_publishers_link = Table('books_publishers_link', Base.metadata, - Column('book', Integer, ForeignKey('books.id'), primary_key=True), - Column('publisher', Integer, ForeignKey('publishers.id'), primary_key=True) + Column('book', Integer, ForeignKey('books.id'), primary_key = True), + Column('publisher', Integer, ForeignKey('publishers.id'), primary_key = True) ) class Identifiers(Base): __tablename__ = 'identifiers' - id = Column(Integer, primary_key=True) + id = Column(Integer, primary_key = True) type = Column(String) val = Column(String) book = Column(Integer, ForeignKey('books.id')) @@ -110,7 +112,7 @@ class Identifiers(Base): class Comments(Base): __tablename__ = 'comments' - id = Column(Integer, primary_key=True) + id = Column(Integer, primary_key = True) text = Column(String) book = Column(Integer, ForeignKey('books.id')) @@ -125,8 +127,8 @@ class Comments(Base): class Tags(Base): __tablename__ = 'tags' - id = Column(Integer, primary_key=True, autoincrement=True) - name = Column(String) + id = Column(Integer, primary_key = True, autoincrement = True) + name = Column(String(collation = 'NOCASE')) def __init__(self, name): self.name = name @@ -138,8 +140,8 @@ class Tags(Base): class Authors(Base): __tablename__ = 'authors' - id = Column(Integer, primary_key=True) - name = Column(String) + id = Column(Integer, primary_key = True) + name = Column(String(collation = 'U_NOCASE')) sort = Column(String) link = Column(String) @@ -155,8 +157,8 @@ class Authors(Base): class Series(Base): __tablename__ = 'series' - id = Column(Integer, primary_key=True) - name = Column(String) + id = Column(Integer, primary_key = True) + name = Column(String(collation = 'U_NOCASE')) sort = Column(String) def __init__(self, name, sort): @@ -170,7 +172,7 @@ class Series(Base): class Ratings(Base): __tablename__ = 'ratings' - id = Column(Integer, primary_key=True) + id = Column(Integer, primary_key = True) rating = Column(Integer) def __init__(self, rating): @@ -183,7 +185,7 @@ class Ratings(Base): class Languages(Base): __tablename__ = 'languages' - id = Column(Integer, primary_key=True) + id = Column(Integer, primary_key = True) lang_code = Column(String) def __init__(self, lang_code): @@ -195,8 +197,8 @@ class Languages(Base): class Publishers(Base): __tablename__ = 'publishers' - id = Column(Integer, primary_key=True) - name = Column(String) + id = Column(Integer, primary_key = True) + name = Column(String(collation = 'U_NOCASE')) sort = Column(String) def __init__(self, name,sort): @@ -211,7 +213,7 @@ class Publishers(Base): class Data(Base): __tablename__ = 'data' - id = Column(Integer, primary_key=True) + id = Column(Integer, primary_key = True) book = Column(Integer, ForeignKey('books.id')) format = Column(String) uncompressed_size = Column(Integer) @@ -232,8 +234,8 @@ class Books(Base): DEFAULT_PUBDATE = "0101-01-01 00:00:00+00:00" - id = Column(Integer, primary_key=True) - title = Column(String) + id = Column(Integer, primary_key = True) + title = Column(String(collation = 'U_NOCASE')) sort = Column(String) author_sort = Column(String) timestamp = Column(String) @@ -275,7 +277,7 @@ class Books(Base): class Custom_Columns(Base): __tablename__ = 'custom_columns' - id = Column(Integer, primary_key=True) + id = Column(Integer, primary_key = True) label = Column(String) name = Column(String) datatype = Column(String) @@ -294,6 +296,7 @@ def setup_db(): global engine global session global cc_classes + global conn if config.config_calibre_dir is None or config.config_calibre_dir == u'': content = ub.session.query(ub.Settings).first() @@ -319,6 +322,7 @@ def setup_db(): ub.session.commit() config.loadSettings() conn.connection.create_function('title_sort', 1, title_sort) + conn.connection.create_function('lower', 1, lowercase) if not cc_classes: cc = conn.execute("SELECT id, datatype FROM custom_columns") @@ -365,6 +369,6 @@ def setup_db(): # Base.metadata.create_all(engine) Session = sessionmaker() - Session.configure(bind=engine) + Session.configure(bind=conn) session = Session() return True diff --git a/cps/web.py b/cps/web.py index ef44328d..ff822b3e 100755 --- a/cps/web.py +++ b/cps/web.py @@ -659,11 +659,11 @@ def feed_normal_search(): def feed_search(term): if term: - entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")), - db.Books.series.any(db.Series.name.like("%" + term + "%")), - db.Books.authors.any(db.Authors.name.like("%" + term + "%")), - db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")), - db.Books.title.like("%" + term + "%")))\ + entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.ilike("%" + term + "%")), + db.Books.series.any(db.Series.name.ilike("%" + term + "%")), + db.Books.authors.any(db.Authors.name.ilike("%" + term + "%")), + db.Books.publishers.any(db.Publishers.name.ilike("%" + term + "%")), + db.Books.title.ilike("%" + term + "%")))\ .filter(common_filters()).all() entriescount = len(entries) if len(entries) > 0 else 1 pagination = Pagination(1, entriescount, entriescount) @@ -909,7 +909,7 @@ def get_authors_json(): if request.method == "GET": query = request.args.get('q') # entries = db.session.execute("select name from authors where name like '%" + query + "%'") - entries = db.session.query(db.Authors).filter(db.Authors.name.like("%" + query + "%")).all() + entries = db.session.query(db.Authors).filter(db.Authors.name.ilike("%" + query + "%")).all() json_dumps = json.dumps([dict(name=r.name) for r in entries]) return json_dumps @@ -920,7 +920,7 @@ def get_tags_json(): if request.method == "GET": query = request.args.get('q') # entries = db.session.execute("select name from tags where name like '%" + query + "%'") - entries = db.session.query(db.Tags).filter(db.Tags.name.like("%" + query + "%")).all() + entries = db.session.query(db.Tags).filter(db.Tags.iname.ilike("%" + query + "%")).all() # for x in entries: # alfa = dict(name=x.name) json_dumps = json.dumps([dict(name=r.name) for r in entries]) @@ -998,7 +998,7 @@ def get_languages_json(): def get_series_json(): if request.method == "GET": query = request.args.get('q') - entries = db.session.query(db.Series).filter(db.Series.name.like("%" + query + "%")).all() + entries = db.session.query(db.Series).filter(db.Series.name.ilike("%" + query + "%")).all() # entries = db.session.execute("select name from series where name like '%" + query + "%'") json_dumps = json.dumps([dict(name=r.name) for r in entries]) return json_dumps @@ -1014,8 +1014,8 @@ def get_matching_tags(): title_input = request.args.get('book_title') include_tag_inputs = request.args.getlist('include_tag') exclude_tag_inputs = request.args.getlist('exclude_tag') - q = q.filter(db.Books.authors.any(db.Authors.name.like("%" + author_input + "%")), - db.Books.title.like("%" + title_input + "%")) + q = q.filter(db.Books.authors.any(db.Authors.name.ilike("%" + author_input + "%")), + db.Books.title.ilike("%" + title_input + "%")) if len(include_tag_inputs) > 0: for tag in include_tag_inputs: q = q.filter(db.Books.tags.any(db.Tags.id == tag)) @@ -1577,13 +1577,18 @@ def update(): @login_required_if_no_ano def search(): term = request.args.get("query").strip() + if term: - entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")), - db.Books.series.any(db.Series.name.like("%" + term + "%")), - db.Books.authors.any(db.Authors.name.like("%" + term + "%")), - db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")), - db.Books.title.like("%" + term + "%")))\ + entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.ilike("%" + term + "%")), + db.Books.series.any(db.Series.name.ilike("%" + term + "%")), + db.Books.authors.any(db.Authors.name.ilike("%" + term + "%")), + db.Books.publishers.any(db.Publishers.name.ilike("%" + term + "%")), + db.Books.title.ilike("%" + term + "%")))\ .filter(common_filters()).all() +# entries = db.session.query(db.Books).with_entities(db.Books.title).filter(db.Books.title.ilike("%" + term + "%")).all() + #result = db.session.execute("select name from authors where lower(name) like '%" + term.lower() + "%'") + #entries = result.fetchall() + #result.close() return render_title_template('search.html', searchterm=term, entries=entries) else: return render_title_template('search.html', searchterm="") @@ -1625,9 +1630,9 @@ def advanced_search(): lang.name = _(isoLanguages.get(part3=lang.lang_code).name) searchterm.extend(language.name for language in language_names) searchterm = " + ".join(filter(None, searchterm)) - q = q.filter(db.Books.authors.any(db.Authors.name.like("%" + author_name + "%")), - db.Books.title.like("%" + book_title + "%"), - db.Books.publishers.any(db.Publishers.name.like("%" + publisher + "%"))) + q = q.filter(db.Books.authors.any(db.Authors.name.ilike("%" + author_name + "%")), + db.Books.title.ilike("%" + book_title + "%"), + db.Books.publishers.any(db.Publishers.name.ilike("%" + publisher + "%"))) for tag in include_tag_inputs: q = q.filter(db.Books.tags.any(db.Tags.id == tag)) for tag in exclude_tag_inputs: diff --git a/optional-requirements.txt b/optional-requirements.txt index cf743dbb..7a2ad451 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -12,4 +12,4 @@ rsa==3.4.2 six==1.10.0 uritemplate==3.0.0 goodreads>=0.3.2 -python-Levenshtein>=0.12.0 +#python-Levenshtein>=0.12.0 From 4a04ec898e0a61cac753246a3d295ed476341688 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 21 Oct 2017 21:50:47 +0200 Subject: [PATCH 002/180] case-insensitive search for non-ASCII - improved --- cps/db.py | 69 ++++++++++++++++++++++++++++-------------------------- cps/web.py | 5 +++- 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/cps/db.py b/cps/db.py index 8be77977..7428eba1 100755 --- a/cps/db.py +++ b/cps/db.py @@ -26,45 +26,48 @@ def title_sort(title): title = title.replace(prep, '') + ', ' + prep return title.strip() -def lowercase(string): - return string.lower() +def lcase(s): + return s.lower() + +def ucase(s): + return s.upper() 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) ) books_publishers_link = Table('books_publishers_link', Base.metadata, - Column('book', Integer, ForeignKey('books.id'), primary_key = True), - Column('publisher', Integer, ForeignKey('publishers.id'), primary_key = True) + Column('book', Integer, ForeignKey('books.id'), primary_key=True), + Column('publisher', Integer, ForeignKey('publishers.id'), primary_key=True) ) class Identifiers(Base): __tablename__ = 'identifiers' - id = Column(Integer, primary_key = True) + id = Column(Integer, primary_key=True) type = Column(String) val = Column(String) book = Column(Integer, ForeignKey('books.id')) @@ -112,7 +115,7 @@ class Identifiers(Base): class Comments(Base): __tablename__ = 'comments' - id = Column(Integer, primary_key = True) + id = Column(Integer, primary_key=True) text = Column(String) book = Column(Integer, ForeignKey('books.id')) @@ -127,8 +130,8 @@ class Comments(Base): class Tags(Base): __tablename__ = 'tags' - id = Column(Integer, primary_key = True, autoincrement = True) - name = Column(String(collation = 'NOCASE')) + id = Column(Integer, primary_key=True, autoincrement=True) + name = Column(String) def __init__(self, name): self.name = name @@ -140,8 +143,8 @@ class Tags(Base): class Authors(Base): __tablename__ = 'authors' - id = Column(Integer, primary_key = True) - name = Column(String(collation = 'U_NOCASE')) + id = Column(Integer, primary_key=True) + name = Column(String) sort = Column(String) link = Column(String) @@ -157,8 +160,8 @@ class Authors(Base): class Series(Base): __tablename__ = 'series' - id = Column(Integer, primary_key = True) - name = Column(String(collation = 'U_NOCASE')) + id = Column(Integer, primary_key=True) + name = Column(String) sort = Column(String) def __init__(self, name, sort): @@ -172,7 +175,7 @@ class Series(Base): class Ratings(Base): __tablename__ = 'ratings' - id = Column(Integer, primary_key = True) + id = Column(Integer, primary_key=True) rating = Column(Integer) def __init__(self, rating): @@ -185,7 +188,7 @@ class Ratings(Base): class Languages(Base): __tablename__ = 'languages' - id = Column(Integer, primary_key = True) + id = Column(Integer, primary_key=True) lang_code = Column(String) def __init__(self, lang_code): @@ -197,8 +200,8 @@ class Languages(Base): class Publishers(Base): __tablename__ = 'publishers' - id = Column(Integer, primary_key = True) - name = Column(String(collation = 'U_NOCASE')) + id = Column(Integer, primary_key=True) + name = Column(String) sort = Column(String) def __init__(self, name,sort): @@ -213,7 +216,7 @@ class Publishers(Base): class Data(Base): __tablename__ = 'data' - id = Column(Integer, primary_key = True) + id = Column(Integer, primary_key=True) book = Column(Integer, ForeignKey('books.id')) format = Column(String) uncompressed_size = Column(Integer) @@ -234,8 +237,8 @@ class Books(Base): DEFAULT_PUBDATE = "0101-01-01 00:00:00+00:00" - id = Column(Integer, primary_key = True) - title = Column(String(collation = 'U_NOCASE')) + id = Column(Integer, primary_key=True) + title = Column(String) sort = Column(String) author_sort = Column(String) timestamp = Column(String) @@ -277,7 +280,7 @@ class Books(Base): class Custom_Columns(Base): __tablename__ = 'custom_columns' - id = Column(Integer, primary_key = True) + id = Column(Integer, primary_key=True) label = Column(String) name = Column(String) datatype = Column(String) @@ -296,7 +299,6 @@ def setup_db(): global engine global session global cc_classes - global conn if config.config_calibre_dir is None or config.config_calibre_dir == u'': content = ub.session.query(ub.Settings).first() @@ -322,7 +324,8 @@ def setup_db(): ub.session.commit() config.loadSettings() conn.connection.create_function('title_sort', 1, title_sort) - conn.connection.create_function('lower', 1, lowercase) + conn.connection.create_function('lower', 1, lcase) + conn.connection.create_function('upper', 1, ucase) if not cc_classes: cc = conn.execute("SELECT id, datatype FROM custom_columns") @@ -369,6 +372,6 @@ def setup_db(): # Base.metadata.create_all(engine) Session = sessionmaker() - Session.configure(bind=conn) + Session.configure(bind=engine) session = Session() return True diff --git a/cps/web.py b/cps/web.py index ff822b3e..feccd092 100755 --- a/cps/web.py +++ b/cps/web.py @@ -659,6 +659,7 @@ def feed_normal_search(): def feed_search(term): if term: + db.session.connection().connection.connection.create_function("lower", 1, db.lcase) entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.ilike("%" + term + "%")), db.Books.series.any(db.Series.name.ilike("%" + term + "%")), db.Books.authors.any(db.Authors.name.ilike("%" + term + "%")), @@ -1576,9 +1577,10 @@ def update(): @app.route("/search", methods=["GET"]) @login_required_if_no_ano def search(): - term = request.args.get("query").strip() + term = request.args.get("query").strip().lower() if term: + db.session.connection().connection.connection.create_function("lower", 1, db.lcase) entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.ilike("%" + term + "%")), db.Books.series.any(db.Series.name.ilike("%" + term + "%")), db.Books.authors.any(db.Authors.name.ilike("%" + term + "%")), @@ -1598,6 +1600,7 @@ def search(): @login_required_if_no_ano def advanced_search(): if request.method == 'GET': + db.session.connection().connection.connection.create_function("lower", 1, db.lcase) q = db.session.query(db.Books) include_tag_inputs = request.args.getlist('include_tag') exclude_tag_inputs = request.args.getlist('exclude_tag') From 3d251bc0b4acf352fb5a693b96a012824c1688d3 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 21 Oct 2017 21:54:15 +0200 Subject: [PATCH 003/180] accidentally committed changed optional-requirements.txt -> changing back --- optional-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optional-requirements.txt b/optional-requirements.txt index 7a2ad451..cf743dbb 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -12,4 +12,4 @@ rsa==3.4.2 six==1.10.0 uritemplate==3.0.0 goodreads>=0.3.2 -#python-Levenshtein>=0.12.0 +python-Levenshtein>=0.12.0 From 674baad49e18b2a43e113e13f8d1097eb53f5c7a Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 21 Oct 2017 22:07:39 +0200 Subject: [PATCH 004/180] lowercasing the input --- cps/web.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cps/web.py b/cps/web.py index feccd092..3cecfcbb 100755 --- a/cps/web.py +++ b/cps/web.py @@ -659,6 +659,7 @@ def feed_normal_search(): def feed_search(term): if term: + term = term.strip().lower() db.session.connection().connection.connection.create_function("lower", 1, db.lcase) entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.ilike("%" + term + "%")), db.Books.series.any(db.Series.name.ilike("%" + term + "%")), @@ -1612,9 +1613,9 @@ def advanced_search(): author_name = request.args.get("author_name") book_title = request.args.get("book_title") publisher = request.args.get("publisher") - if author_name: author_name = author_name.strip() - if book_title: book_title = book_title.strip() - if publisher: publisher = publisher.strip() + if author_name: author_name = author_name.strip().lower() + if book_title: book_title = book_title.strip().lower() + if publisher: publisher = publisher.strip().lower() if include_tag_inputs or exclude_tag_inputs or include_series_inputs or exclude_series_inputs or \ include_languages_inputs or exclude_languages_inputs or author_name or book_title or publisher: searchterm = [] From f5e1b38e636ead888afd249f30c8a8bca035d43b Mon Sep 17 00:00:00 2001 From: Yamakuni <10231985+Yamakuni@users.noreply.github.com> Date: Thu, 26 Oct 2017 22:44:16 +0200 Subject: [PATCH 005/180] French translation correction --- cps/translations/fr/LC_MESSAGES/messages.mo | Bin 304275 -> 343414 bytes cps/translations/fr/LC_MESSAGES/messages.po | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo index 6baba072645c1a01bb2f62aff2d35091acc92af7..b696885eb3212430faaaa66b94a594f5146d46af 100644 GIT binary patch literal 343414 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

IY|2XJH>==#mjb37NVt2Me_JM`Xm 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 Wz5mVCz#(u1wYmRSvLj*4(*Hk=c>jX{ diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index dec613c4..e8465791 100644 --- a/cps/translations/fr/LC_MESSAGES/messages.po +++ b/cps/translations/fr/LC_MESSAGES/messages.po @@ -18,10 +18,10 @@ # Xotes , 2014 msgid "" msgstr "" -"Project-Id-Version: Calibre-web\n" +"Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" "POT-Creation-Date: 2017-09-16 07:48+0200\n" -"PO-Revision-Date: 2017-09-21 12:25+0200\n" +"PO-Revision-Date: 2017-10-26 22:42+0200\n" "Last-Translator: Nicolas Roudninski \n" "Language: fr\n" "Language-Team: \n" @@ -30,7 +30,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.4.0\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.4\n" #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 msgid "not installed" @@ -70,7 +70,7 @@ msgstr "Ce message a été envoyé depuis calibre web." #: cps/helper.py:204 cps/templates/detail.html:43 msgid "Send to Kindle" -msgstr "Envoyer ver Kindle" +msgstr "Envoyer vers Kindle" #: cps/helper.py:224 cps/helper.py:238 msgid "Could not find any formats suitable for sending by email" @@ -234,7 +234,7 @@ msgstr "Ce nom d'utilisateur ou cette adresse de courriel est déjà utilisée." #: cps/web.py:1908 cps/web.py:2004 #, python-format msgid "you are now logged in as: '%(nickname)s'" -msgstr "vous êtes maintenant connecté sous : '%(nickname)s'" +msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'" #: cps/web.py:1913 msgid "Wrong Username or Password" @@ -452,7 +452,7 @@ msgstr "Impossible de supprimer le fichier %s (permission refusée)" #: cps/templates/admin.html:4 msgid "User list" -msgstr "Liste des ustilisateurs" +msgstr "Liste des utilisateurs" #: cps/templates/admin.html:8 msgid "Nickname" @@ -1026,7 +1026,7 @@ msgstr "Explorer" #: cps/templates/layout.html:107 msgid "Recently Added" -msgstr "Livres récemment ajoutés" +msgstr "Ajouts récents" #: cps/templates/layout.html:110 msgid "Sorted Books" From ae1e7c57d52a5cd8318df7b1083ecf22b92c22aa Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Wed, 1 Nov 2017 16:10:05 +0100 Subject: [PATCH 006/180] Update french translation --- cps/translations/de/LC_MESSAGES/messages.po | 293 ++++++++-------- cps/translations/es/LC_MESSAGES/messages.po | 297 ++++++++-------- cps/translations/fr/LC_MESSAGES/messages.mo | Bin 343414 -> 304264 bytes cps/translations/fr/LC_MESSAGES/messages.po | 321 +++++++++--------- cps/translations/it/LC_MESSAGES/messages.po | 277 +++++++-------- cps/translations/nl/LC_MESSAGES/messages.po | 293 ++++++++-------- cps/translations/pl/LC_MESSAGES/messages.po | 293 ++++++++-------- cps/translations/ru/LC_MESSAGES/messages.po | 293 ++++++++-------- .../zh_Hans_CN/LC_MESSAGES/messages.po | 293 ++++++++-------- messages.pot | 291 ++++++++-------- 10 files changed, 1365 insertions(+), 1286 deletions(-) diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index a0fbc3d6..f7a9f222 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -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-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2016-07-12 19:54+0200\n" "Last-Translator: Ozzie Isaacs\n" "Language: de\n" @@ -30,9 +30,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "Nicht installiert" @@ -78,379 +78,384 @@ msgstr "" "Konnte keine Formate finden welche für das versenden per E-Mail geeignet " "sind" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "Gast" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "Frage Update Paket an" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "Lade Update Paket herunter" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "Entpacke Update Paket" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "Ersetze Dateien" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "Schließe Datenbankverbindungen" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "Stoppe Server" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "Kürzlich hinzugefügte Bücher" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "Neueste Bücher" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "Älteste Bücher" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "Bücher (A-Z)" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "Bücher (Z-A)" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "Beliebte Bücher (die meisten Downloads)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "Best bewertete Bücher" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "Zufällige Bücher" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "Autorenliste" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht " "zugänglich." -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "Liste Serien" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "Verfügbare Sprachen" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "Sprache: %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "Kategorieliste" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "Kategorie: %(name)s" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "Ausführungsberechtigung nicht vorhanden" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "Statistiken" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "Server neu gestartet,bitte Seite neu laden" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "Server wird runtergefahren, bitte Fenster schließen" -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "Update durchgeführt" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "Suche" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "Gelesene Bücher" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "Ungelesene Bücher" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "Lese ein Buch" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "Bitte alle Felder ausfüllen!" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "Registieren" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen." -#: cps/web.py:1889 +#: cps/web.py:1909 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:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Du bist nun eingeloggt als '%(nickname)s'" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "Falscher Benutzername oder Passwort" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "Login" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "Token wurde nicht gefunden" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "Das Token ist abgelaufen" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "Erfolg! Bitte zum Gerät zurückkehren" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "Bitte zuerst die SMTP Mail Einstellung konfigurieren ..." -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Buch erfolgreich versandt an %(kindlemail)s" -#: cps/web.py:2026 +#: cps/web.py:2046 #, 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:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "Bitte die Kindle E-Mail Adresse zuuerst konfigurieren..." -#: cps/web.py:2072 +#: cps/web.py:2092 #, 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:2107 +#: cps/web.py:2127 #, 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:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, 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:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "Bücherregal %(title)s erzeugt" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "Es trat ein Fehler auf" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "Bücherregal erzeugen" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "Bücherregal %(title)s verändert" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "Bücherregal editieren" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Bücherregal %(name)s erfolgreich gelöscht" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "Bücherregal: '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Fehler beim Öffnen. Bücherregel exisitert nicht oder ist nicht zugänglich" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Reihenfolge in Bücherregal '%(name)s' verändern" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "Es existiert ein Benutzerkonto für diese E-Mailadresse" -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's Profil" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "Profil aktualisiert" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "Admin Seite" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Calibre-web Konfiguration wurde aktualisiert" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "Basis Konfiguration" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "DB Speicherort ist ungültig, bitte Pfad korrigieren" -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "Neuen Benutzer hinzufügen" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "Benutzer '%(user)s' angelegt" -#: cps/web.py:2544 +#: cps/web.py:2565 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:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "E-Mail Einstellungen aktualisiert" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Test E-Mail erfolgreich an %(kindlemail)s versendet" -#: cps/web.py:2576 +#: cps/web.py:2597 #, 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:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "E-Mail Einstellungen wurde aktualisiert" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "E-Mail Einstellungen editieren" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "Benutzer '%(nick)s' gelöscht" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "Benutzer '%(nick)s' aktualisiert" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "Es ist ein unbekanter Fehler aufgetreten" -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "Benutzer %(nick)s bearbeiten" -#: cps/web.py:2730 +#: cps/web.py:2751 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:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "Metadaten editieren" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "Unbekannt" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Die Dateiendung \"%s\" kann nicht auf diesen Server hochgeladen werden" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "Unbekannt" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "Datei müssen eine Erweiterung haben, um hochgeladen zu werden" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Fehler beim Erzeugen des Pfads %s (Zugriff verweigert)" -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Fehler beim speichern der Datei %s (Zugriff verweigert)" -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Fehler beim Löschen von Datei %s (Zugriff verweigert)" @@ -606,7 +611,7 @@ msgid "Ok" msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -641,13 +646,13 @@ msgstr "Buch löschen" msgid "Book Title" msgstr "Buchtitel" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "Autor" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "Beschreibung" @@ -688,74 +693,78 @@ msgstr "Ja" msgid "No" msgstr "Nein" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "Buch nach Bearbeitung ansehen" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "Metadaten laden" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "Abschicken" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "Sicher?" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "Das Buch wird aus der Calibre Datenbank" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "und von der Festplatte gelöscht" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "Löschen" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "Suchbegriff" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr "Suchbegriff" -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "Los!" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "Klicke auf das Bild um die Metadaten zu übertragen" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "Lade..." -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "Schließen" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "Herausgeber" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "Quelle" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "Fehler bei Suche!" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "Kein Ergebniss! Bitte anderen Begriff versuchen" @@ -947,7 +956,7 @@ msgstr "Einstellungen speichern" msgid "Save settings and send Test E-Mail" msgstr "Einstellungen speichern und Test E-Mail versenden" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "Nächste" @@ -968,43 +977,43 @@ msgstr "Start" msgid "Hot Books" msgstr "Beliebte Bücher" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "Beliebte Publikationen aus dieser Bibliothek basierend auf Downloadzahlen" -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "Best bewertete Bücher" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "Beliebte Veröffentlichungen dieses Katalogs basierend auf Bewertungen" -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "Neue Bücher" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "Die neuesten Bücher" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "Zeige zufällige Bücher" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "Autoren" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "Bücher nach Autoren sortiert" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "Bücher nach Kategorien sortiert" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "Bücher nach Reihen geordnet" @@ -1065,31 +1074,31 @@ msgstr "Entdecke" msgid "Categories" msgstr "Kategorien" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "Sprachen" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "Öffentiche Bücherregale" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "Deine Bücherregale" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "Bücherregal erzeugen" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "Über" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "Voerheriger" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "Buchdetails" @@ -1215,35 +1224,35 @@ msgstr "Soll das Bücherregal öffentlich sein?" msgid "Drag 'n drop to rearrange order" msgstr "Drag 'n drop um Reihenfolge zu ändern" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "Calibre Bibliothek Statistiken" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "Bücher in dieser Bibliothek" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "Autoren in dieser Bibliothek" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "Kategorien in dieser Bibliothek" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "Serien in dieser Bibliothek" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "Dynamische Bibliotheken" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "Programm Bibliotheken" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "Installierte Version" diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po index 6b0aea65..9cf20526 100644 --- a/cps/translations/es/LC_MESSAGES/messages.po +++ b/cps/translations/es/LC_MESSAGES/messages.po @@ -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-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: Juan F. Villa \n" "Language: es\n" @@ -23,9 +23,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "No instalado" @@ -69,375 +69,380 @@ msgstr "Enviar a Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Formato no compatible para enviar por correo electronico" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "Invitado" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "Solicitando paquete de actualización" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "Descargando paquete de actualización" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "Descomprimiendo paquete de actualización" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "Ficheros sustituidos" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "Los conexiones de base datos están cerradas" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "El servidor está detenido" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "Libros populares (los mas descargados)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "Libros mejor valorados" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "Libros al azar" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "Lista de autores" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Error en la apertura del eBook. El archivo no existe o no es accesible:" -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "Lista de series" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "Series : %(serie)s" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "Lenguajes disponibles" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "Lenguaje: %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "Lista de categorias" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "Categoría : %(name)s" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "Estadisticas" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "Servidor reiniciado. Por favor, recargue la página" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana." -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "Actualización realizada" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "búsqueda" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "Libros leídos" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "Libros no leídos" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "Leer un libro" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "¡Por favor completar todos los campos!" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "registrarse" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "Error desconocido. Por favor, inténtelo de nuevo mas tarde." -#: cps/web.py:1889 +#: cps/web.py:1909 msgid "This username or email address is already in use." msgstr "Usuario o dirección de correo en uso." -#: cps/web.py:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Sesion iniciada como : '%(nickname)s'" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "Usuario o contraseña invalido" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "Iniciar sesión" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "Configurar primero los parametros SMTP por favor..." -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Envio de Libro a %(kindlemail)s correctamente" -#: cps/web.py:2026 +#: cps/web.py:2046 #, 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:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "Configurar primero la dirección de correo Kindle por favor..." -#: cps/web.py:2072 +#: cps/web.py:2092 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "El libro fue agregado a el estante: %(sname)s" -#: cps/web.py:2107 +#: cps/web.py:2127 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "El libro fue removido del estante: %(sname)s" -#: cps/web.py:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, 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:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "Estante %(title)s creado" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "Ha sucedido un error" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "crear un estante" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "Estante %(title)s cambiado" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "Editar un estante" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Estante %(name)s fue borrado correctamente" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "Estante: '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Cambiar orden del estante: '%(name)s'" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "Existe una cuenta vinculada a esta dirección de correo." -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "Perfil actualizado" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "Página de administración" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Configuración de Calibre-web actualizada" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "Configuración básica" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "Localicación de la BD inválida. Por favor, introduzca la ruta correcta." -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "Agregar un nuevo usuario" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "Usuario '%(user)s' creado" -#: cps/web.py:2544 +#: cps/web.py:2565 msgid "Found an existing account for this email address or nickname." msgstr "" "Se ha encontrado una cuenta vinculada a esta dirección de correo o nombre" " de usuario." -#: cps/web.py:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "Parámetros de correo actualizados" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Exito al realizar envio de prueba a %(kindlemail)s" -#: cps/web.py:2576 +#: cps/web.py:2597 #, 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:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "Ajustes de correo electrónico actualizados" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "Editar parametros de correo" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuario '%(nick)s' borrado" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuario '%(nick)s' actualizado" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "Error inesperado." -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "Editar Usuario %(nick)s" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "editar metainformación" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "No se permite subir archivos con la extensión \"%s\" a este servidor" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "El archivo a subir debe tener una extensión" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Fallo al crear la ruta %s (permiso negado)" -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Fallo al almacenar el archivo %s (permiso negado)" -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Fallo al borrar el archivo %s (permiso negado)" @@ -475,10 +480,6 @@ msgstr "Descarga" msgid "Upload" msgstr "Subir archivo" -#: cps/templates/detail.html:14 -msgid "Upload format" -msgstr "Subir formato" - #: cps/templates/admin.html:15 msgid "Edit" msgstr "Editar" @@ -597,7 +598,7 @@ msgid "Ok" msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -632,13 +633,13 @@ msgstr "" msgid "Book Title" msgstr "Titulo del Libro" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "Autor" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "Descripcion" @@ -679,74 +680,78 @@ msgstr "Si" msgid "No" msgstr "No" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "Subir formato" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "Ver libro tras la edicion" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "Obtener metainformación" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "Enviar" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "Palabra clave" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr "Buscar palabras clave" -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "¡Vamos!" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "Haga clic en la portada para cargar la metainformación en el formulario" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "Cargando..." -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "Cerrar" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "Editor" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "Origen" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "¡Error en la búsqueda!" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "¡Sin resultados! Por favor, pruebe otra palabra clave." @@ -938,7 +943,7 @@ msgstr "Guardar cambios" msgid "Save settings and send Test E-Mail" msgstr "Guardar cambios y enviar un correo de prueba" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "Siguiente" @@ -959,43 +964,43 @@ msgstr "Iniciar" msgid "Hot Books" msgstr "Libros Populares" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "Publicaciones mas populares para este catálogo basadas en las descargas." -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "Libros mejor valorados" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "Publicaciones populares del catalogo basados en el puntaje." -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "Nuevos libros" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "Libros recientes" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "Mostrar libros al azar" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "Autores" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "Libros ordenados por Autor" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "Libros ordenados por Categorias" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "Libros ordenados por Series" @@ -1056,31 +1061,31 @@ msgstr "Descubrir" msgid "Categories" msgstr "Categoria" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "Lenguaje" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "Estantes públicos" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "Sus estantes" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "Crear un estante" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "Acerca de" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "" @@ -1206,35 +1211,35 @@ msgstr "¿Hacer público el estante?" msgid "Drag 'n drop to rearrange order" msgstr "Pinchar y arrastrar para reordenar" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "Estadisticas de la Biblioteca" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "Libros en esta Biblioteca" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "Autores en esta Biblioteca" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "Categorías en esta librería" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "Series en esta librería" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "Librerias vinculadas" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "Librerias del programa" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "Version instalada" diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo index b696885eb3212430faaaa66b94a594f5146d46af..6b86ea20376ac0c574ac7fa825fa0db8d5fcec25 100644 GIT binary patch literal 304264 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 AR6mj0 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

IY|2XJH>==#mjb37NVt2Me_JM`Xm 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, 2014 msgid "" msgstr "" -"Project-Id-Version: Calibre-web\n" +"Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2017-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2017-10-26 22:42+0200\n" "Last-Translator: Nicolas Roudninski \n" "Language: fr\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" -"X-Generator: Poedit 2.0.4\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "non installé" @@ -76,376 +75,382 @@ msgstr "Envoyer vers Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Impossible de trouver un format adapté à envoyer par courriel" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "Invité" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "Téléchargement la mise à jour" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "Décompression de la mise à jour" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "Fichiers remplacés" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "Connexion à la base de donnée fermée" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "Serveur arrêté" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la page" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "Ajouts récents" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "Livres récents" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "Anciens livres" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "Livres (A-Z)" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "Livres (Z-A)" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "Livres populaires (les plus téléchargés)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "Livres les mieux notés" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "Livres au hasard" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "Liste des auteurs" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 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 :" +"Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est " +"pas accessible :" -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "Liste des séries" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "Séries : %(serie)s" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "Langues disponibles" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "Langue : %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "Liste des catégories" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "Catégorie : %(name)s" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "Statistiques" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "Serveur redémarré, merci de rafraîchir la page" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "Mise à jour effectuée" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "recherche" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "Livres lus" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "Livres non-lus" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "Lire un livre" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "SVP, complétez tous les champs !" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "s’enregistrer" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "Une erreur a eu lieu. Merci de réessayez plus tard." -#: cps/web.py:1889 +#: cps/web.py:1909 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:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "Mauvais nom d'utilisateur ou mot de passe" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "connexion" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "Jeton non trouvé" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "Jeton expiré" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "Réussite! Merci de vous tourner vers votre appareil" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "Veillez configurer les paramètres smtp d'abord..." -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Livres envoyés à %(kindlemail)s avec succès" -#: cps/web.py:2026 +#: cps/web.py:2046 #, 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:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "Veuillez configurer votre adresse kindle d'abord..." -#: cps/web.py:2072 +#: cps/web.py:2092 #, 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:2107 +#: cps/web.py:2127 #, 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:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, 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:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "Étagère %(title)s créée" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "Il y a eu une erreur" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "créer une étagère" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "Modifier une étagère" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "l’étagère %(name)s a été supprimé avec succès" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "Étagère : '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "Un compte avec cette adresse de courriel existe déjà." -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "Profil de %(name)s" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "Profil mis à jour" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "Page administrateur" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Configuration de Calibre-web mise à jour" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "Configuration basique" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "Ajouter un nouvel utilisateur" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "Utilisateur '%(user)s' créé" -#: cps/web.py:2544 +#: cps/web.py:2565 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:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "Paramètres de courriel mis à jour" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2576 +#: cps/web.py:2597 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "Préférences e-mail mises à jour" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "Éditer les paramètres de courriel" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "Utilisateur '%(nick)s' supprimé" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "Utilisateur '%(nick)s' mis à jour" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "Oups ! Une erreur inconnue a eu lieu." -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "Éditer l'utilisateur %(nick)s" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -"Erreur à l’ouverture du livre. Le fichier n’existe pas ou n’est pas accessible" +"Erreur à l’ouverture du livre. Le fichier n’existe pas ou n’est pas " +"accessible" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "modifier les métadonnées" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "inconnu" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "inconnu" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "Pour être téléverser le fichier doit avoir une extension" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossible de créer le chemin %s (permission refusée)" -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossible d'enregistrer le fichier %s (permission refusée)" -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossible de supprimer le fichier %s (permission refusée)" @@ -601,7 +606,7 @@ msgid "Ok" msgstr "D’accord" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -636,13 +641,13 @@ msgstr "Effacer le livre" msgid "Book Title" msgstr "Titre du livre" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "Auteur" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "Description" @@ -683,74 +688,78 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "voir le livre après l'édition" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "Obtenir les métadonnées" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "Soumettre" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "Etes-vous vraiment sur?" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "Le livre va être supprimé de la base de données de Calibre" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "et du disque dur" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "Supprimer" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "Mot-clé" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr " Rechercher le mot-clé " -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "Allez !" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "Chargement…" -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "Fermer" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "Editeur" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "Source" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "Rechercher les erreur!" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "Aucun résultat, Merci d’essayer un autre mot-clé." @@ -911,8 +920,8 @@ msgstr "Éditer les métadonnées" #: cps/templates/email_edit.html:11 msgid "SMTP port (usually 25 for plain SMTP and 465 for SSL and 587 for STARTTLS)" msgstr "" -"SMTP port (habituellement 25 pour strict SMTP et 465 pour SSL et 587 pour " -"STARTTLS)" +"SMTP port (habituellement 25 pour strict SMTP et 465 pour SSL et 587 pour" +" STARTTLS)" #: cps/templates/email_edit.html:15 msgid "Encryption" @@ -942,7 +951,7 @@ msgstr "Sauvegarder les réglages" msgid "Save settings and send Test E-Mail" msgstr "Sauvegarder les réglages et tester l’envoi d’e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "Suivant" @@ -963,44 +972,45 @@ msgstr "Démarrer" msgid "Hot Books" msgstr "Livres populaires" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "" -"Publications populaires depuis le catalogue basées sur les téléchargements." +"Publications populaires depuis le catalogue basées sur les " +"téléchargements." -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "Livres les mieux notés" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "Publications populaires de ce catalogue sur la base de notes." -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "Nouveaux livres" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "Les derniers livres" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "Montrer des livres au hasard" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "Auteurs" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "Livres classés par auteur" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "Livres classés par catégorie" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "Livres classés par série" @@ -1061,31 +1071,31 @@ msgstr "Découvrir" msgid "Categories" msgstr "Catégories" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "Langues" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "Étagères publiques" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "Vos étagères" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "Créer une étagère" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "À propos" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "Précédent" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "Détails du livre" @@ -1211,35 +1221,35 @@ msgstr "cette étagère doit-elle être publique ?" msgid "Drag 'n drop to rearrange order" msgstr "" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "Statistiques de la librairie Calibre" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "Livres dans la bibiothèque" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "Auteurs dans la bibliothèque" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "Catégories dans la librairie" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "Séries dans la librairie" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "Librairies liées" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "Bibliothèque logiciel" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "Version installée" @@ -2685,7 +2695,7 @@ msgstr "akuntsu" #. name for ara msgid "Arabic" -msgstr "Arabe" +msgstr "arabe" #. name for arb msgid "Arabic; Standard" @@ -11693,7 +11703,7 @@ msgstr "isu (Division de Menchum)" #. name for ita msgid "Italian" -msgstr "Italien" +msgstr "italien" #. name for itb msgid "Itneg; Binongan" @@ -23617,7 +23627,7 @@ msgstr "roumain; Megleno" #. name for rus msgid "Russian" -msgstr "Russe" +msgstr "russe" #. name for rut msgid "Rutul" @@ -24957,7 +24967,7 @@ msgstr "temi" #. name for spa msgid "Spanish" -msgstr "Espagnol" +msgstr "espagnol" #. name for spb msgid "Sepa (Indonesia)" @@ -32130,3 +32140,4 @@ msgstr "zaza" #. name for zzj msgid "Zhuang; Zuojiang" msgstr "zhuang; Zuojiang" + diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index f5144729..4507f371 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -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-09-16 16:53+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: Marco Picone \n" "Language: it\n" @@ -23,9 +23,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1357 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "non installato" @@ -69,381 +69,386 @@ msgstr "Invia a Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Impossibile trovare i formati adatti per l'invio tramite email" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "ospite" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "Richiesta del pacchetto di aggiornamento" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "Scaricare il pacchetto di aggiornamento" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "Decomprimere pacchetto di aggiornamento" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "I file vengono sostituiti" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "Le connessioni di database sono chiuse" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "Il server viene arrestato" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "Aggiornamento completato, prego premere bene e ricaricare pagina" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "Libri aggiunti di recente" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "I più nuovi libri" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "Libri più vecchi" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "Ebook (A-Z)" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "Ebook (Z-A)" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "Hot Books (più scaricati)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "I migliori libri valutati" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "Libri casuali" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "Elenco degli autori" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1314 cps/web.py:1773 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile:" -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "Lista delle serie" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "Serie :" -#: cps/web.py:1220 +#: cps/web.py:1231 msgid "Available languages" msgstr "Lingue disponibili" -#: cps/web.py:1235 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "Lingue: %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1244 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "Elenco categorie" -#: cps/web.py:1256 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "Categoria : %(name)s" -#: cps/web.py:1368 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "Mancano autorizzazioni di esecuzione" -#: cps/web.py:1382 +#: cps/web.py:1393 msgid "Statistics" msgstr "Statistica" -#: cps/web.py:1546 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "Server riavviato, ricarica pagina" -#: cps/web.py:1548 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "Eseguire l'arresto del server, chiudi la finestra." -#: cps/web.py:1564 +#: cps/web.py:1575 msgid "Update done" msgstr "Aggiornamento fatto" -#: cps/web.py:1639 cps/web.py:1652 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "ricerca" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1728 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "Leggere libri" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1731 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "Libri non letti" -#: cps/web.py:1804 cps/web.py:1806 cps/web.py:1808 cps/web.py:1815 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "Leggere un libro" -#: cps/web.py:1867 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "Compila tutti i campi" -#: cps/web.py:1868 cps/web.py:1884 cps/web.py:1889 cps/web.py:1891 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "Registrare" -#: cps/web.py:1883 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "Si è verificato un errore sconosciuto. Per favore riprova più tardi." -#: cps/web.py:1888 +#: cps/web.py:1909 msgid "This username or email address is already in use." msgstr "Questo nome utente o indirizzo email è già in uso." -#: cps/web.py:1907 cps/web.py:2003 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "ora sei connesso come : '%(nickname)s'" -#: cps/web.py:1912 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "Nome utente o password errata" -#: cps/web.py:1918 cps/web.py:1939 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "Accesso" -#: cps/web.py:1951 cps/web.py:1982 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "Token non trovato" -#: cps/web.py:1959 cps/web.py:1990 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "Il token è scaduto" -#: cps/web.py:1967 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "Successo! Torna al tuo dispositivo" -#: cps/web.py:2017 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "Configurare prima le impostazioni della posta SMTP..." -#: cps/web.py:2021 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Libro inviare con successo %(kindlemail)s correttamente" -#: cps/web.py:2025 +#: cps/web.py:2046 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Si è verificato un errore durante l'invio di questo libro: %(res)s" -#: cps/web.py:2027 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "Si prega di configurare innanzitutto il tuo indirizzo email..." -#: cps/web.py:2071 +#: cps/web.py:2092 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Il libro è stato aggiunto alla mensola: %(sname)s" -#: cps/web.py:2106 +#: cps/web.py:2127 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Il libro è stato rimosso dalla mensola: %(sname)s" -#: cps/web.py:2125 cps/web.py:2149 +#: cps/web.py:2146 cps/web.py:2170 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Uno scaffale con il nome '%(title)s' esiste già." -#: cps/web.py:2130 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "Mensola %(title)s creato" -#: cps/web.py:2132 cps/web.py:2160 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "c'era un errore" -#: cps/web.py:2133 cps/web.py:2135 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "creare uno scaffale" -#: cps/web.py:2158 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "Mensola %(title)s cambiato" -#: cps/web.py:2161 cps/web.py:2163 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "Modifica un ripiano" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "cancellato con successo il ripiano %(name)s" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "Mensola: '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" "Errore durante l'apertura dello scaffale. La mensola non esiste o non è " "accessibile" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Modificare l'ordine della mensola: '%(name)s'" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "Trovato un account esistente per questo indirizzo email." -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "Profilo di %(name)s" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "Profilo aggiornato" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "Pagina di amministrazione" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Aggiornamento della configurazione del calibro-web" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "Configurazione di base" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "Posizione DB non valida. Inserisci il percorso corretto." -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "Aggiungi un nuovo utente" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "utente '%(user)s' creato" -#: cps/web.py:2544 +#: cps/web.py:2565 msgid "Found an existing account for this email address or nickname." msgstr "" "È stato trovato un account collegato a questo indirizzo e-mail o nome " "utente." -#: cps/web.py:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "Parametri di posta aggiornati" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Successo quando invii il test a %(kindlemail)s" -#: cps/web.py:2576 +#: cps/web.py:2597 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Impossibile inviare il test a E-Mail: %(res)s" -#: cps/web.py:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "Impostazioni email aggiornate" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "Modificare i parametri della posta" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "utente '%(nick)s' cancellati" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "utente '%(nick)s' aggiornato" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "Errore imprevisto." -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "Modifica utente %(nick)s" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "modificare la metainformazione" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "Sconosciuto" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Non è consentito caricare i file con l'estensione \"%s\" a questo server" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "Sconosciuto" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "Il file da caricare deve avere un'estensione" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossibile creare il percorso %s (autorizzazione negata)" -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossibile archiviare il file %s (autorizzazione negata)" -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossibile eliminare il file %s (autorizzazione negata)" @@ -599,7 +604,7 @@ msgid "Ok" msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -634,13 +639,13 @@ msgstr "Elimina libro" msgid "Book Title" msgstr "Titolo del libro" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "Autore" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "Descrizione" @@ -681,74 +686,78 @@ msgstr "Si" msgid "No" msgstr "No" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "visualizzare il libro dopo la modifica" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "Ottieni metadati" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "Sottoscrivi" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "Sei davvero sicuro?" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "l libro verrà cancellato dal database Calibre\"" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "e dal disco rigido" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "Elimina" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "Parola chiave" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr "Cerca parola chiave" -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "Partire" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "Fai clic sul coperchio per caricare i metadati nel modulo" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "Caricamento in corso..." -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "Chiuso" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "Editore" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "fonte" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "Errore di ricerca!" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "Nessun risultato! Prova un'altra parola chiave." @@ -940,7 +949,7 @@ msgstr "Salva le impostazioni" msgid "Save settings and send Test E-Mail" msgstr "Salvare le impostazioni e inviare Test e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "Prossimo" @@ -961,43 +970,43 @@ msgstr "Inizio" msgid "Hot Books" msgstr "Hot Ebook" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "Pubblicazioni popolari di questo catalogo in base ai download." -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "Libri più votati" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "Pubblicazioni popolari di questo catalogo basate su Rating." -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "Nuovi libri" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "Gli ultimi Libri" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "Mostra libri casuali" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "Autori" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "Libri ordinati dall'autore" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "Libri ordinati per categoria" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "Libri ordinati per serie" @@ -1058,31 +1067,31 @@ msgstr "Per scoprire" msgid "Categories" msgstr "Categoria" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "lingua" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "Ripiani pubblici" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "I tuoi scaffali" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "Crea una mensola" -#: cps/templates/layout.html:154 cps/templates/stats.html:3 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "Di" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "Precedente" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "Dettagli ebook" diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index d5251329..9be27f42 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web dutch translation by Ed Driesen (GPL V3)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2017-06-21 20:15+0200\n" "Last-Translator: \n" "Language: nl\n" @@ -31,9 +31,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "niet geïnstalleerd" @@ -77,377 +77,382 @@ msgstr "Stuur naar Kindle:" msgid "Could not find any formats suitable for sending by email" msgstr "Kon geen geschikte formaten vinden om te verzenden per email" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "Gast" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "Update pakket wordt aangevraagd" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "Update pakket wordt gedownload" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "Update pakket wordt uitgepakt" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "Bestanden zijn vervangen" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "Database verbindingen zijn gesloten" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "Server is gestopt" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "Update voltooid, klik op ok en herlaad de pagina" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "Recent toegevoegde boeken" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "Nieuwste boeken" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "Oudste boeken" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "Boeken (A-Z)" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "Boeken (A-Z)" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "Populaire boeken (meeste downloads)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "Best beoordeelde boeken" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "Willekeurige boeken" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "Auteur lijst" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Fout bij openen van het boek. Bestand bestaat niet of is niet " "toegankelijk:" -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "Serie lijst" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "Beschikbare talen" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "Categorie lijst" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "Categorie: %(name)s" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "Statistieken" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "Server herstart, gelieve de pagina herladen" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "Bezig met het stoppen van de server, gelieve venster te sluiten" -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "Update voltooid" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "zoek" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "Gelezen Boeken" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "Ongelezen Boeken" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "Lees een boek" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "Gelieve alle velden in te vullen!" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "registreer" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "Een onbekende fout deed zich voor. Gelieve later nog eens te proberen." -#: cps/web.py:1889 +#: cps/web.py:1909 msgid "This username or email address is already in use." msgstr "Deze gebruikersnaam of dit emailadres is reeds in gebruik." -#: cps/web.py:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "je bent nu ingelogd als: '%(nickname)s'" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "Verkeerde gebruikersnaam of Wachtwoord" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "login" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "Token niet gevonden" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "Token is verlopen" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "Gelukt! Ga terug naar je apparaat" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "Gelieve de SMTP mail instellingen eerst te configureren..." -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Boek met succes verstuurd naar %(kindlemail)s" -#: cps/web.py:2026 +#: cps/web.py:2046 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Er trad een fout op bij het versturen van dit boek: %(res)s" -#: cps/web.py:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "Gelieve eerst je kindle email adres te configureren..." -#: cps/web.py:2072 +#: cps/web.py:2092 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Boek werd toegevoegd aan boekenplank: %(sname)s" -#: cps/web.py:2107 +#: cps/web.py:2127 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Boek werd verwijderd van boekenplank: %(sname)s" -#: cps/web.py:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Een boekenplank met de naam '%(title)s' bestaat reeds." -#: cps/web.py:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "Boekenplank %(title)s aangemaakt" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "Er deed zich een fout voor" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "maak een boekenplank" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "Boekenplank %(title)s gewijzigd" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "Bewerk een boekenplank" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Boekenplank %(name)s succesvol gewist" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "Boekenplank: '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" "Fout bij openen boekenplank. Boekenplank bestaat niet of is niet " "toegankelijk" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Verander volgorde van Boekenplank: '%(name)s'" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "Een bestaand gebruiker gevonden voor dit email adres." -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's profiel" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "Profiel aangepast" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "Administratie pagina" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Calibre-web configuratie aangepast" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "Basis configuratie" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "DB locatie is niet geldig, gelieve het correcte pad in te geven" -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "Voeg nieuwe gebruiker toe" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "Gebruiker '%(user)s' aangemaakt" -#: cps/web.py:2544 +#: cps/web.py:2565 msgid "Found an existing account for this email address or nickname." msgstr "Een bestaande gebruiker gevonden voor dit emailadres of gebruikersnaam." -#: cps/web.py:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "Mail instellingen aangepast" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Test email met succes verstuurd naar %(kindlemail)s" -#: cps/web.py:2576 +#: cps/web.py:2597 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Er trad een fout op met het versturen van de test email: %(res)s" -#: cps/web.py:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "Email instellingen aangepast" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "Bewerk mail instellingen" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "Gebruiker '%(nick)s' verwijderd" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "Gebruiker '%(nick)s' aangepast" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "Een onbekende fout deed zich voor." -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "Bewerk gebruiker '%(nick)s'" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Fout bij openen eBook. Het bestand bestaat niet of is niet toegankelijk" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "Bewerk metadata" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "onbekend" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Het uploaden van bestandsextensie \"%s\" is niet toegestaan op deze server" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "onbekend" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "Up te loaden bestanden dienen een extensie te hebben" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Het pad %s aanmaken mislukt (Geen toestemming)." -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Bestand %s opslaan mislukt (Geen toestemming)." -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Bestand %s wissen mislukt (Geen toestemming)." @@ -603,7 +608,7 @@ msgid "Ok" msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -638,13 +643,13 @@ msgstr "Wis boek" msgid "Book Title" msgstr "Boek titel" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "Auteur" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "Omschrijving" @@ -685,74 +690,78 @@ msgstr "Ja" msgid "No" msgstr "Nee" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "bekijk boek na bewerking" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "Verkrijg metadata" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "Indienen" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "Ben je zeker?" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "Boek wordt nu gewist uit de Calibre database" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "en van de harde schijf" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "Wis" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "Zoekwoord" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr "Zoek voor zoekwoord" -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "Start!" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "Klik op de omslag om de metatadata in het formulier te laden" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "Aan het laden..." -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "Sluit" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "Uitgever" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "Bron" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "Zoek fout!" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "Geen resultaat! Gelieve een ander zoekwoord proberen" @@ -944,7 +953,7 @@ msgstr "Bewaar instelling" msgid "Save settings and send Test E-Mail" msgstr "Bewaar instellingen en stuur test email" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "Volgende" @@ -965,43 +974,43 @@ msgstr "Start" msgid "Hot Books" msgstr "Populaire Boeken" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "Populaire publicaties van deze cataloog gebaseerd op Downloads." -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "Best beoordeeld" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "Populaire publicaties van deze cataloog gebaseerd op Beoordeling." -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "Nieuwe Boeken" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "Recentste boeken" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "Toon Willekeurige Boeken" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "Auteurs" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "Boeken gesorteerd op Auteur" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "Boeken gesorteerd op Categorie" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "Boeken gesorteerd op Serie" @@ -1062,31 +1071,31 @@ msgstr "Ontdek" msgid "Categories" msgstr "Categorieën" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "Talen" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "Publieke Boekenplanken" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "Jou Boekenplanken" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "Maak een boekenplank" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "Over" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "" @@ -1212,35 +1221,35 @@ msgstr "mag deze boekenplank publiek zijn?" msgid "Drag 'n drop to rearrange order" msgstr "Sleep en laat vallen om de volgorde te veranderen" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "Calibre bibliotheek statistieken" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "Boeken in deze Bibliotheek" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "Auteurs in deze Bibliotheek" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "Categorieën in deze Bibliotheek" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "Series in deze Bibliotheek" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "Gelinkte bibliotheken" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "Programma bibliotheek" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "Geïnstalleerde versie" diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index fbac2cd2..6e1d632d 100644 --- a/cps/translations/pl/LC_MESSAGES/messages.po +++ b/cps/translations/pl/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre Web - polski (POT: 2017-04-11 22:51)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2017-04-11 22:51+0200\n" "Last-Translator: Radosław Kierznowski \n" "Language: pl\n" @@ -22,9 +22,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "nie zainstalowane" @@ -70,373 +70,378 @@ msgstr "" "Nie można znaleźć żadnych formatów przystosowane do wysyłania pocztą " "e-mail" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "Gość" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "Żądanie o pakiet aktualizacji" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "Pobieranie pakietu aktualizacji" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "Rozpakowywanie pakietu aktualizacji" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "Pliki zostały zastąpione" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "Połączenia z bazą danych zostały zakończone" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "Serwer jest zatrzymany" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "Najpopularniejsze książki (najczęściej pobierane)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "Najlepiej oceniane książki" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "Losowe książki" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "Lista autorów" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:" -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "Lista serii" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "Seria: %(serie)s" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "Dostępne języki" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "Język: %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "Lista kategorii" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "Statystyki" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno" -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "Aktualizacja zakończona" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "szukaj" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "Przeczytane książki" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "Nieprzeczytane książki" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "Czytaj książkę" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "Proszę wypełnić wszystkie pola!" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "rejestracja" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później." -#: cps/web.py:1889 +#: cps/web.py:1909 msgid "This username or email address is already in use." msgstr "Nazwa użytkownika lub adres e-mail jest już w użyciu." -#: cps/web.py:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Zalogowałeś się jako: '%(nickname)s'" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "Błędna nazwa użytkownika lub hasło" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "logowanie" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..." -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Książka została pomyślnie wysłana do %(kindlemail)s" -#: cps/web.py:2026 +#: cps/web.py:2046 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s" -#: cps/web.py:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..." -#: cps/web.py:2072 +#: cps/web.py:2092 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Książka została dodana do półki: %(sname)s" -#: cps/web.py:2107 +#: cps/web.py:2127 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Książka została usunięta z półki: %(sname)s" -#: cps/web.py:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Półka o nazwie '%(title)s' już istnieje." -#: cps/web.py:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "Półka %(title)s została utworzona" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "Wystąpił błąd" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "utwórz półkę" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "Półka %(title)s została zmieniona" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "Edytuj półkę" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "pomyślnie usunięto półkę %(name)s" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "Półka: '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Zmieniono kolejność półki: '%(name)s'" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "Znaleziono istniejące konto dla tego adresu e-mail." -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "Profil użytkownika %(name)s" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "Zaktualizowano profil" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "Portal administracyjny" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Konfiguracja Calibre-web została zaktualizowana" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "Podstawowa konfiguracja" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę" -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "Dodaj nowego użytkownika" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "Użytkownik '%(user)s' został utworzony" -#: cps/web.py:2544 +#: cps/web.py:2565 msgid "Found an existing account for this email address or nickname." msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika." -#: cps/web.py:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "Zaktualizowano ustawienia poczty e-mail" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Testowy e-mail został pomyślnie wysłany do %(kindlemail)s" -#: cps/web.py:2576 +#: cps/web.py:2597 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s" -#: cps/web.py:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "Zaktualizowano ustawienia e-mail" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "Edytuj ustawienia poczty e-mail" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "Użytkownik '%(nick)s' został usunięty" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "Użytkownik '%(nick)s' został zaktualizowany" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "Wystąpił nieznany błąd." -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "Edytuj użytkownika %(nick)s" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "edytuj metadane" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Rozszerzenie pliku \"%s\" nie jest dozwolone do przesłania na ten serwer" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "Plik do przesłania musi mieć rozszerzenie" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)." -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)." -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)." @@ -592,7 +597,7 @@ msgid "Ok" msgstr "OK" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -627,13 +632,13 @@ msgstr "" msgid "Book Title" msgstr "Tytuł książki" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "Autor" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "Opis" @@ -674,74 +679,78 @@ msgstr "Tak" msgid "No" msgstr "Nie" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "wyświetl książkę po edycji" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "Uzyskaj metadane" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "Wyślij" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "Słowo kluczowe" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr " Szukaj słowa kluczowego " -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "Idź!" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "Kliknij okładkę, aby załadować metadane do formularza" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "Ładowanie..." -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "Zamknij" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "Wydawca" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "Źródło" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "Błąd wyszukiwania!" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "Brak wyników! Spróbuj innego słowa kluczowego." @@ -934,7 +943,7 @@ msgstr "Zapisz ustawienia" msgid "Save settings and send Test E-Mail" msgstr "Zapisz ustawienia i wyślij testową wiadomość e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "Następne" @@ -955,43 +964,43 @@ msgstr "Rozpocznij" msgid "Hot Books" msgstr "Najpopularniejsze książki" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "Popularne publikacje z tego katalogu bazujące na pobranych." -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "Najlepiej ocenione książki" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "Popularne publikacje z tego katalogu bazujące na ocenach." -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "Nowe książki" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "Ostatnie książki" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "Pokazuj losowe książki" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "Autorzy" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "Książki sortowane według autorów" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "Książki sortowane według kategorii" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "Książki sortowane według serii" @@ -1052,31 +1061,31 @@ msgstr "Odkrywaj" msgid "Categories" msgstr "Kategorie" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "Języki" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "Publiczne półki" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "Twoje półki" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "Utwórz półkę" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "O programie" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "" @@ -1203,35 +1212,35 @@ msgstr "półka powinna być publiczna?" msgid "Drag 'n drop to rearrange order" msgstr "Przeciągnij i upuść, aby zmienić kolejność" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "Statystyki biblioteki Calibre" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "Książki" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "Autorzy" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "Kategorie" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "Serie" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "Załączone biblioteki" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "Biblioteka programu" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "Zainstalowana wersja" diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index 0cb051dc..e7f94f62 100644 --- a/cps/translations/ru/LC_MESSAGES/messages.po +++ b/cps/translations/ru/LC_MESSAGES/messages.po @@ -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-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n" "Last-Translator: Pavel Korovin \n" "Language: ru\n" @@ -24,9 +24,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "Отсутствует" @@ -70,373 +70,378 @@ msgstr "Отправить на Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Невозоможно найти формат, подходящий для отправки по email" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "Гость" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "Проверка обновлений" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "Загрузка обновлений" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "Распаковка обновлений" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "Файлы заменены" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "Соеднинения с базой данных закрыты" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "Сервер остановлен" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "Обновления установлены, нажмите okay и перезагрузите страницу" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "Популярные книги (часто загружаемые)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "Книги с наивысшим рейтингом" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "Случайный выбор" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "Авторы" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Невозможно открыть книгу. Файл не существует или недоступен." -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "Серии" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "Серии: %(serie)s" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "Языки" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "Язык: %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "Категории" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "Категория: %(name)s" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "Статистика" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "Сервер перезагружен, пожалуйста, перезагрузите страницу" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "Производится остановка сервера, пожалуйста, закройте окно" -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "Обновление закончено" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "поиск" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "Прочитанные" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "Непрочитанные" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "Читать книгу" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "Пожалуйста, заполните все поля!" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "зарегистрироваться" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "Неизвестная ошибка. Пожалуйста, попробуйте позже." -#: cps/web.py:1889 +#: cps/web.py:1909 msgid "This username or email address is already in use." msgstr "Имя пользователя или адрес эл. почты уже используется" -#: cps/web.py:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Вы вошли как пользователь '%(nickname)s'" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "Ошибка в имени пользователя или пароле" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "войти" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP" -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Книга успешно отправлена на %(kindlemail)s" -#: cps/web.py:2026 +#: cps/web.py:2046 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Ошибка при отправке книги: %(res)s" -#: cps/web.py:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "Пожалуйста, сначала укажите ваш kindle email..." -#: cps/web.py:2072 +#: cps/web.py:2092 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Книга добавлена на книжную полку: %(sname)s" -#: cps/web.py:2107 +#: cps/web.py:2127 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Книга удалена с книжной полки: %(sname)s" -#: cps/web.py:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Книжкная полка с названием '%(title)s' уже существует." -#: cps/web.py:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "Создана книжная полка %(title)s" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "Произошла ошибка" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "создать книжную полку" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "Книжная полка %(title)s изменена" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "Изменить книжную полку" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Книжная полка %(name)s удалена" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "Книжная полка: '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Изменить расположение книжной полки '%(name)s'" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "Найдена учётная запись для для данного адреса email." -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "Профиль %(name)s" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "Профиль обновлён" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "Администрирование" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Конфигурация Calibre-web обновлена" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "Настройки сервера" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "Неверный путь к фалу БД, пожалуйста, укажите правильное расположение БД" -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "Добавить пользователя" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "Пользователь '%(user)s' добавлен" -#: cps/web.py:2544 +#: cps/web.py:2565 msgid "Found an existing account for this email address or nickname." msgstr "Для указанного адреса или имени найдена существующая учётная запись." -#: cps/web.py:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "Настройки почты изменены" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Тестовое сообщение успешно отправлено на адрес %(kindlemail)s" -#: cps/web.py:2576 +#: cps/web.py:2597 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Ошибка отправки тестового сообщения: %(res)s" -#: cps/web.py:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "Обновлены настройки e-mail" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "Изменить почтовые настройки" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "Пользователь '%(nick)s' удалён" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "Пользователь '%(nick)s' обновлён" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "Произошла неизвестная ошибка." -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "Изменить пользователя %(nick)s" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "изменить метаданные" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "неизвестно" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Запрещена загрузка файлов с расширением \"%s\"" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "неизвестно" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "Загружаемый файл должен иметь расширение" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Ошибка при создании пути %s (доступ запрещён)" -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Ошибка записи файоа %s (доступ запрещён)" -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Ошибка удаления файла %s (доступ запрещён)" @@ -592,7 +597,7 @@ msgid "Ok" msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -627,13 +632,13 @@ msgstr "Удалить книгу" msgid "Book Title" msgstr "Название" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "Автор" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "Описание" @@ -674,74 +679,78 @@ msgstr "Да" msgid "No" msgstr "Нет" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "смотреть книгу после редактирования" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "Получить метаданные" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "Отправить" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "Вы действительно уверены?" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "Книга будет удалена из БД Calibre" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "и с диска" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "Удалить" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "Ключевое слово" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr " Поиск по ключевому слову" -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "Искать" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "Нажмите на обложку, чтобы получить метаданные" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "Загрузка..." -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "Закрыть" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "Издатель" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "Источник" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "Ошибка поиска!" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "Нет результатов. Пожалуйста, попробуйте другое ключевое слово" @@ -931,7 +940,7 @@ msgstr "Сохранить настройки" msgid "Save settings and send Test E-Mail" msgstr "Сохранить настройки и отправить тестовое письмо" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "Дальше" @@ -952,43 +961,43 @@ msgstr "Старт" msgid "Hot Books" msgstr "Популярные книги" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "Популярные книги в этом каталоге, на основе количества скачиваний" -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "Книги с наилучшим рейтингом" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "Популярные книги из этого каталога на основании рейтинга" -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "Новые" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "Последние поступления" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "Показывать случайные книги" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "Авторы" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "Книги, отсортированные по автору" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "Книги, отсортированные по категории" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "Книги, отсортированные по серии" @@ -1049,31 +1058,31 @@ msgstr "Обзор" msgid "Categories" msgstr "Категории" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "Языки" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "Общие книжные полки" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "Ваши книжные полки" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "Создать книжную полку" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "О программе" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "" @@ -1199,35 +1208,35 @@ msgstr "сделать книжную полку доступной для вс msgid "Drag 'n drop to rearrange order" msgstr "Перетащите для изменения порядка" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "Статистика библиотеки Calibre" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "книг" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "авторов" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "категорий" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "серий" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "Установленное ПО" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "Название" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "Версия" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 20386f5d..862f3c08 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2017-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: 2017-01-06 17:00+0000\n" "Last-Translator: dalin \n" "Language: zh_Hans_CN\n" @@ -24,9 +24,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "未安装" @@ -70,373 +70,378 @@ msgstr "发送到Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "无法找到适合邮件发送的格式" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "游客" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "文件已替换" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "服务器已停止" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请按确定并刷新页面" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "最近添加的书籍" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "最新书籍" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "最旧书籍" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "书籍 (A-Z)" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "书籍 (Z-A)" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "热门书籍(最多下载)" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "最高评分书籍" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "随机书籍" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "作者列表" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "无法打开电子书。 文件不存在或者文件不可访问:" -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "丛书列表" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "丛书: %(serie)s" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "可用语言" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "语言: %(name)s" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "分类列表" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "分类: %(name)s" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "可执行权限缺失" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "统计" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "服务器已重启,请刷新页面" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "正在关闭服务器,请关闭窗口" -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "更新完成" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "搜索" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "已读书籍" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "未读书籍" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "阅读一本书" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "请填写所有字段" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "注册" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "发生一个未知错误。请稍后再试。" -#: cps/web.py:1889 +#: cps/web.py:1909 msgid "This username or email address is already in use." msgstr "此用户名或邮箱已被使用。" -#: cps/web.py:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "您现在已以'%(nickname)s'身份登录" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "用户名或密码错误" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "登录" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "找不到Token" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "Token已过期" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "成功!请返回您的设备" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱..." -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "此书已被成功发给 %(kindlemail)s" -#: cps/web.py:2026 +#: cps/web.py:2046 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "发送这本书的时候出现错误: %(res)s" -#: cps/web.py:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "请先配置您的kindle电子邮箱地址..." -#: cps/web.py:2072 +#: cps/web.py:2092 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "此书已被添加到书架: %(sname)s" -#: cps/web.py:2107 +#: cps/web.py:2127 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "此书已从书架 %(sname)s 中删除" -#: cps/web.py:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "已存在书架 '%(title)s'。" -#: cps/web.py:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "书架 %(title)s 已被创建" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "发生错误" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "创建书架" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "书架 %(title)s 已被修改" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "编辑书架" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "成功删除书架 %(name)s" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "书架: '%(name)s'" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "打开书架出错。书架不存在或不可访问" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "修改书架 '%(name)s' 顺序" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "找到已使用此邮箱的账号。" -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的资料" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "资料已更新" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "管理页" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "Calibre-web配置已更新" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "基本配置" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "DB位置无效,请输入正确路径" -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "添加新用户" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "用户 '%(user)s' 已被创建" -#: cps/web.py:2544 +#: cps/web.py:2565 msgid "Found an existing account for this email address or nickname." msgstr "已存在使用此邮箱或昵称的账号。" -#: cps/web.py:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "邮箱设置已更新" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "测试邮件已成功发送到 %(kindlemail)s" -#: cps/web.py:2576 +#: cps/web.py:2597 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "发送测试邮件时发生错误: %(res)s" -#: cps/web.py:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "E-Mail 设置已更新" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "编辑邮箱设置" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户 '%(nick)s' 已被删除" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "用户 '%(nick)s' 已被更新" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "发生未知错误。" -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "打开电子书出错。文件不存在或不可访问" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "编辑元数据" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" -msgstr "未知" - -#: cps/web.py:2954 +#: cps/web.py:2776 cps/web.py:3004 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "不能上传后缀为 \"%s\" 的文件到此服务器" -#: cps/web.py:2960 +#: cps/web.py:2787 +#, python-format +msgid "Failed to store file %s." +msgstr "" + +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "未知" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "要上传的文件必须有一个后缀" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "创建路径 %s 失败(权限拒绝)。" -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "存储文件 %s 失败(权限拒绝)。" -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "删除文件 %s 失败(权限拒绝)。" @@ -592,7 +597,7 @@ msgid "Ok" msgstr "确定" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -627,13 +632,13 @@ msgstr "删除书籍" msgid "Book Title" msgstr "书名" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "作者" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "简介" @@ -674,74 +679,78 @@ msgstr "确认" msgid "No" msgstr "" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "编辑后查看书籍" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "获取元数据" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "提交" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "您真的确认?" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "书籍会被从Calibre数据库和硬盘中删除" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "删除" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "关键字" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr "搜索关键字" -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "走起!" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "点击封面加载元数据到表单" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "加载中..." -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "关闭" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "出版社" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "来源" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "搜索错误" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "没有结果!请尝试别的关键字." @@ -931,7 +940,7 @@ msgstr "保存设置" msgid "Save settings and send Test E-Mail" msgstr "保存设置并发送测试邮件" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "下一个" @@ -952,43 +961,43 @@ msgstr "开始" msgid "Hot Books" msgstr "热门书籍" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "基于下载数的热门书籍" -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "最高评分书籍" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "基于评分的热门书籍" -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "新书" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "最新书籍" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "显示随机书籍" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "作者" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "书籍按作者排序" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "书籍按分类排序" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "书籍按丛书排序" @@ -1049,31 +1058,31 @@ msgstr "发现" msgid "Categories" msgstr "分类" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "语言" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "公开书架" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "您的书架" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "创建书架" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "关于" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "" @@ -1199,35 +1208,35 @@ msgstr "要公开此书架吗?" msgid "Drag 'n drop to rearrange order" msgstr "拖拽以重新排序" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "Calibre书库统计" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "本书在此书库" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "个作者在此书库" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "个分类在此书库" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "个丛书在此书库" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "链接库" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "程序库" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "已安装版本" diff --git a/messages.pot b/messages.pot index facfb748..339aad6a 100644 --- a/messages.pot +++ b/messages.pot @@ -8,16 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-09-16 07:48+0200\n" +"POT-Creation-Date: 2017-11-01 16:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.4.0\n" +"Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1358 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 msgid "not installed" msgstr "" @@ -61,373 +61,378 @@ msgstr "" msgid "Could not find any formats suitable for sending by email" msgstr "" -#: cps/ub.py:556 +#: cps/ub.py:567 msgid "Guest" msgstr "" -#: cps/web.py:953 +#: cps/web.py:962 msgid "Requesting update package" msgstr "" -#: cps/web.py:954 +#: cps/web.py:963 msgid "Downloading update package" msgstr "" -#: cps/web.py:955 +#: cps/web.py:964 msgid "Unzipping update package" msgstr "" -#: cps/web.py:956 +#: cps/web.py:965 msgid "Files are replaced" msgstr "" -#: cps/web.py:957 +#: cps/web.py:966 msgid "Database connections are closed" msgstr "" -#: cps/web.py:958 +#: cps/web.py:967 msgid "Server is stopped" msgstr "" -#: cps/web.py:959 +#: cps/web.py:968 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/web.py:1033 +#: cps/web.py:1042 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1042 +#: cps/web.py:1051 msgid "Newest Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1060 msgid "Oldest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1069 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1078 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1096 +#: cps/web.py:1105 msgid "Hot Books (most downloaded)" msgstr "" -#: cps/web.py:1106 +#: cps/web.py:1115 msgid "Best rated books" msgstr "" -#: cps/templates/index.xml:35 cps/web.py:1115 +#: cps/templates/index.xml:32 cps/web.py:1124 msgid "Random Books" msgstr "" -#: cps/web.py:1124 +#: cps/web.py:1135 msgid "Author list" msgstr "" -#: cps/web.py:1134 cps/web.py:1190 cps/web.py:1315 cps/web.py:1774 +#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" -#: cps/templates/index.xml:70 cps/web.py:1176 +#: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" msgstr "" -#: cps/web.py:1188 +#: cps/web.py:1199 #, python-format msgid "Series: %(serie)s" msgstr "" -#: cps/web.py:1221 +#: cps/web.py:1231 msgid "Available languages" msgstr "" -#: cps/web.py:1236 +#: cps/web.py:1246 #, python-format msgid "Language: %(name)s" msgstr "" -#: cps/templates/index.xml:63 cps/web.py:1245 +#: cps/templates/index.xml:58 cps/web.py:1255 msgid "Category list" msgstr "" -#: cps/web.py:1257 +#: cps/web.py:1267 #, python-format msgid "Category: %(name)s" msgstr "" -#: cps/web.py:1369 +#: cps/web.py:1379 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1383 +#: cps/web.py:1393 msgid "Statistics" msgstr "" -#: cps/web.py:1547 +#: cps/web.py:1557 msgid "Server restarted, please reload page" msgstr "" -#: cps/web.py:1549 +#: cps/web.py:1559 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1575 msgid "Update done" msgstr "" -#: cps/web.py:1640 cps/web.py:1653 +#: cps/web.py:1650 cps/web.py:1663 msgid "search" msgstr "" -#: cps/templates/index.xml:42 cps/templates/index.xml:46 -#: cps/templates/layout.html:127 cps/web.py:1729 +#: cps/templates/index.xml:39 cps/templates/index.xml:42 +#: cps/templates/layout.html:127 cps/web.py:1745 msgid "Read Books" msgstr "" -#: cps/templates/index.xml:49 cps/templates/index.xml:53 -#: cps/templates/layout.html:128 cps/web.py:1732 +#: cps/templates/index.xml:45 cps/templates/index.xml:48 +#: cps/templates/layout.html:128 cps/web.py:1748 msgid "Unread Books" msgstr "" -#: cps/web.py:1805 cps/web.py:1807 cps/web.py:1809 cps/web.py:1816 +#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 msgid "Read a Book" msgstr "" -#: cps/web.py:1868 cps/web.py:2493 +#: cps/web.py:1888 cps/web.py:2514 msgid "Please fill out all fields!" msgstr "" -#: cps/web.py:1869 cps/web.py:1885 cps/web.py:1890 cps/web.py:1892 +#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 msgid "register" msgstr "" -#: cps/web.py:1884 +#: cps/web.py:1904 msgid "An unknown error occured. Please try again later." msgstr "" -#: cps/web.py:1889 +#: cps/web.py:1909 msgid "This username or email address is already in use." msgstr "" -#: cps/web.py:1908 cps/web.py:2004 +#: cps/web.py:1928 cps/web.py:2024 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1913 +#: cps/web.py:1933 msgid "Wrong Username or Password" msgstr "" -#: cps/web.py:1919 cps/web.py:1940 +#: cps/web.py:1939 cps/web.py:1960 msgid "login" msgstr "" -#: cps/web.py:1952 cps/web.py:1983 +#: cps/web.py:1972 cps/web.py:2003 msgid "Token not found" msgstr "" -#: cps/web.py:1960 cps/web.py:1991 +#: cps/web.py:1980 cps/web.py:2011 msgid "Token has expired" msgstr "" -#: cps/web.py:1968 +#: cps/web.py:1988 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2018 +#: cps/web.py:2038 msgid "Please configure the SMTP mail settings first..." msgstr "" -#: cps/web.py:2022 +#: cps/web.py:2042 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2026 +#: cps/web.py:2046 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:2028 cps/web.py:2578 +#: cps/web.py:2048 cps/web.py:2599 msgid "Please configure your kindle email address first..." msgstr "" -#: cps/web.py:2072 +#: cps/web.py:2092 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "" -#: cps/web.py:2107 +#: cps/web.py:2127 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "" -#: cps/web.py:2126 cps/web.py:2150 +#: cps/web.py:2146 cps/web.py:2170 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "" -#: cps/web.py:2131 +#: cps/web.py:2151 #, python-format msgid "Shelf %(title)s created" msgstr "" -#: cps/web.py:2133 cps/web.py:2161 +#: cps/web.py:2153 cps/web.py:2181 msgid "There was an error" msgstr "" -#: cps/web.py:2134 cps/web.py:2136 +#: cps/web.py:2154 cps/web.py:2156 msgid "create a shelf" msgstr "" -#: cps/web.py:2159 +#: cps/web.py:2179 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2162 cps/web.py:2164 +#: cps/web.py:2182 cps/web.py:2184 msgid "Edit a shelf" msgstr "" -#: cps/web.py:2184 +#: cps/web.py:2205 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "" -#: cps/web.py:2206 +#: cps/web.py:2227 #, python-format msgid "Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2209 +#: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2241 +#: cps/web.py:2262 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2306 +#: cps/web.py:2327 msgid "Found an existing account for this email address." msgstr "" -#: cps/web.py:2308 cps/web.py:2312 +#: cps/web.py:2329 cps/web.py:2333 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:2309 +#: cps/web.py:2330 msgid "Profile updated" msgstr "" -#: cps/web.py:2323 +#: cps/web.py:2344 msgid "Admin page" msgstr "" -#: cps/web.py:2447 +#: cps/web.py:2468 msgid "Calibre-web configuration updated" msgstr "" -#: cps/web.py:2454 cps/web.py:2460 cps/web.py:2474 +#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 msgid "Basic Configuration" msgstr "" -#: cps/web.py:2458 +#: cps/web.py:2479 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2495 cps/web.py:2548 +#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 msgid "Add new user" msgstr "" -#: cps/web.py:2540 +#: cps/web.py:2561 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/web.py:2544 +#: cps/web.py:2565 msgid "Found an existing account for this email address or nickname." msgstr "" -#: cps/web.py:2566 +#: cps/web.py:2587 msgid "Mail settings updated" msgstr "" -#: cps/web.py:2573 +#: cps/web.py:2594 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2576 +#: cps/web.py:2597 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2580 +#: cps/web.py:2601 msgid "E-Mail settings updated" msgstr "" -#: cps/web.py:2581 +#: cps/web.py:2602 msgid "Edit mail settings" msgstr "" -#: cps/web.py:2610 +#: cps/web.py:2631 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/web.py:2708 +#: cps/web.py:2729 #, python-format msgid "User '%(nick)s' updated" msgstr "" -#: cps/web.py:2711 +#: cps/web.py:2732 msgid "An unknown error occured." msgstr "" -#: cps/web.py:2714 +#: cps/web.py:2735 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/web.py:2730 +#: cps/web.py:2751 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2745 cps/web.py:2917 cps/web.py:3060 +#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 msgid "edit metadata" msgstr "" -#: cps/web.py:2757 cps/web.py:2761 -msgid "unknown" +#: cps/web.py:2776 cps/web.py:3004 +#, python-format +msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2954 +#: cps/web.py:2787 #, python-format -msgid "File extension \"%s\" is not allowed to be uploaded to this server" +msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2960 +#: cps/web.py:2807 cps/web.py:2811 +msgid "unknown" +msgstr "" + +#: cps/web.py:3010 msgid "File to be uploaded must have an extension" msgstr "" -#: cps/web.py:2979 +#: cps/web.py:3029 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "" -#: cps/web.py:2984 +#: cps/web.py:3034 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "" -#: cps/web.py:2989 +#: cps/web.py:3039 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "" @@ -583,7 +588,7 @@ msgid "Ok" msgstr "" #: cps/templates/admin.html:105 cps/templates/admin.html:119 -#: cps/templates/book_edit.html:127 cps/templates/book_edit.html:149 +#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 @@ -618,13 +623,13 @@ msgstr "" msgid "Book Title" msgstr "" -#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208 -#: cps/templates/book_edit.html:226 cps/templates/search_form.html:10 +#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:216 +#: cps/templates/book_edit.html:234 cps/templates/search_form.html:10 msgid "Author" msgstr "" -#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213 -#: cps/templates/book_edit.html:228 +#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:221 +#: cps/templates/book_edit.html:236 msgid "Description" msgstr "" @@ -665,74 +670,78 @@ msgstr "" msgid "No" msgstr "" -#: cps/templates/book_edit.html:122 +#: cps/templates/book_edit.html:121 +msgid "Upload format" +msgstr "" + +#: cps/templates/book_edit.html:130 msgid "view book after edit" msgstr "" -#: cps/templates/book_edit.html:125 cps/templates/book_edit.html:161 +#: cps/templates/book_edit.html:133 cps/templates/book_edit.html:169 msgid "Get metadata" msgstr "" -#: cps/templates/book_edit.html:126 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 msgid "Submit" msgstr "" -#: cps/templates/book_edit.html:140 +#: cps/templates/book_edit.html:148 msgid "Are really you sure?" msgstr "" -#: cps/templates/book_edit.html:143 +#: cps/templates/book_edit.html:151 msgid "Book will be deleted from Calibre database" msgstr "" -#: cps/templates/book_edit.html:144 +#: cps/templates/book_edit.html:152 msgid "and from hard disk" msgstr "" -#: cps/templates/book_edit.html:148 +#: cps/templates/book_edit.html:156 msgid "Delete" msgstr "" -#: cps/templates/book_edit.html:164 +#: cps/templates/book_edit.html:172 msgid "Keyword" msgstr "" -#: cps/templates/book_edit.html:165 +#: cps/templates/book_edit.html:173 msgid " Search keyword " msgstr "" -#: cps/templates/book_edit.html:167 cps/templates/layout.html:43 +#: cps/templates/book_edit.html:175 cps/templates/layout.html:43 msgid "Go!" msgstr "" -#: cps/templates/book_edit.html:171 +#: cps/templates/book_edit.html:179 msgid "Click the cover to load metadata to the form" msgstr "" -#: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223 +#: cps/templates/book_edit.html:191 cps/templates/book_edit.html:231 msgid "Loading..." msgstr "" -#: cps/templates/book_edit.html:188 cps/templates/layout.html:199 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 msgid "Close" msgstr "" -#: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227 +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:235 #: cps/templates/detail.html:125 cps/templates/search_form.html:14 msgid "Publisher" msgstr "" -#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229 +#: cps/templates/book_edit.html:223 cps/templates/book_edit.html:237 msgid "Source" msgstr "" -#: cps/templates/book_edit.html:224 +#: cps/templates/book_edit.html:232 msgid "Search error!" msgstr "" -#: cps/templates/book_edit.html:225 +#: cps/templates/book_edit.html:233 msgid "No Result! Please try anonther keyword." msgstr "" @@ -922,7 +931,7 @@ msgstr "" msgid "Save settings and send Test E-Mail" msgstr "" -#: cps/templates/feed.xml:20 cps/templates/layout.html:183 +#: cps/templates/feed.xml:20 cps/templates/layout.html:185 msgid "Next" msgstr "" @@ -943,43 +952,43 @@ msgstr "" msgid "Hot Books" msgstr "" -#: cps/templates/index.xml:18 +#: cps/templates/index.xml:17 msgid "Popular publications from this catalog based on Downloads." msgstr "" -#: cps/templates/index.xml:21 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:124 msgid "Best rated Books" msgstr "" -#: cps/templates/index.xml:25 +#: cps/templates/index.xml:23 msgid "Popular publications from this catalog based on Rating." msgstr "" -#: cps/templates/index.xml:28 +#: cps/templates/index.xml:26 msgid "New Books" msgstr "" -#: cps/templates/index.xml:32 +#: cps/templates/index.xml:29 msgid "The latest Books" msgstr "" -#: cps/templates/index.xml:39 +#: cps/templates/index.xml:35 msgid "Show Random Books" msgstr "" -#: cps/templates/index.xml:56 cps/templates/layout.html:139 +#: cps/templates/index.xml:52 cps/templates/layout.html:140 msgid "Authors" msgstr "" -#: cps/templates/index.xml:60 +#: cps/templates/index.xml:55 msgid "Books ordered by Author" msgstr "" -#: cps/templates/index.xml:67 +#: cps/templates/index.xml:61 msgid "Books ordered by category" msgstr "" -#: cps/templates/index.xml:74 +#: cps/templates/index.xml:67 msgid "Books ordered by series" msgstr "" @@ -1040,31 +1049,31 @@ msgstr "" msgid "Categories" msgstr "" -#: cps/templates/layout.html:141 cps/templates/search_form.html:58 +#: cps/templates/layout.html:143 cps/templates/search_form.html:58 msgid "Languages" msgstr "" -#: cps/templates/layout.html:144 +#: cps/templates/layout.html:146 msgid "Public Shelves" msgstr "" -#: cps/templates/layout.html:148 +#: cps/templates/layout.html:150 msgid "Your Shelves" msgstr "" -#: cps/templates/layout.html:153 +#: cps/templates/layout.html:155 msgid "Create a Shelf" msgstr "" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 cps/templates/stats.html:3 msgid "About" msgstr "" -#: cps/templates/layout.html:168 +#: cps/templates/layout.html:170 msgid "Previous" msgstr "" -#: cps/templates/layout.html:195 +#: cps/templates/layout.html:197 msgid "Book Details" msgstr "" @@ -1190,35 +1199,35 @@ msgstr "" msgid "Drag 'n drop to rearrange order" msgstr "" -#: cps/templates/stats.html:3 +#: cps/templates/stats.html:7 msgid "Calibre library statistics" msgstr "" -#: cps/templates/stats.html:8 +#: cps/templates/stats.html:12 msgid "Books in this Library" msgstr "" -#: cps/templates/stats.html:12 +#: cps/templates/stats.html:16 msgid "Authors in this Library" msgstr "" -#: cps/templates/stats.html:16 +#: cps/templates/stats.html:20 msgid "Categories in this Library" msgstr "" -#: cps/templates/stats.html:20 +#: cps/templates/stats.html:24 msgid "Series in this Library" msgstr "" -#: cps/templates/stats.html:24 +#: cps/templates/stats.html:28 msgid "Linked libraries" msgstr "" -#: cps/templates/stats.html:28 +#: cps/templates/stats.html:32 msgid "Program library" msgstr "" -#: cps/templates/stats.html:29 +#: cps/templates/stats.html:33 msgid "Installed Version" msgstr "" From af8d908bbac22409e7cd5f3bcc7ea34e96193961 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Wed, 1 Nov 2017 16:55:51 +0100 Subject: [PATCH 007/180] Fix #371, #372 --- cps/ub.py | 2 +- cps/web.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cps/ub.py b/cps/ub.py index fe1ba719..0f1c5b5a 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -153,7 +153,7 @@ class User(UserBase, Base): role = Column(SmallInteger, default=ROLE_USER) password = Column(String) kindle_mail = Column(String(120), default="") - shelf = relationship('Shelf', backref='user', lazy='dynamic') + shelf = relationship('Shelf', backref='user', lazy='dynamic', order_by='Shelf.name') downloads = relationship('Downloads', backref='user', lazy='dynamic') locale = Column(String(2), default="en") sidebar_view = Column(Integer, default=1) diff --git a/cps/web.py b/cps/web.py index 9935d7d4..b9f7a500 100755 --- a/cps/web.py +++ b/cps/web.py @@ -623,7 +623,7 @@ def before_request(): g.user = current_user g.allow_registration = config.config_public_reg g.allow_upload = config.config_uploading - g.public_shelfes = ub.session.query(ub.Shelf).filter(ub.Shelf.is_public == 1).all() + g.public_shelfes = ub.session.query(ub.Shelf).filter(ub.Shelf.is_public == 1).order_by(ub.Shelf.name).all() if not config.db_configured and request.endpoint not in ('basic_configuration', 'login') and '/static/' not in request.path: return redirect(url_for('basic_configuration')) @@ -1250,7 +1250,7 @@ def language(name, page): @login_required_if_no_ano def category_list(): entries = db.session.query(db.Tags, func.count('books_tags_link.book').label('count'))\ - .join(db.books_tags_link).join(db.Books).filter(common_filters())\ + .join(db.books_tags_link).join(db.Books).order_by(db.Tags.name).filter(common_filters())\ .group_by('books_tags_link.tag').all() return render_title_template('list.html', entries=entries, folder='category', title=_(u"Category list")) From 5b13171060815713b6e6bdf9637bce044a28a863 Mon Sep 17 00:00:00 2001 From: Thijs van Ulden Date: Sun, 5 Nov 2017 10:24:35 +0100 Subject: [PATCH 008/180] Updated Dutch translation --- cps/translations/nl/LC_MESSAGES/messages.po | 74 ++++++++++----------- 1 file changed, 34 insertions(+), 40 deletions(-) diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 9be27f42..fcbe2a07 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -40,21 +40,21 @@ msgstr "niet geïnstalleerd" #: cps/helper.py:77 #, python-format msgid "kindlegen binary %(kindlepath)s not found" -msgstr "" +msgstr "kindlegen binary %(kindlepath)s niet gevonden" #: cps/helper.py:83 #, python-format msgid "epub format not found for book id: %(book)d" -msgstr "" +msgstr "epub type niet gevonden voor boek met id: %(book)d" #: cps/helper.py:93 msgid "kindlegen failed, no excecution permissions" -msgstr "" +msgstr "kindlegen gefaald, geen rechten om uit te voeren" #: cps/helper.py:108 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" -msgstr "" +msgstr "Kindlegen gefaald met Error %(error)s. Bericht: %(message)s" #: cps/helper.py:187 #, python-format @@ -147,9 +147,7 @@ msgstr "Auteur lijst" #: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 msgid "Error opening eBook. File does not exist or file is not accessible:" -msgstr "" -"Fout bij openen van het boek. Bestand bestaat niet of is niet " -"toegankelijk:" +msgstr "Fout bij openen van het boek. Bestand bestaat niet of is niet toegankelijk:" #: cps/templates/index.xml:64 cps/web.py:1187 msgid "Series list" @@ -180,7 +178,7 @@ msgstr "Categorie: %(name)s" #: cps/web.py:1379 msgid "Excecution permissions missing" -msgstr "" +msgstr "Rechten om uit te voeren ontbreken" #: cps/web.py:1393 msgid "Statistics" @@ -324,9 +322,7 @@ msgstr "Boekenplank: '%(name)s'" #: cps/web.py:2230 msgid "Error opening shelf. Shelf does not exist or is not accessible" -msgstr "" -"Fout bij openen boekenplank. Boekenplank bestaat niet of is niet " -"toegankelijk" +msgstr "Fout bij openen boekenplank. Boekenplank bestaat niet of is niet toegankelijk" #: cps/web.py:2262 #, python-format @@ -432,7 +428,7 @@ msgstr "Het uploaden van bestandsextensie \"%s\" is niet toegestaan op deze serv #: cps/web.py:2787 #, python-format msgid "Failed to store file %s." -msgstr "" +msgstr "Bestand opslaan niet gelukt voor %s." #: cps/web.py:2807 cps/web.py:2811 msgid "unknown" @@ -625,15 +621,15 @@ msgstr "Aan het updaten, gelieve de pagina niet te herladen" #: cps/templates/author.html:15 msgid "via" -msgstr "" +msgstr "via" #: cps/templates/author.html:23 msgid "In Library" -msgstr "" +msgstr "In Bibliotheek" #: cps/templates/author.html:69 msgid "More by" -msgstr "" +msgstr "Meer van" #: cps/templates/book_edit.html:16 msgid "Delete Book" @@ -692,7 +688,7 @@ msgstr "Nee" #: cps/templates/book_edit.html:121 msgid "Upload format" -msgstr "" +msgstr "Upload type" #: cps/templates/book_edit.html:130 msgid "view book after edit" @@ -816,7 +812,7 @@ msgstr "Rguliere expressie op titels te sorteren" #: cps/templates/config_edit.html:76 msgid "Tags for Mature Content" -msgstr "" +msgstr "Tags voor Volwassen Inhoud" #: cps/templates/config_edit.html:93 msgid "Enable uploading" @@ -832,23 +828,23 @@ msgstr "Publieke registratie aanzetten" #: cps/templates/config_edit.html:105 msgid "Enable remote login (\"magic link\")" -msgstr "" +msgstr "Maak op afstand ionloggen mogelijk (\"magic link\")" #: cps/templates/config_edit.html:110 msgid "Use" -msgstr "" +msgstr "Gebruik" #: cps/templates/config_edit.html:111 msgid "Obtain an API Key" -msgstr "" +msgstr "Verkrijg een API sleutel" #: cps/templates/config_edit.html:115 msgid "Goodreads API Key" -msgstr "" +msgstr "Goodreads API sleutel" #: cps/templates/config_edit.html:119 msgid "Goodreads API Secret" -msgstr "" +msgstr "Goodreads API geheim" #: cps/templates/config_edit.html:125 msgid "Default Settings for new users" @@ -921,9 +917,7 @@ msgstr "Bewerk metadata" #: cps/templates/email_edit.html:11 msgid "SMTP port (usually 25 for plain SMTP and 465 for SSL and 587 for STARTTLS)" -msgstr "" -"SMTP poort (meestal 25 voor normale SMTP en 465 voor SSL en 587 voor " -"STARTTLS)" +msgstr "SMTP poort (meestal 25 voor normale SMTP en 465 voor SSL en 587 voor STARTTLS)" #: cps/templates/email_edit.html:15 msgid "Encryption" @@ -1036,32 +1030,32 @@ msgstr "Verkennen" #: cps/templates/layout.html:107 msgid "Recently Added" -msgstr "" +msgstr "Recent Toegevoegd" #: cps/templates/layout.html:110 msgid "Sorted Books" -msgstr "" +msgstr "Gesorteerde Boeken" #: cps/templates/layout.html:114 cps/templates/layout.html:115 #: cps/templates/layout.html:116 cps/templates/layout.html:117 msgid "Sort By" -msgstr "" +msgstr "Sorteren op" #: cps/templates/layout.html:114 msgid "Newest" -msgstr "" +msgstr "Nieuwste" #: cps/templates/layout.html:115 msgid "Oldest" -msgstr "" +msgstr "Oudste" #: cps/templates/layout.html:116 msgid "Ascending" -msgstr "" +msgstr "Oplopend" #: cps/templates/layout.html:117 msgid "Descending" -msgstr "" +msgstr "Aflopend" #: cps/templates/layout.html:131 msgid "Discover" @@ -1093,11 +1087,11 @@ msgstr "Over" #: cps/templates/layout.html:170 msgid "Previous" -msgstr "" +msgstr "Vorige" #: cps/templates/layout.html:197 msgid "Book Details" -msgstr "" +msgstr "Boek Details" #: cps/templates/login.html:8 cps/templates/login.html:9 #: cps/templates/register.html:7 cps/templates/user_edit.html:8 @@ -1115,7 +1109,7 @@ msgstr "Onthoumij" #: cps/templates/login.html:22 msgid "Log in with magic link" -msgstr "" +msgstr "Inloggen met magische koppeling" #: cps/templates/osd.xml:5 msgid "Calibre Web ebook catalog" @@ -1123,7 +1117,7 @@ msgstr "Calible web ebook cataloog" #: cps/templates/read.html:69 msgid "Settings" -msgstr "" +msgstr "Instellingen" #: cps/templates/read.html:72 msgid "Reflow text when sidebars are open." @@ -1159,15 +1153,15 @@ msgstr "Jou email adres" #: cps/templates/remote_login.html:6 msgid "Using your another device, visit" -msgstr "" +msgstr "Bezoek met je andere apparaat" #: cps/templates/remote_login.html:6 msgid "and log in" -msgstr "" +msgstr "en log in" #: cps/templates/remote_login.html:9 msgid "Once you do so, you will automatically get logged in on this device." -msgstr "" +msgstr "Eenmaal gedaan wordt je automagisch op dit apparaat ingelogd." #: cps/templates/search.html:6 msgid "No Results for:" @@ -1303,7 +1297,7 @@ msgstr "Toon willekeurige boeken in gedetailleerd zicht" #: cps/templates/user_edit.html:90 msgid "Show mature content" -msgstr "" +msgstr "Toon Volwassen Inhoud" #: cps/templates/user_edit.html:123 msgid "Delete this user" From fd39cbaa6fc0964c2b14d0e56b68067fb82b97c9 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 12 Nov 2017 13:40:56 +0100 Subject: [PATCH 009/180] Fix #363 --- cps/templates/user_edit.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/templates/user_edit.html b/cps/templates/user_edit.html index b635ca4d..7eb0dee3 100644 --- a/cps/templates/user_edit.html +++ b/cps/templates/user_edit.html @@ -11,7 +11,7 @@ {% endif %}

{% if ( g.user and g.user.role_passwd() or g.user.role_admin() ) and not content.role_anonymous() %} +
+ + +
+
+ + +
diff --git a/cps/ub.py b/cps/ub.py index 0f1c5b5a..7b1f92ba 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -39,6 +39,9 @@ SIDEBAR_RANDOM = 32 SIDEBAR_AUTHOR = 64 SIDEBAR_BEST_RATED = 128 SIDEBAR_READ_AND_UNREAD = 256 +SIDEBAR_RECENT = 512 +SIDEBAR_SORTED = 1024 + DEFAULT_PASS = "admin123" DEFAULT_PORT = int(os.environ.get("CALIBRE_PORT", 8083)) @@ -120,6 +123,12 @@ class UserBase: def show_hot_books(self): return bool((self.sidebar_view is not None)and(self.sidebar_view & SIDEBAR_HOT == SIDEBAR_HOT)) + def show_recent(self): + return bool((self.sidebar_view is not None)and(self.sidebar_view & SIDEBAR_RECENT == SIDEBAR_RECENT)) + + def show_sorted(self): + return bool((self.sidebar_view is not None)and(self.sidebar_view & SIDEBAR_SORTED == SIDEBAR_SORTED)) + def show_series(self): return bool((self.sidebar_view is not None)and(self.sidebar_view & SIDEBAR_SERIES == SIDEBAR_SERIES)) @@ -496,9 +505,10 @@ def migrate_Database(): conn = engine.connect() conn.execute("UPDATE user SET 'sidebar_view' = (random_books* :side_random + language_books * :side_lang " "+ series_books * :side_series + category_books * :side_category + hot_books * " - ":side_hot + :side_autor + :detail_random)",{'side_random': SIDEBAR_RANDOM, - 'side_lang': SIDEBAR_LANGUAGE, 'side_series': SIDEBAR_SERIES, 'side_category': SIDEBAR_CATEGORY, - 'side_hot': SIDEBAR_HOT, 'side_autor': SIDEBAR_AUTHOR, 'detail_random': DETAIL_RANDOM}) + ":side_hot + :side_autor + :detail_random)" + ,{'side_random': SIDEBAR_RANDOM, 'side_lang': SIDEBAR_LANGUAGE, 'side_series': SIDEBAR_SERIES, + 'side_category': SIDEBAR_CATEGORY, 'side_hot': SIDEBAR_HOT, 'side_autor': SIDEBAR_AUTHOR, + 'detail_random': DETAIL_RANDOM}) session.commit() try: session.query(exists().where(User.mature_content)).scalar() @@ -582,8 +592,8 @@ def create_admin_user(): user.nickname = "admin" user.role = ROLE_USER + ROLE_ADMIN + ROLE_DOWNLOAD + ROLE_UPLOAD + ROLE_EDIT + ROLE_DELETE_BOOKS + ROLE_PASSWD user.sidebar_view = DETAIL_RANDOM + SIDEBAR_LANGUAGE + SIDEBAR_SERIES + SIDEBAR_CATEGORY + SIDEBAR_HOT + \ - SIDEBAR_RANDOM + SIDEBAR_AUTHOR + SIDEBAR_BEST_RATED + SIDEBAR_READ_AND_UNREAD - + SIDEBAR_RANDOM + SIDEBAR_AUTHOR + SIDEBAR_BEST_RATED + SIDEBAR_READ_AND_UNREAD + SIDEBAR_RECENT + \ + SIDEBAR_SORTED user.password = generate_password_hash(DEFAULT_PASS) diff --git a/cps/web.py b/cps/web.py index b9f7a500..7a80f5e1 100755 --- a/cps/web.py +++ b/cps/web.py @@ -1046,27 +1046,35 @@ def index(page): @app.route('/books/newest/page/') @login_required_if_no_ano def newest_books(page): - entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.pubdate.desc()) - return render_title_template('index.html', random=random, entries=entries, pagination=pagination, - title=_(u"Newest Books")) - + if current_cuser.show_sorted(): + entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.pubdate.desc()) + return render_title_template('index.html', random=random, entries=entries, pagination=pagination, + title=_(u"Newest Books")) + else: + abort(404) @app.route('/books/oldest', defaults={'page': 1}) @app.route('/books/oldest/page/') @login_required_if_no_ano def oldest_books(page): - entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.pubdate) - return render_title_template('index.html', random=random, entries=entries, pagination=pagination, - title=_(u"Oldest Books")) + if current_cuser.show_sorted(): + entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.pubdate) + return render_title_template('index.html', random=random, entries=entries, pagination=pagination, + title=_(u"Oldest Books")) + else: + abort(404) @app.route('/books/a-z', defaults={'page': 1}) @app.route('/books/a-z/page/') @login_required_if_no_ano def titles_ascending(page): - entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.sort) - return render_title_template('index.html', random=random, entries=entries, pagination=pagination, - title=_(u"Books (A-Z)")) + if current_cuser.show_sorted(): + entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.sort) + return render_title_template('index.html', random=random, entries=entries, pagination=pagination, + title=_(u"Books (A-Z)")) + else: + abort(404) @app.route('/books/z-a', defaults={'page': 1}) @@ -1082,57 +1090,68 @@ def titles_descending(page): @app.route('/hot/page/') @login_required_if_no_ano def hot_books(page): - if current_user.show_detail_random(): - random = db.session.query(db.Books).filter(common_filters())\ - .order_by(func.random()).limit(config.config_random_books) - else: - random = false - off = int(int(config.config_books_per_page) * (page - 1)) - all_books = ub.session.query(ub.Downloads, ub.func.count(ub.Downloads.book_id)).order_by( - ub.func.count(ub.Downloads.book_id).desc()).group_by(ub.Downloads.book_id) - hot_books = all_books.offset(off).limit(config.config_books_per_page) - entries = list() - for book in hot_books: - downloadBook = db.session.query(db.Books).filter(common_filters()).filter(db.Books.id == book.Downloads.book_id).first() - if downloadBook: - entries.append(downloadBook) + if current_user.show_hot_books(): + if current_user.show_detail_random(): + random = db.session.query(db.Books).filter(common_filters())\ + .order_by(func.random()).limit(config.config_random_books) else: - ub.session.query(ub.Downloads).filter(book.Downloads.book_id == ub.Downloads.book_id).delete() - ub.session.commit() - numBooks = entries.__len__() - pagination = Pagination(page, config.config_books_per_page, numBooks) - return render_title_template('index.html', random=random, entries=entries, pagination=pagination, - title=_(u"Hot Books (most downloaded)")) + random = false + off = int(int(config.config_books_per_page) * (page - 1)) + all_books = ub.session.query(ub.Downloads, ub.func.count(ub.Downloads.book_id)).order_by( + ub.func.count(ub.Downloads.book_id).desc()).group_by(ub.Downloads.book_id) + hot_books = all_books.offset(off).limit(config.config_books_per_page) + entries = list() + for book in hot_books: + downloadBook = db.session.query(db.Books).filter(common_filters()).filter(db.Books.id == book.Downloads.book_id).first() + if downloadBook: + entries.append(downloadBook) + else: + ub.session.query(ub.Downloads).filter(book.Downloads.book_id == ub.Downloads.book_id).delete() + ub.session.commit() + numBooks = entries.__len__() + pagination = Pagination(page, config.config_books_per_page, numBooks) + return render_title_template('index.html', random=random, entries=entries, pagination=pagination, + title=_(u"Hot Books (most downloaded)")) + else: + abort(404) @app.route("/rated", defaults={'page': 1}) @app.route('/rated/page/') @login_required_if_no_ano def best_rated_books(page): - entries, random, pagination = fill_indexpage(page, db.Books, db.Books.ratings.any(db.Ratings.rating > 9), - db.Books.timestamp.desc()) - return render_title_template('index.html', random=random, entries=entries, pagination=pagination, - title=_(u"Best rated books")) + if current_user.show_best_rated_books(): + entries, random, pagination = fill_indexpage(page, db.Books, db.Books.ratings.any(db.Ratings.rating > 9), + db.Books.timestamp.desc()) + return render_title_template('index.html', random=random, entries=entries, pagination=pagination, + title=_(u"Best rated books")) + abort(404) @app.route("/discover", defaults={'page': 1}) @app.route('/discover/page/') @login_required_if_no_ano def discover(page): - entries, __, pagination = fill_indexpage(page, db.Books, True, func.randomblob(2)) - pagination = Pagination(1, config.config_books_per_page,config.config_books_per_page) - return render_title_template('discover.html', entries=entries, pagination=pagination, title=_(u"Random Books")) + if current_user.show_random_books(): + entries, __, pagination = fill_indexpage(page, db.Books, True, func.randomblob(2)) + pagination = Pagination(1, config.config_books_per_page,config.config_books_per_page) + return render_title_template('discover.html', entries=entries, pagination=pagination, title=_(u"Random Books")) + else: + abort(404) @app.route("/author") @login_required_if_no_ano def author_list(): - entries = db.session.query(db.Authors, func.count('books_authors_link.book').label('count'))\ - .join(db.books_authors_link).join(db.Books).filter(common_filters())\ - .group_by('books_authors_link.author').order_by(db.Authors.sort).all() - for entry in entries: - entry.Authors.name=entry.Authors.name.replace('|',',') - return render_title_template('list.html', entries=entries, folder='author', title=_(u"Author list")) + if current_user.show_author(): + entries = db.session.query(db.Authors, func.count('books_authors_link.book').label('count'))\ + .join(db.books_authors_link).join(db.Books).filter(common_filters())\ + .group_by('books_authors_link.author').order_by(db.Authors.sort).all() + for entry in entries: + entry.Authors.name=entry.Authors.name.replace('|',',') + return render_title_template('list.html', entries=entries, folder='author', title=_(u"Author list")) + else: + abort(404) @app.route("/author/", defaults={'page': 1}) @@ -1181,10 +1200,13 @@ def get_unique_other_books(library_books, author_books): @app.route("/series") @login_required_if_no_ano def series_list(): - entries = db.session.query(db.Series, func.count('books_series_link.book').label('count'))\ - .join(db.books_series_link).join(db.Books).filter(common_filters())\ - .group_by('books_series_link.series').order_by(db.Series.sort).all() - return render_title_template('list.html', entries=entries, folder='series', title=_(u"Series list")) + if current_user.show_series(): + entries = db.session.query(db.Series, func.count('books_series_link.book').label('count'))\ + .join(db.books_series_link).join(db.Books).filter(common_filters())\ + .group_by('books_series_link.series').order_by(db.Series.sort).all() + return render_title_template('list.html', entries=entries, folder='series', title=_(u"Series list")) + else: + abort(404) @app.route("/series//", defaults={'page': 1}) @@ -1205,30 +1227,33 @@ def series(book_id, page): @app.route("/language") @login_required_if_no_ano def language_overview(): - if current_user.filter_language() == u"all": - languages = db.session.query(db.Languages).all() - for lang in languages: + if current_user.show_language(): + if current_user.filter_language() == u"all": + languages = db.session.query(db.Languages).all() + for lang in languages: + try: + cur_l = LC.parse(lang.lang_code) + lang.name = cur_l.get_language_name(get_locale()) + except Exception: + lang.name = _(isoLanguages.get(part3=lang.lang_code).name) + else: try: - cur_l = LC.parse(lang.lang_code) - lang.name = cur_l.get_language_name(get_locale()) + cur_l = LC.parse(current_user.filter_language()) except Exception: - lang.name = _(isoLanguages.get(part3=lang.lang_code).name) + cur_l = None + languages = db.session.query(db.Languages).filter( + db.Languages.lang_code == current_user.filter_language()).all() + if cur_l: + languages[0].name = cur_l.get_language_name(get_locale()) + else: + languages[0].name = _(isoLanguages.get(part3=languages[0].lang_code).name) + lang_counter = db.session.query(db.books_languages_link, + func.count('books_languages_link.book').label('bookcount')).group_by( + 'books_languages_link.lang_code').all() + return render_title_template('languages.html', languages=languages, lang_counter=lang_counter, + title=_(u"Available languages")) else: - try: - cur_l = LC.parse(current_user.filter_language()) - except Exception: - cur_l = None - languages = db.session.query(db.Languages).filter( - db.Languages.lang_code == current_user.filter_language()).all() - if cur_l: - languages[0].name = cur_l.get_language_name(get_locale()) - else: - languages[0].name = _(isoLanguages.get(part3=languages[0].lang_code).name) - lang_counter = db.session.query(db.books_languages_link, - func.count('books_languages_link.book').label('bookcount')).group_by( - 'books_languages_link.lang_code').all() - return render_title_template('languages.html', languages=languages, lang_counter=lang_counter, - title=_(u"Available languages")) + abort(404) @app.route("/language/", defaults={'page': 1}) @@ -1249,10 +1274,13 @@ def language(name, page): @app.route("/category") @login_required_if_no_ano def category_list(): - entries = db.session.query(db.Tags, func.count('books_tags_link.book').label('count'))\ - .join(db.books_tags_link).join(db.Books).order_by(db.Tags.name).filter(common_filters())\ - .group_by('books_tags_link.tag').all() - return render_title_template('list.html', entries=entries, folder='category', title=_(u"Category list")) + if current_user.show_category(): + entries = db.session.query(db.Tags, func.count('books_tags_link.book').label('count'))\ + .join(db.books_tags_link).join(db.Books).order_by(db.Tags.name).filter(common_filters())\ + .group_by('books_tags_link.tag').all() + return render_title_template('list.html', entries=entries, folder='category', title=_(u"Category list")) + else: + abort(404) @app.route("/category/", defaults={'page': 1}) @@ -2307,6 +2335,10 @@ def profile(): content.sidebar_view += ub.SIDEBAR_SERIES if "show_category" in to_save: content.sidebar_view += ub.SIDEBAR_CATEGORY + if "show_recent" in to_save: + content.sidebar_view += ub.SIDEBAR_RECENT + if "show_sorted" in to_save: + content.sidebar_view += ub.SIDEBAR_SORTED if "show_hot" in to_save: content.sidebar_view += ub.SIDEBAR_HOT if "show_best_rated" in to_save: @@ -2689,6 +2721,16 @@ def edit_user(user_id): elif "show_category" not in to_save and content.show_category(): content.sidebar_view -= ub.SIDEBAR_CATEGORY + if "show_recent" in to_save and not content.show_recent(): + content.sidebar_view += ub.SIDEBAR_RECENT + elif "show_recent" not in to_save and content.show_recent(): + content.sidebar_view -= ub.SIDEBAR_RECENT + + if "show_sorted" in to_save and not content.show_sorted(): + content.sidebar_view += ub.SIDEBAR_SORTED + elif "show_sorted" not in to_save and content.show_sorted(): + content.sidebar_view -= ub.SIDEBAR_SORTED + if "show_hot" in to_save and not content.show_hot_books(): content.sidebar_view += ub.SIDEBAR_HOT elif "show_hot" not in to_save and content.show_hot_books(): From 78744b19d8614984f9e00476493536024b2cc35d Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 12 Nov 2017 14:10:08 +0100 Subject: [PATCH 011/180] Fix #377 --- cps/web.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cps/web.py b/cps/web.py index 7a80f5e1..8a00ee7c 100755 --- a/cps/web.py +++ b/cps/web.py @@ -289,14 +289,14 @@ def load_user_from_header(header_val): basic_password = header_val.split(':')[1] except TypeError: pass - user = ub.session.query(ub.User).filter(ub.User.nickname == basic_username).first() + user = ub.session.query(ub.User).filter(func.lower(ub.User.nickname) == basic_username.lower()).first() if user and check_password_hash(user.password, basic_password): return user return def check_auth(username, password): - user = ub.session.query(ub.User).filter(ub.User.nickname == username).first() + user = ub.session.query(ub.User).filter(func.lower(ub.User.nickname) == username.lower()).first() return bool(user and check_password_hash(user.password, password)) @@ -1916,7 +1916,7 @@ def register(): flash(_(u"Please fill out all fields!"), category="error") return render_title_template('register.html', title=_(u"register")) - existing_user = ub.session.query(ub.User).filter(ub.User.nickname == to_save["nickname"]).first() + existing_user = ub.session.query(ub.User).filter(func.lower(ub.User.nickname) == to_save["nickname"].lower()).first() existing_email = ub.session.query(ub.User).filter(ub.User.email == to_save["email"]).first() if not existing_user and not existing_email: content = ub.User() @@ -1948,7 +1948,7 @@ def login(): return redirect(url_for('index')) if request.method == "POST": form = request.form.to_dict() - user = ub.session.query(ub.User).filter(ub.User.nickname == form['username'].strip()).first() + user = ub.session.query(ub.User).filter(func.lower(ub.User.nickname) == form['username'].strip().lower()).first() if user and check_password_hash(user.password, form['password']): login_user(user, remember=True) From 09f86ee8d4a34b7101e631d6ad4095b439eaa657 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 12 Nov 2017 14:56:49 +0100 Subject: [PATCH 012/180] Fix #385 --- cps/helper.py | 2 +- cps/translations/de/LC_MESSAGES/messages.mo | Bin 302526 -> 302739 bytes cps/translations/de/LC_MESSAGES/messages.po | 276 +++++++++-------- cps/translations/es/LC_MESSAGES/messages.mo | Bin 302865 -> 303077 bytes cps/translations/es/LC_MESSAGES/messages.po | 276 +++++++++-------- cps/translations/fr/LC_MESSAGES/messages.mo | Bin 304264 -> 304366 bytes cps/translations/fr/LC_MESSAGES/messages.po | 276 +++++++++-------- cps/translations/it/LC_MESSAGES/messages.mo | Bin 302596 -> 302809 bytes cps/translations/it/LC_MESSAGES/messages.po | 276 +++++++++-------- cps/translations/nl/LC_MESSAGES/messages.mo | Bin 300888 -> 301183 bytes cps/translations/nl/LC_MESSAGES/messages.po | 288 +++++++++--------- cps/translations/pl/LC_MESSAGES/messages.mo | Bin 301986 -> 302232 bytes cps/translations/pl/LC_MESSAGES/messages.po | 276 +++++++++-------- cps/translations/ru/LC_MESSAGES/messages.mo | Bin 314416 -> 314662 bytes cps/translations/ru/LC_MESSAGES/messages.po | 276 +++++++++-------- .../zh_Hans_CN/LC_MESSAGES/messages.mo | Bin 303979 -> 304226 bytes .../zh_Hans_CN/LC_MESSAGES/messages.po | 276 +++++++++-------- messages.pot | 276 +++++++++-------- 18 files changed, 1288 insertions(+), 1210 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index 0b2e50ef..d7cb3a90 100755 --- a/cps/helper.py +++ b/cps/helper.py @@ -90,7 +90,7 @@ def make_mobi(book_id, calibrepath): p = subprocess.Popen((kindlegen + " \"" + file_path + u".epub\"").encode(sys.getfilesystemencoding()), stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) except Exception: - error_message = _(u"kindlegen failed, no excecution permissions") + error_message = _(u"kindlegen failed, no execution permissions") app.logger.error("make_mobi: " + error_message) return error_message, RET_FAIL # Poll process for new output until finished diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo index 3cc6eb38424e86303e4ff80c63f7d34b12e15667..9474ea9a162fb4d87d44c65acc8fc788f075ee95 100644 GIT binary patch delta 129455 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

a7{|D_~X+_b$I(n;XVfp!Q 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 delta 129230 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 F{|AmGsdxYY delta 129236 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 diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po index 9cf20526..8a23731d 100644 --- a/cps/translations/es/LC_MESSAGES/messages.po +++ b/cps/translations/es/LC_MESSAGES/messages.po @@ -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-11-01 16:05+0100\n" +"POT-Creation-Date: 2017-11-12 14:54+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: Juan F. Villa \n" "Language: es\n" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "No instalado" @@ -40,7 +40,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "" #: cps/helper.py:108 @@ -69,380 +69,380 @@ msgstr "Enviar a Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Formato no compatible para enviar por correo electronico" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "Invitado" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "Solicitando paquete de actualización" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "Descargando paquete de actualización" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "Descomprimiendo paquete de actualización" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "Ficheros sustituidos" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "Los conexiones de base datos están cerradas" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "El servidor está detenido" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "Libros populares (los mas descargados)" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "Libros mejor valorados" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "Libros al azar" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "Lista de autores" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Error en la apertura del eBook. El archivo no existe o no es accesible:" -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "Lista de series" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "Series : %(serie)s" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "Lenguajes disponibles" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "Lenguaje: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "Lista de categorias" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "Categoría : %(name)s" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "Estadisticas" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "Servidor reiniciado. Por favor, recargue la página" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana." -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "Actualización realizada" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "búsqueda" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "Libros leídos" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "Libros no leídos" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "Leer un libro" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "¡Por favor completar todos los campos!" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "registrarse" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "Error desconocido. Por favor, inténtelo de nuevo mas tarde." -#: cps/web.py:1909 +#: cps/web.py:1946 msgid "This username or email address is already in use." msgstr "Usuario o dirección de correo en uso." -#: cps/web.py:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Sesion iniciada como : '%(nickname)s'" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "Usuario o contraseña invalido" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "Iniciar sesión" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "Configurar primero los parametros SMTP por favor..." -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Envio de Libro a %(kindlemail)s correctamente" -#: cps/web.py:2046 +#: cps/web.py:2083 #, 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:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "Configurar primero la dirección de correo Kindle por favor..." -#: cps/web.py:2092 +#: cps/web.py:2129 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "El libro fue agregado a el estante: %(sname)s" -#: cps/web.py:2127 +#: cps/web.py:2164 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "El libro fue removido del estante: %(sname)s" -#: cps/web.py:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, 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:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "Estante %(title)s creado" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "Ha sucedido un error" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "crear un estante" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "Estante %(title)s cambiado" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "Editar un estante" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Estante %(name)s fue borrado correctamente" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "Estante: '%(name)s'" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Cambiar orden del estante: '%(name)s'" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "Existe una cuenta vinculada a esta dirección de correo." -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "Perfil actualizado" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "Página de administración" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "Configuración de Calibre-web actualizada" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "Configuración básica" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "Localicación de la BD inválida. Por favor, introduzca la ruta correcta." -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "Agregar un nuevo usuario" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "Usuario '%(user)s' creado" -#: cps/web.py:2565 +#: cps/web.py:2606 msgid "Found an existing account for this email address or nickname." msgstr "" "Se ha encontrado una cuenta vinculada a esta dirección de correo o nombre" " de usuario." -#: cps/web.py:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "Parámetros de correo actualizados" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Exito al realizar envio de prueba a %(kindlemail)s" -#: cps/web.py:2597 +#: cps/web.py:2638 #, 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:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "Ajustes de correo electrónico actualizados" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "Editar parametros de correo" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuario '%(nick)s' borrado" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuario '%(nick)s' actualizado" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "Error inesperado." -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "Editar Usuario %(nick)s" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "editar metainformación" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "No se permite subir archivos con la extensión \"%s\" a este servidor" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "El archivo a subir debe tener una extensión" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Fallo al crear la ruta %s (permiso negado)" -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Fallo al almacenar el archivo %s (permiso negado)" -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Fallo al borrar el archivo %s (permiso negado)" @@ -601,7 +601,7 @@ msgstr "Ok" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "Regresar" @@ -647,7 +647,7 @@ msgstr "Descripcion" msgid "Tags" msgstr "Etiqueta" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Series" @@ -694,7 +694,7 @@ msgstr "Obtener metainformación" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "Enviar" @@ -734,7 +734,7 @@ msgstr "Haga clic en la portada para cargar la metainformación en el formulario msgid "Loading..." msgstr "Cargando..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "Cerrar" @@ -787,8 +787,8 @@ msgstr "Metadata Watch Channel ID" msgid "Server Port" msgstr "Puerto del servidor" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "Titulo" @@ -844,31 +844,31 @@ msgstr "" msgid "Default Settings for new users" msgstr "Ajustes por defecto para nuevos usuarios" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Usuario Administrador" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Permitir descargas" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Permitir subidas de archivos" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Permitir editar" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Permitir cambiar la clave" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "" @@ -943,7 +943,7 @@ msgstr "Guardar cambios" msgid "Save settings and send Test E-Mail" msgstr "Guardar cambios y enviar un correo de prueba" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "Siguiente" @@ -960,7 +960,7 @@ msgstr "Descubrir (Libros al azar)" msgid "Start" msgstr "Iniciar" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "Libros Populares" @@ -968,7 +968,7 @@ msgstr "Libros Populares" msgid "Popular publications from this catalog based on Downloads." msgstr "Publicaciones mas populares para este catálogo basadas en las descargas." -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "Libros mejor valorados" @@ -988,7 +988,7 @@ msgstr "Libros recientes" msgid "Show Random Books" msgstr "Mostrar libros al azar" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "Autores" @@ -1024,68 +1024,68 @@ msgstr "Registro" msgid "Browse" msgstr "Explorar" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "Descubrir" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "Categoria" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "Lenguaje" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "Estantes públicos" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "Sus estantes" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "Crear un estante" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "Acerca de" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "" @@ -1260,46 +1260,54 @@ msgid "Show random books" msgstr "Mostrar libros al azar" #: cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/user_edit.html:58 msgid "Show hot books" msgstr "Mostrar libros populares" -#: cps/templates/user_edit.html:54 +#: cps/templates/user_edit.html:62 msgid "Show best rated books" msgstr "Mostrar libros mejor valorados" -#: cps/templates/user_edit.html:58 +#: cps/templates/user_edit.html:66 msgid "Show language selection" msgstr "Mostrar lenguaje seleccionado" -#: cps/templates/user_edit.html:62 +#: cps/templates/user_edit.html:70 msgid "Show series selection" msgstr "Mostrar series seleccionadas" -#: cps/templates/user_edit.html:66 +#: cps/templates/user_edit.html:74 msgid "Show category selection" msgstr "Mostrar categorias elegidas" -#: cps/templates/user_edit.html:70 +#: cps/templates/user_edit.html:78 msgid "Show author selection" msgstr "Mostrar selección de autores" -#: cps/templates/user_edit.html:74 +#: cps/templates/user_edit.html:82 msgid "Show read and unread" msgstr "Mostrar leídos y no leídos" -#: cps/templates/user_edit.html:78 +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "Mostrar libro aleatorios con vista detallada" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "Borrar este usuario" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "Descargas Recientes" diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo index 6b86ea20376ac0c574ac7fa825fa0db8d5fcec25..226c5736f2c6fd353b208573e33925bde8d1b33f 100644 GIT binary patch delta 129330 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%0D7vAIZ&|7dLI^a(9Q*A7o;G<|F z&!T~6pozYX{(|yjG|p-?k&T-a30FfCtclidhbB_L3D3V1?Lvj`_~vMU{o{#oAez81 zG|+8m0%Ng0K7aZ0{ziHTHmm)xQw8J*&JAH@P z0-bn2^lTiA_Unq?x^8J77%xow<>KTmlXI?+lr@gGzFFPdoOro}v)qObVUmZ{ho?a(yk-O!!cJM|sW1P(_N=!%~9 z9%(-hJv*16315pY=mzwbj6}zcMdz7-^eHi77vU2AG=q>1h9%=mhVkeja)# z7o`0wbll36e~y2m@%i)n;`6@>7Y5uMJv3XR0~^N{=tQm2er;3kfF^t>8nAOb0qxfl z9d}0R`=bdCjF&az`FEll(qSZe=l3wdsYJtTni1necTzHV3)M-js|Lrjz1`NLdSK*^7{Zyd?328 zp=g}z(Q&twxNyK|bgS-3hw*44kEH$S)IXo{3^akaQl5uSumFwoW$Krs6a9d`VShoN zmdY)P_@z2rn9)vXz@}(Itzz4>AAqjpu+$%m-plUjxHHj&2c>)o8uyxbW9n~56B>sk zTB>*`4UeYbS#;n_MTd%+=!eX#)Gt62{0t4W3|;X`G{K+J{#V-nLldjgvWQayO?-#4 zJb$}#VZeRRfcwRR(ZENd33Wjy=$`T!X#cZQJ`e4GDH^X7uSeepH=+GUqVdL9_W8e` z3kOU@SNa4x(Mu`66+c2J_!14U9KGj1ru-Kgr_yeP8>4ZmqdQOs9k&zu>TZf9PiaRk z{BqeN9R{HTFGjcO8g!zO@!r%wf(D+N@~bJohbHndy5diO;2>E&)S{m-yOJw3Nsv; zj-%r}=mZa-JMu`%&!UgfOX#?{XhI*Me{{Pf^=niA51L5jJ&IefDH^wCi3|Z2*PsdifyP~*_Nsdp@vEcbwk|AH?8t=~HAW}c6HTN|?2!6S zu?srEiRi?qpaFZQd{)YX;>BqH5*mM4>TkyKfB$E6I@}i@#(H#o0^Pdzu>medSF{cd zSfy1FuzIY8)^D3~eKf(w=(uL+t=lW*18w*D@5F`oqB9!c6!et#L3ieS^xa)TS2_w^ z$=Em^9XB!UljGF1zk(+62Aat1)X&HA@BbEYVSumV3N+Kz=)k|xo%j#EHPu=diPVle zpyL~*+&s2M6K#)<>xjlZGM?C)=iiE6RQSc?95lnr<1jS9ZRpC!pwIvPDL;r#{CLXG zp#5Kpub~sajrN-t7pDEQ);#~Na9J9@L*Ilyq3?ytdll{5p@HkC+!zhqEaledt!kV4 zLsC8_<&)3^&WLBB3msD8!WCVX2FrFFh9-7Pygl`I#rx5OCdMbw9eM^G_fpC;;w&`b zd1(AaDVLUVVFKT!;Rkdjzn~MWM*~;hy9itjEpLggU|Y0*1N4yYmi7+lP9A~&pmACp zj3#h(VX5Krgh?e|5>-=GtIpZYZ^ zuPv8({{H2{02}O61gL^;RW&qFZ8V{}Y2P{ZyQJI#ouCyOXJ0h&{n6iy9Erv|HSPV- zM9;>$KL0~faWfj|b~Mmfbl`nxB9qYnW8o9%mcJe6qX9ohC;U3DMaON@rfA=!@tqbb_I1LZy^%Km*>2CO#(R`%<2m@?>=URCN5y z=-GI)4bQ(7pHg9fW#}&wR-*TKqqfBaHR3ktA*&bnKo8eJ=(yw29T=SYYtdiFk52h9 zbfGV!aXxCx^KXD}Qt>+)Xybj0`UbHzx+9066ZAko=g&#|@U-8JPB9 zoZrwFUe!{&Vn7}ASFA12ggT-Bh)YlOPc|+^6T3T3P5p=HpOpNR@|Nw3--zsne#h&A z{z1h6G~t`jc$3mzdW#D){TyA{Dm26YVy*p(1e>7utUa3fv1tF^=n5}P{ctqiU8$cG zUySde<3B6PrHWNtc< zG)~u)d#1e?mOuadr(p>CSY4d*wde#R(15q1TX-kh@9C6ZK@(bpuIyX%7OssOA5hfS zLEj6z#JzBHpZ|`j=!yn7H4a1rT^UEBJMaLy;)l`19!H;|XHx$%`r-9@%8Ss2e2(^C zhAvhC*0t`;-1z*12sb53+>UBc0v>Bfv)Hjbb_szVCh!WnV{dgR6)Txbh0pDL+y%cy1JvkPxHUTA4zU3~#2*ASMIW=d2NnIkjX$C* z{0*IG_Zq29Yp;?;xztO}h4lS&T_S*tYtTy^e-5z~f_C+V`n)Yt!4xEba zOm8&7bFlpX|G$h2U!fz@FabT)PoophKm*P~57itr&=+U|E7630PWg9q+&XmP%7+!> ztD^ljN54nZ!t%cq)Pf7Qsx=yTKQzE$u``-LH#D(RQa&3EI0QYU7o|K5P3$H#f!k9* zCfO`M2ZURJfAy=*k~Xc{1Am3>x6Yw9iQWtd!@byb$g8S<1^&UYYW0 z^xm(H8=FB-6P_Q3qKDA9z7fZuw_q$9|2}j< z6VaV1P0q!%I0NlCJLM11omq@--RG(Q4(<0dI>Dc4BJ0rp8+0n%I95aZZ;4L4ZBZ^& z?97E3?Hcz$1GPZ|?Vs{NXn-S9?wa;)sXrNw(RT%P(L(8Kpz+~mk&q8;OIX#WGzc!#3#k4bws+`-TP{#^J< z9fnSH54xofqXQmA13iOH@C9suUtm4l@Tek@2Iyx*8}z&5+33VKq6@qo-J!eCvvfa} z|NigOT$sR2^f6k94qSo0T7O0p_y-MC>FB~LXo8!ekK?%VPVVqq1tG_`e?shkT|7^ zJ=38LdRPuZSJDMdpd0$RekK}V2%5mqluKxW!&AN)jWZhUHvx_J2%5;0)W3w~e<}Di zE)4JyI>DlJ_yV1HIeHJ*r2hB#4;r{q*J6BCbi(Sf7MjSmXurnjJT20`CvNHU--ZiU z+9`HNe-`X(2fP;DvOCcP$DU2KqF8fPP4Qb1cul z&-*{A*y^}q;$~Pr3+Rif3mUKwdP~kn6D*;R+g<1mPD2xW6Yc*o8fRI`tI_Wn>r>w9 zc%FX;G&sJr27W8$xp4uS=o0kseueJX^3?x}o{`dq zCl=p!tD>1TL<2WZxfL3yUF?7cJPh5DBjX8ZVyB^T2BV2xlJeDP+!5%+w-x15#hs}b zhX$MwpFp>C8hQpkM$gK3=qcv^ZC<{&o1qETK_}i3?cW%EdiF&pJPJ*qE84$%S)RXB zxo}_~^n3p~=!ek_=;?h3-TLRzuT*cL{b!?rKR^>-kn&P=qOZ{%_#RF8S2W)GxMg?B zKK~85@N;}0bmDI41n0#|(Z}T)G?B6B3Linw&U7@9_t6PIL|6DJn%EcUQ?oMdzoT*1 zWBK=g)p`^YZifzRfM(hhy{GNbdww*USXXqS9_UJYr+xrB;SjX{Whs}?{v*)%x1(|H z?!oi#fCtj>csf3fX8aPm!ne`qcp*CBGIWBKXuu!iukkN*g8$;iCl$X(sDXYnY8$(s zl+XW*sqnB|i4MFCJ$!egTl;*Rj;`c&^cK8}Ci;2WSEA#8N_j21z<h~Zu^ zJ%cpBPo1Uh~!n!tnTN*_TF0hcC$Aw!t0nPMLbSI{x_xxS- z5H3vpviLLljb=Ui+pMj77q@VC^cHqR6X=O1&|`M>|Q(HTXC)zJ>M(Fy9K2{cLj z9%}R59=}23{eVum7Tx-F=q;?=r-;90tkZ|*-;VXD&_=Ntn&}>~0~)w18t7!S|A06M zUD1W;geCNQ{&4hZxG(in&;>q^j(@dJshH@^bodzEvL)yWze&fHXrR^T&QzRP9L~+r z#Ok8$jpE*^KMYOiSaiaZ&;(9TeZLYHu5=KVUqI-@qv9BJ;Js*|3FsT~F*MMVX`h<% z%PG%9`_E4K19V{v(Q!-B#7oQ5;pa50P5ECmz=nMbH$xMtg$CFbO|*V&l=@xc9%%nI zaep-4!Du2!74@Zx6Vjn48n{>N9|xiL{33M1YtcYApn+~f$Bm5-p#2{~-yc)av++9a zgzurZa8;g zhrR(Hw(RHsYg`y`b~=2Bu4pkD=!?{UgC?>HJ#6dHH)i$zMWXf5IE_=@E$$WDp>aE; zd^nar|BvCqSLyNboOHMj9dIL>$SCyCj6ol-32A>J^)pg_H-3n2^&)f!mZ$zlG|q4R z^ZfrugcIdLfUcc6(*K;IY7q5eCeRTLa3p#!k3}D} zUg$4PhoEo!Vd(iDizfCYde5Ij$GwehZ~?Z$>Vr3|Xz9ecRuTp6*9e|2&%5tLSfuW}^#OjxONGxEAYE{_i}Ve;ewbU+h3rG_$?Y zi4H-3wRjYIT05hO9EVQa1KqiPXyO;dp=iG=(FCqT``?`Qd(imf&)=rFm_&sGo{Z1k z)oTY{j^_3*RmS)zP5+BuqA|Wr`A4+>uW0{uvGN5)=xS*HnsHmSUw!l=bC;AmqHF4O z0h{B&?nZ^XdKP-lE`p$YL^{=9vGBfS7&^69Y`C~MJ|DpYsrTksm zS6{%((E)3zFr#(o-Pz>AVxl@|eM7Y09%!I_&~w>7^@pJe9*s_Td^{N)-zViE==h=N zPF`8!!h<^;ebmRIJ2C~Ga3&gXHafuv=xzQa_1~c5SD`z%9v!#&Ma7P8g_d_j<1|DQ zZ;r+*?URQ6(aa7-2OOCWT~qFkW_&8zuV3oViRZ;j&(H*(3uvGCl z7k)6lkPh#l_k1oIU_Kh~f9TFEPx()D1sh&mB)nhUh#^(H-0u%l`=I z;anJ~8`|+y^e~=*CU9=b7oj_IRU8&?PW$a>|8Z!XiP!`mN6*wpXaZlQ{0r{r%dyfW z#eY}1J~pL%2>Nws5W4bVXhNgV1nxywHUWJa9zz!}Exv;Ge-k|ub5s9$>c2t9|Agh| ze{CB6LsziL(88MNO14Y6J{q`b%B|3e+oM~05Smcew4Z`5pf5V%5cKnFD0*mb8Orl- zhw4C>x|8Rlx9nncqHEDDACK<9WHjE( zNP?w`x4AIzJah*Z$1mdwbi$v}75xz_t|(Tt3EEx*UD4KPoW^MXmgvO$pc5aG`YyPg zUygckVFDMT154<0Iz07vqX8a7xA5uIKaZ~Pb#$W7QokIHvl^Z7kGR2=#e1MS8gF|n z|3?6K<-#r7%L?p}@=@rDx~INBn&|l{UxALhA&y30G!LZw6dG@O%Cq7}=q*`_<-Y{* z0~dby{E9wa{-<$$KK)PRsQ*_v&qznK--#)oopLFTMqgZyrTumEabAG#=xX$PK*d$X z4%NMi=id%HQ(;E?p)2Tw4(O5cS?IU5p=cs^qlryM`^|_S#4pi9yatU|`RbxyEp$g3 zqV>C7O-63v{#1C+I-y&BY|6dSEk7$>fZppX(Llq|GjV&$ccTk=2))NoqvL0w@!vrY z>xXesi3?vKOVivl)sG2(T?AvEBP7i_jjyxZ81?*G;poB9lBEu&~eStg!WE*hoYUo z1e}Uv(TPq%Cpf+6P|**)$AeRUHI`338gMi^Zali>6VXJTi_@_=qvPA5{fLfIgchG(-(1|OLC~ScBDR)HspMmzj z9!+dw%CDmdeu>8UJ8oUNvB+#s^xkwvx2`XG2ro+g@OVGE!fEKCoQK}yh3KvOA9^dk zMko9Z-Qh|%6>f~aL93%@t+W#t25N<#%6-vOdI)-tJEH-+p%e8?{psk0{n3PmpyO^t z@AYVO;)l>UkD>jaL3ifmqP|qIkc(DSe2z}E<;_JRwb6j}(TR6O1MQabK3IM%<3X`g z+Pk7FJrPalEcCDrMH9Of%l`=A=v0g=S8xc?z>i}&V>Gds(L`pT0pCO)$B$C}5`8hP zM#ukyPPD--MY$>(uLio1I#~Wc0oPAMBXmGZbb{9C88|5Q$D@HyLId?e6FV#Q1JUsp zqPOxgbgPG91DufZ+vpkl63f3F`I!q3%O7dj^44OdJE0RaMkn4ConViY_dyTQ{^*Lj z#P0EQbjSK*6FfKdcc%WnTY3Jy#}88B1e4Lsok6HVY;i!NYv%J-u$ zu&2-+osGu(3XSt^%HN}jtS)g;&KSMt>(Cd`X15iu$d>5D?a+h{LkD(71D}YF?-_f= ze(0?^7v0ekI&LJo&@pJ-(gZF%#ZRWg^!Nrk;k$8u>OVzS{AJ4D$2I7V{D~&E$*5wd zHb*DkChmyFZB&#?6)m`MOIxSIe(_**%Z^NYXEbp4w4Z{0i1a~MI0OxRHQH|kx-++? zJQ|HR79DpVmY@H})8Sb((-+DOJm;yOg$8;beRt1K{g0{t1>NdD(HG99w-*!ai0(); z^i!`rmTw)J=!sZ<{!dNA8R$f3*?@!5dvziDp>q|w_2bbUdkpRWEZXnIl;1?p(!1zA zUW`uo4Vu6zblk64{*M6sl@1%;QFPc0ouFpi4qH%e7>~tWDPM&KdIC-O8FY)EPx)nZ z;@8kKHXGfMh3Jlbdk4?I4S%Mg%IM-=ZiCi0LGRUG=zxxBfaB47ekS@(zcA$+(UsqW z_InH+_j1Z}&>i?3%RAyvEZ);qRCw>I-dS|m9$irbbPIP$eQR{Z?a-BWKm#3;_M_8& zJog%9!N^QCD8_R*II2{epFP+iO87kb*u02-7`=zC)tgMYnV{dg`li?7E=2n+LC1fC2L1`X z6_p+=;?+VE*#_;ueQZ=pLrXN{R_Fx#rhFiJOAbQ=cg6#;H@XuKp2 z+>Q?wKLa*K7t#TJth=HKm-=yGW<$`4FG3T!9DNU5oAyyy-Whb@J!rp&)BXfH;nVR& zG~VlRR_f=V^DRK)lqx>u;$SMiM(^=14;KSZMdKMSntHJRabfVE%A0JNr+vqJ=g#K9lJ-XtJCKXmk zcc?bHGux(IA6;=n^zb!B9hi&UeivGKz?YpB} zybn75z_cHd`Xf_+eCm6kiJ$gJKL5{1$FtFZ7sSirHEAD#o{8JhiN>XU0=hGgqA#GQ z(FILM`_DxCzn}IGQ(p22&%YCXNreNxOT&-p_zN2NU$oywj~3->X#cHZ-B=%8Sz~nK zUD59ot2pZ=EbjMCE<>E|q%Lk&FUW!g&yIvn}ilflLccF*!(bP{zpMsg_tNRml zN0y@t`5BG(Cpu4QeJ(b9tjMe?+Mx!TVeOQ6Ot~TYdENq@pbNUP)6l~<2z~r6N6*TQ zXoB~nai2kV<^?37QpLBe5kSf7^82# zU(v%^eR7e|mRSD$-;N9KRa5j$xF7n;?TluA4wiQaJw%tMd|ldaO#NtdhsL1^Jc2H4 zO4?sY`871&JCk|-y_lB{3($d|p@F_m`KS0hx{`I+5VwA^2-FTutV28kowzF+@1)fC ziUZJjhdjyi@4$;wQ9=*V_2^dKg9dmK-O8yczmD$AZ1i5vN8@~w_N8%o+E=B#2JQD} z$`z$4MSzWCH8k@r(TVG(ekU~J#<4ki%l1TX*`esT?&t))(EbC^&-+1Wzw6Nj-i3ZW zFHPpct)7D(jzwsIC1`-J(Uq=56Z$p&jZRqUsiJ;U^pI|uay=|39Gj!_?1_%s4>|0m zibK<(H@c$!Sbl-T8&iKbx`N5*8JK}SEsN2|>NoUbd84O`7gBvRf!*WY=)~>Og&cyM ze?E4(aK&BF47;bp8R*K-Lf>!~pc7q(_P;aUhn|gzDL;cQ;3YJn*=XX+&;|a6{;XN` z8RGc-H|D~LTcY3H+M*fuL=)(ZPIwM_*e-}e(Q#L%eFQpg6q?Z8X@3}9`BUhd@Wr&h zjr=35s(7|YXk&C>Q#8=tXkrJTTYLnXSm(4KkB&bj_DTKOX#We)vv%pT zdH%1Y!hqMM!>wq5(W$>T^%Kz*KM|it6Pk&Re-9nE0LzCMy%k@lye9q?D?OLzf0O5m z6>N##>#fmy);Q%hXy%8F26r`T&Lzkwz)JAM!sp>e;6%i|AeUz2j_FD^Wl|Dh|cHMI!X2tB1O z&=nqu9?oO2d(7(G`fH(XoAzw9eWua_gU(fr~Ex~{&}TxVP=1zU#b2>18n|$5wI2- zpf1|pAoY8q{o0}l@1OdE7TStcwxM>#D#(W-|H#6!kf^?@pf#652F)& z7#E@w|1W->`c-ian)q6DCo5hm=BbRXd{cC1OVznB(6(`BbfwMEMD|9vZa?(1q6d0! zFG~GLG_fbp9eWy`_(k;AzJcD_kI+xguh98^LB^FT{z*l}%SE6~(1|yXwb32g9u2&6 z%FWS<_e3Y&2Mv4xn(*Oh0)0|{0h+)SDc_3a@Bepk;e_MSfRj>w0-g9-bb=RCejVM? zS!n22^$~(qJv3c5C#kOc- z2c-QVG_g+TtvepQwL{W=IhK5WuT90>=!E0rL^R+N@u}25hbHuBPoMQQjP&Fo(^kt#Ea?|hq~3D!Z|>!Ul=H1(~~{_WAvfDY({$KyeG zddd%DeacUx6VFE$R;pOUg{Si?^i{bYop6WOiUEz{p=bjA&;WzuMe%ZU=dMBT@raaf zPWv5b+_5Q7D7W+Z`$+kM&uw(8r=bbGh7IsDbn7Z!FIHF|O`sK;P}`I{q6r+1#_62; z9_YlUp*zT!hl!D;pk4>Vh5azenp##-rILlzYKlTeUApLGPCGk9gSBz zZin8YozSoGjnOw@D=h!~e{dR(MW5Hx;vn=im(WD6MFZS~PH;Cm@%?CG6VZOJp%c!I zbI>y}KjqKSe#>U&`Tw2@1Fnw0qZ9v=@_*>z+USiUa2>S&4(KgtfCg-ij%%HAn|NS6 z98I_jI=k%T*+ewpoAF(AK_8&+fltttewy}WXd)}H zhCl!R&V`S|MsF9d%&pOk8=(`oLQn7hXy8uh_x`Tv!~@U?2Bmxnx^q{?VQ8FN(>@kW zV7z6Y|H)i9;8}Enm(i`8newcZ=c4^SLU-bSDSs1J#oy34>*9v9it?uD_$|={w#D+_ z|81Ox=IFrI=+?JO{gLswwD&}Js5iO;gX2Zv(E z3RnCE8t|KxzfXBJ8t`{?TazZZy#;X`hDf)T?M>@1u!*i1z!Wl!njIfXmYGeadU% zU#YM3PSLL_I`I}MZyR?)Cu)jL)DlggHM*dV=nfo%jxTlR!ijsu0q7TpA!vZB&`gJ+ z18#|9&~f9@evhR7N%V#FJo?>oE|wP-zenTzf}AnF|8wDlo4s3XVO{iHzdQQtvxCsX zb80*f-RfcJV>k|-U@E$@SJ20K7W!sggdXOV=)`}a32*S83*-5#%7p`Kpf8|p(SSRY zJMbQe&Cvj@&;adI-!b(^qviUyYW->p07l2)lVt^p7P&loJ#K(iEn});u=`~`+s%0utP&MK=YJarQ9y%j_Are zrQ8LbxO?hPK^JgFJO_8^9Z=?6_Lv-L*Xuy^67qtIB zY2RQ@aW*zZ6WbBp+J@*MY>CD>1RZxY+VA+(pEQT(-xc&uML+b_I0#MTa`bTCf<8Xu z&_Iu(x9q93zZ&PnC1}6z(KEFs<=<0YhbB@{npg$S82S`UL!YAAX}H#&YlG~gjH(06*~S0G||7%l~?|-=)W17SZ%a^CoF&d?~;m^=)`-WhworJ;0duO8n_o4;2d=8 z&rkbhDPN5yI0Ef|2RiZnXuQYK#Gl6UpZ~vT#Qcm6}p8h&_L_Z9ob-h zF>YhDz6M%fJLS6Q&eTT_XUo*@KcDB{Ob@2QQ+f=V!0Bj!{^@uwn!x#KzcgNx_8U{a z4PDvY==ce75<1TlaT+?$YxDE@Kbs1-{sVODm!d0Kjb{EkdPX+oN?!=DhiuO!> zN3>rTbb?dRiO)nAFeqLWuPAY0#@C@8Z%M;lslOjx$s=(x8u%GB;7e$tucv($`oeiX z^&g~uVaoqQ$A5`Uv9y8pGyfstfudb1FLF zP&Cff=+iJ9eHv~r*Yo_}&xI>{xLm;s&=owD^7H5fub^k+{j`4;zeXqeKK_E6mJ@5qIRs5!co?c*WnmL7v9)IFYtCe#<5_(Js4?h15gM#l;0 zn{Em^es-LP&a)89-~X4U;+u5%5zY9wl>b7vtm2a*^J=js8n_O+;(94JKquHWwn7)u z9!>aAbO(<4gy-Ljl5Vl%9t`lHYtJT9Jzo~et`1g=Np-iVv{ z`F}eX{-R(Ux`OfPFbN$nCFSSPM5f1?X`dbEpyTJq#ppy|r2RW|{HoOdVmMz0a*~0Rl|Bc|n zz_+EtopD@z2%YG0bjzn;eS8%iw-o(Z?`!nd{fSOoZAo#+wn7uDkB)DNE?~bUJpWc4 zN`?BPPekKSK^HtV?Qh!A zt@{}5xB{JU4Labj_#c+f#^*)9YG}XOXulm&Zh-DcGj!!`Qa%*zcN`k02RdKrbS?}u z0R5fJ5Uh{4pwI6V^svlBSGpJtv;tk}Pw4lA%1eutHAVyP757IcJPaLo3_9QOg{6v< zQ_%1bnqXTNjZPCZDe%kj){oX0>hbGuD^_|eTUDMtz^(UwP3@rcte?S_Bpj&(i zI?)ZO9~&Qtk6`&RMEkv(`g!Pt3sYW#?#!~(uR`Phf-Z1_FM0mG*q93kRztr!)l9iX zY=!PbTlC%@h#syZ(5>!_{tb9nIy?|3#>eAR z=zytlIvVH=bcOGwegQi167=!?3f-YqY5y1fRIL0}F@Bq`N=1hCQqcgNs2Lh)Pc%>) zbfpKy&ar3O`=L8<9=g&JI?;9Lt-1@1I|+^ZB)ahD>}cRu(0lU^`eIp(4)`7&uqOV2 z2K*P@fojW&{#&8_8l&-=qZ712cc=r}|420MaVeKh;=+NwQ_&xNYzCtf4MPXqiSEQW zwErVme%#OrUPf2`7TWJ!G?4{pB45UpXun^Oex-^((y+nTMWD^l32LJgZk=!V8W4XgY4eE-%hljpaQ54s1k)4b9Mr_C)LVjR&UvP&CldDW90~DJl0w z$DJF`k3-Q!O6WY-q3?y8mh=2OU>p@r{2*F>JmsfTei0owBfg#bIcP#3p%W~LU#5LI z8utfu{I4nho%Rh%-xdv3(T+9H1hzo~?vV1%Der&L=!4qkPern;)Zk>nev@+9D0f$LJ!|GG~u_>J_k+sV>E%qY5yv&M9&4sIU0D+)VD+XbwpQoSnP_%>51OsUTDJSp&wdTqfgn$ zvOIs|x$sT(6dGtcI?>x`pm}H_3sS!%_1~a7@I5;Imz39|{j01f60DAvYohVCMR&3u zmOuaZNJCpIXgDAqh6e5&d!j4uhbDRs+W#VSf-B?oX}=kra16QwQLYi6pWrqrxjQBuYvoE6GU6 zNPJNC-YbNJRJKA^-~0V_9)J9Pf8EZtp4aob&UMb~^?sK)@eOGEOmxL}q<(Jd=cD5m zpaB=5e@gxmI^i-bA38M7S~Tuov0_!8{|#0Zk5w)7bGt4&pd~tBm$bJ-4^d}yfJ^uQy#?d@XN`#_1ZnqaSv?(S?>y4jU_aZ@hMM46Pk(!x+V3q(SG;Ghf}{W z<;5w#gpPX)eQ|x5_GLwVsbU2eCh%iXQSo~^{EKc;mG6r!tP{6DcdQqdmrG08C6*J;(Xn@&qF1pnZWBI39bPGR26a60Dso&8A*P|0x z|GBVs+#KDBdT75E=(y4@TsYyLao=<}5Dj!FI?<6SABWzO6Va8O98XL82sGY#=!7No z7aSAOh1`MVTZF_fRXo9k0T-p=c{IQ)@$J-q6hDj0&;-9lZ^ifMW4aCv}v6HRR2)bED|IvAb!aCG9naR@rWh_sK6C3MA?p*wk1 z>aWKde*eFT3kS|ZAB%g@zuB-59rzBqbswVNXjY<${DqFI{A+OtH$?kyiSEQUXrj%~ zeyw6#G+qZRdHN6G!ht8C37m`$I2R3YVZ1c;SH;QbA)1aRd^?)h!nhdS!B?;azJZN! zEjn(?-}3!`+uw>8NmF#f_UOP)DR)K_JP_UT9_WjwFFN5VXu>1nXte)0bjvS8C%iUJ zM<3hUf8+UgEAFSlK#S7wGCJ^mbl~S`z!m63-=qD1Lm$V#W6d?iXF+`|FC=zC$9F~J zb&I`AT)5JH=`a9&YzC)%CK~8$bmFn-ExH&z3zJiSN4y8!p$Aib3QhERbmG_1cps!( z`jiVZ`#KdX(TRRVw|E`;g`wu!!bWKS-LMJni3U6t9XA+Fa2T54d1wMxrhPJ+$aG}q zOBJ_s;h*C@f_D4}4fI9)7MM=&k({P55gx?$79NOe_8% zj?e%0T)2`}=waLon_*8Z|6(Hb?;zw?Bw3-~}|^`)EST&=voRj<39~ zaFe+0I-Y+Awx+_Bc1%OBH~{@Ve=6GVGW1qlkM7i6XyAp|7+*^HJ9OgT(S$bmt0-@d zenV=4F0j*IJpZozKq|bqz0e7dLRWAmdao`*-*B_geovwkKZ}lk8{MfTXoQbjv1-0H6A;W`2hcpQ4TPQvmE(8uWFl&?YiO^q|-Y;>ag(Q%KVi9eP4m(X!< zV=d;d_?Qdt8R;guBE&V;6MX!RWZd(YVK^elV7w z|5Lay(8xH(2Fe$qr}!##%WjHu(Wm8Ubm!hhzZ)(`LmJd0) zBU`V}=l}Lpl(!NcunU^$p6GzR(XHGs_DKB^=(v6<55n@9LC23x`?$1^N8?XS{j~L^ zVk>5*!`)b35gOnLbmC{wfiI=}HahXgDSr`Hpj-P>%74YmMDwxT2whOU*vQ|1I64Cf@Ys}3il?Q16#4?Y5RH2yx`TJ3@$W~*^Y8zq;wf~Z z=g`CSD*EMgIXcl_=&h+*xo{IS@dnr&o1zo+KodVQ9*^G2)6xDT(H$6zoB8}-m4=yd zcDz46iYE3Hx{~M70B@mN{5g8+e?$|ks8Y53^wdK8HAE9@9owOC_QCSs|LM+!6C90Z zcpN(5q|~2*?!YNO?{+RL_bm#s}x!MLr!W*OYTcT&9A^LdklJeeYoL;3| z^g&m43_9VUlutwh4MSIU78>X>G{BU2BYN0w#T{@SmUk-cpT)1x9sLfCTly&tf5d;$ zfmNy()<6f;Mkm}NM}X6@yYSG@g!5bT+yZ zW3ikm8hAV!;QBZt?RTVnFFO9AxBxwDPo?})d;`mW|Np)61&;-Kh?b#;@E7z&RJBI2 z`J0tgxHw!pq7T$QXy(1pd*3(h zXT{4?KLbtd5j3&a&@-_Vjk^{-gf;3Ei8a72{fT}LE*#hsP2@zh<2dw`Umx#5Pyf?s z|M$@k*wra-xJl987#-gp{nmFdHp1blzdGKA<$uxV5iZ=ichFP*BRZhQro{w1pzo*y z(SXCyl}$h=nuR91AnmWCiT#L;vDRiqVmqNbu^&3_sLgo(UC}92xMkzg@j7&???wYJ zM*owb57CvcO?|D+i$L3-H3EJFAXL1kX(u$ zp6k#AZ%6w-j0ReW23m}skr&hcR@y&Ed1=ba(Zp8AU!BN+>(EoY9^ImiwkRfOh_*LF z2eyiB)7}AnD!QPDwP)&&L;IhE<&~mO(+D))IcUPA^K)?-I^dc(HQtP_bXLmu#rbg| zdS(`(0Y6Foa&+QV=!8F|el7Z*_@`*+zv$Ysn7C%#EY^#S(ac+*JJbq2tnJa2AAu%5 z5S{3xl!wQW=wTd#?$C7fJ#Y_}|BIf-xG>=BXl5(X%zr~)t$*T4r{t zI2yPwdS-^D{aiG$i_smt65XN6=z?y-nm+%xaA5-Xq7%M^4*V#7jt2M!4e&$!9Zh&W zn$U)Ii*Z|^{pzC&X^OsAc1-;NXyS)r`Tyv5Bo|IN0G;SWbZdvB0nSVN1@Tg}-vl(! z6tv%sX}=}q*=U0Irv4H1F@6%uXQggF|CdwYmaI(2AJ7%8K_^&`2CBAok!T%s!mZG8 z^;2$yCe{>PQ0vt17WYj1-tmB~dH(I#lL|c&o$#1+I39f*hoK3bkKXI?DNjeo&5HM; z;~zo~*#h*v@jSYK57C6bM8|zy;=+}zMhE_kZq4uLO4i5f^@?&GbYNXHp>0#YV{8*U z#4c#u?y(m-zE8@fW4SQ1!RVWAIQl$~MOQjC-i3Y!EIQ!>Ugx@NohX~-RhC(LdK!}u8P;9 z{jW!Fy=73jp*p%dST zj=KYmHz)1)WBL34BV4$Ji_igYpwIt@ssAeel=^>CuF;?vw<;2!kWJdpC^DL;)S_7XboEp*&xaYfpHjensFtK6iB zw;?)yvnD+MUTi}}dFANDJH}m7-!A1&DR)I5zwW6&I`sq4m7N%erT%m@?%C)Ljzt%C zS(8#R;F@%pf+loh%D1Bd=b#DBP5r~EUx)^L8cpbB^r`p|J^kOK<0_gK{i>rowJDlV zgAy0M^S4h$b9BPiDYuDxq<(KSU{`eOyQh3q9DoKsF`kn8Gvm2v{0q?+QRxyc%xD_A zCAY_W(G@+6zAzS}JM$?z!E!Y5m8t&$4ZJq~71zhA&5HgTqWx+k3*rCh&V_;Np^x2m z=(p7l=vMYYU&*J&OVP(}Cc5=cpaGvp-2fqSYRWx-ws&U=YLNw zOrSR!s4p6L0J_yf(Ez8Xd_EfB67+pBCH1$WJ9Af@i|*+B_#_(dd32uFtoQkUn+p?I z5|^QYR@wo7LI?hdO>jN7!X_<>M0=s*`=JRPpZe3{x#;+d(0Es%2~5TTPBe`RxAbPT zRj%H@jEb z`=KceO!=gghok*RrhFb6r-bgw73iMKMd$e#jq~{q`4QtAD%_;iXrSNH@lQ0+f9Qbf zI~Hynw?x|;pn;pAaayH*H*{R5xF41m7JKc;E5-mvro#ZVd?Fg?v~)Zh8&e*G2AqK& zvpdiybw2uW@&Y>UGxUS{YqWpmmU+O?__fjctx8;&QA2d#_GxH|c5IXSy;AOq_U{pU zqbu(dkBP^l@rI(e@C4A&`cxc`#vF>qIxCJw z7j;p*0$tR#X`h<%OmvD_=xgzAY=?8vyY?0OR$JGK^XSEvt&6~I&sNiN3nhdO!} zR>Z&1AL488RJ;UQqZ4h-fmm+ZOxFtGaLv;L3XhNOP@mptj2gV6+rqZywaFF*%ghW5KU zPD}f3@ow~qdl2paKQ!KRX@4C}A7U-9O zW-0H3PSgvH*B4#+z&IqH8qdP=ue{FX!U5yZiN~XXu0>ZmJ@t2>{q98rKa~0f=q-E( zy|?e8i7!Rte1*nYo%*#Y|FvsAkE*sQ9-ocS3AT;R(9hV`=q~}fq7xs0CfXzABhU%^ zq2rH3Pxp|t4~u7@37w7Jq6^#PEALfQ_*h+wuH;ViOe{bHJ|AC0Z^66hAzOxy`z7@o zv@KS;CAt%h&8*GaA1iG1NKL^XjnRoL?<2{$EAHdde0}LUl8v_CwLZJ z@oVVLyoJX72#xb?+J8V3_$8M9NQZyX46E)|4A>OiqOH*ZP0_$D(XDQa2Hpdmc%RgF zO?@}C|DkC=3iqenAKjT-k@%&Gd%1Ap$I|c|`i6QF-Qq9NiGD^W`U6eiZ*&JLb}tg# z8g1Ve-O26IooS7ZZ-*|Z6PnmT$oc0(g$q~MCmw@#JRZv*D(HZ*X}=_1iEi<=XhOHd zS?Gj!qX|8Lj(-@P=gGJjIsbg4XFLMS-$(m#;g$_Vw|*F!&{#C^rRYkoLJ!|H=;!zxG@+-_SN9v}_|H@S zb6lVLjoTMH+8B+yb9>hB3U*IL$Jhm3LAQ7an!sUb|32sr9gDsfPE2_yI_?bg){R0Z zx;XV$pyMZ|{`&U${J)6`ci@gR%#HKWi5^E!?ILu7*U%k$JLM(lPJE6|{6orrr+uS6 ziuiTVc=gajzg>w7Guk<}LtiMJQa%iws4qJ3cy!<}^oz$iXhKub9l8l!$Sv`1^w!Kr z6MPO$@Llv)mcC4fb?B>hqdkk2Hbw)tLKD~(O`rq1rCnk-v|mqjA&19)=(s^>V#88@ z8kTPj@}@0ST+D?TPDLlU3k@_cK8mjBf9NaoMf6uzpP*m)|3N3(rb98V2^yy*THiMH z9aG;GP2gZG|H`{B7v9_B&;i5H1V*Gh8q0?$^;e|+S~T(LXkz!Eah{4VqjBDgpP;vH zS;{}+hCcsmxp0ftqX|^mtC+ABTHY+>`sh|~hfdTS-I+G%L>*&SbO*YlXXG%n-e0yP&7PcRCC~Cq56|x(nh}Xd*YDiQk6CnS&qnqKRxAH%9|+jZU~7dJ9{m+zRdA2JP1#O=#b=cS9H4 zv&4mm=vee8q0`WgSE30`Mkkn_`diR@c~|NmM8A$dhHdd}bmA&|7vpQ7Kfu&MPkl>t z;yux)sML*%mRt-&AE)cliRYseFGTO@GicyfQ~y@{08RK)blh_E({okIzoWlS`8VZl z_9^0Rhr};cv`$6aqM~AN^j`0m`rc^f$Do0Sp<8-(ybw)vJetVFl&7Kz%}Dun9S z56cU|@~^zl=EAKVYXy!&C%hb;@EY`8iwjp=xpOg5Z8Tur*Z>{49olaPbfVqRm32b<_e2lZ;b>yVqffzR1A2W3Ln44=mbmA%vYj;en2z+72W#v=*nw%E$;EQ=oYs@>${*69F8uq zZ_0zv1W!T}KBL5iD;bTx!N#G7=6Y;|bI|AaC2Wje#VY$1<)&!=1JDHeq6wUg9?sEd z{A=(~oQiwn*Jxs;?e{M-X&HA%SG*6p(*06@SUd)Oo`;}k;o>+EUGa2u!duXl&PG={ z51sJwv@b$-x>WHJ7Y2F{UCHO@|0S`jIxg3VxvQyBVyBwYPCNz=T z;~aD+?nmQ4ize~`ZqED_OH=U+`UYH=a@_-q2^*n-cZj>76SPMY?}YAHH*|tS&|5GN zP54Z-|7f&-34Kbg!dia*-^hiB?yfi=?f5jB=_}|2@5B#N|0$Z-^0*4!>R-^${lC$1 z+jJ`uXoSww4DHtj%isSya$%q@Xr>3nL(vr+i3S>gJ_Uo({%4>Go|E#0@iMgk)#y_+ z8C~&IH2$4v0{3>~`M2T`Dh%`l8u;0iUqN@`oz#DZ_Fs-BwleL%q5=O!&qDQsiXTMk zqw#i%yQ4eP5uLC9K|KFn45q??r=W-GLi8t@o6vhY7d`dQpoi%*^l|$Iz1Nkx7azl$ zq2pSkKeFwEuKXx8?hy2Gz6f`~n@e2S@dfnMFGVLR!<{}K9P zT8ib*b!<#|n?s6(I-)D=hbB5IPC@(6N8`VR+`>}D%HpEpSM*l=9jo*#Caj4brcKd% zycK%y8>44q$JFnR_S*+dct7;k9gM~ufG%JN+V4~>|09-Xa^Zk6>2MKxPsgJjr=tO8 zq7%=K^U%}10PXiA+HX;OIlhfPH6Nq%e1pdM-gck=wO-)A=<`|a&?3`K(E)YQ3ARnS zN!nYcephs7+NHcNx-Bbip#lC#d$nH0 zVQYd-sqcX%cqTgT+;~2kz(wf7u10Ug^=Y4j?#SF;dHxqt;k|hV-I^EBz;B`net;gH zZ_vP%dl!eOHrl@hI)2yKK6XM^-W7d1`lCBFJniT7&gcL6RG86a=)J!V4LmCy=b|f| zj|NzPu55AIUrGI2DK9~v`!CSP??-e8svK6t*$Rzczm$rmsn`)+Nn3Qlp6CwrKm#3v zuINnk)?9(EY#O?NyU~dsMH74;z2~o|egzuucXXkp4Gu33U0pOl6Ew43V+ZtBbVUzm zcQnC1sXqpN3I?bCq|^_OBU3*H-NA7wUxp-Ds+dq*R7{C8;w*IH`>?$A=)?q47*~z-Tnl5<2na=(ua*6m;D5csn}b zy(vG2#(5^ba3s&a0birSK<}bk`%%hYpKz_0KG+> z(8PMiqtJc>`|$kRaVQnutMOXLj&C(pGFgXD}I6o{02?*ht&Uuo{j&| z$8wXSiuOk6!kU%1aNsU!*aMw#?|3je(a|XnM&Ao(r2b;`JuneXa0VK9ZhQ<~&?59! zynx1g2kl?_j0!NWQ zVfjB|Yg)eGH=VI9Izb2YOzeve*bm*hgU}Tmf!@;rXu`wOem+e=ZdtpaZ`}2mBP*qFerV%2oOmTe@M~1nplp<%VdYP0@S43%ZjX(Z3AT9bM3H zEdL{xXK`VG^U)Puobu#&19}f80znSiqj{BfnyC1q$J<*8=p%V;6za^iE1|E-Y<<;o8nP>uY(24GkkD_s&iqE6{ zUhB{E@5MW*_$VEgru=nWmHMC2%>PKa>M_McHPJYmqg!1M-N_bcqV3UJ(J^*I6Fj2C zgq49efz=|1`Q2&!_%P^l&agCtQin^GhuKnTGYL zsD5mb@y6&%H%A9FMt>k_k@k+M?~G2|4V|E8>ieYrSoGEnMsL-r@%+M4#Y8U5@D}u* z&r5kR`s#cK9k@KMiPZ)a6K{o1+yI@ZDLQT^^!Eq*q6r?4-io1U|Ka6&p1)CCxY9A{ zFuvTtp-TBWbifU0zgy9#U@kh*i|EdLjPBI;=!Cza@_f-|3^?^ zp#JDYL(qX|px@QbMt^*sh&$mu=zHKJbiyCwT6Ek$=tPwV6>&F0`)!F%+yL#@cu=Y6 z*gO?GqqkspG{6Dqz3Q3rvGGJS(cx&IbI^Y0qbr?&Zt*1a2bUYsv-21>#^Ylo==-2IHpbJ@AEU2D1I@z@_!|22K()ceA>0Oy(>mot(L@HJ3mJkYdRiQr z`qF4FT**bLm=LF+8P7lm-i>bIy!a?O!T-{}IKG6g{Ed`9MEiY~`emtKRg_B=KXYN= zb?6zWIH9;lHL)qhI%opB$Gy;iozaO7Ko@W*y3)QW4~nOt@kgQK#-jbkmD_p#uHeGc ze;wNKwse@2@&oZPG?Ay`b7-Jf;ybBdg2wp*P4L^)|Ah8moBDsT{O5lgoLF?+1RYop zov1N-@0+6o4~RX{7570W7>JHL89m)+pyNlP&--X}<(HxTu1a|_mVf_0jSB2@hUmmiQ*IkO#LnorZn0-P0{!K6KlBAQqQr%NBzk2!+={MjHoEc$(4Bca z?Qg{Q&=oB~`z=EgTor#z`>*JZ{Dq!{_2^?=b7--E($-uUsCg=OMl)+ZP5_L}I#Ezs`+ozafH z(G~VZGd~`EL!OQ%a&_vbVfie?hf@Cxn$YX$PQHiUn(wguKe7Lj3p4vY{*6vlF|0_W zHhPO1qAT7F-HC3oKRW(2bfOVxVx!T-FTvgM>a;IT{mWSX^S^hvFu+IXia$fQ^6S)p z7k@w}_!V8jI<)`#v{yf+sIL__L;G)y#&3is)HLloVfp#rjSD+=L^JQ24u_@HV=#57KdI{2E>P zYP8=kss9~46aS*Os{X0Pp=*Qo?~EpJAo@L`7dFLHPv!adViFb2@KJQ)PtgI((R=-U z>er(ytUkOr3!9LJ=z!^H zLbsx~=Wni)Cx_Y4LWeo z)OSV$9Ek4VVQ7Nqp#4kePF#*od=)zW`n2DS^etgva#`0r~<>$X!I`l#hM;~+x&q4#AllBYHL@q%S zoS5>|wBH(M$NSKJ51~7;5RLm38uwY-{r>-o7x)gk6HC%zMf@?YMYs4LG*GoOij{4I zj^6}*aczx0Rn5?Z+o891U-S)lc-n_z$%b>e@DyK#PB0@K?nJ+SKY|W?9o@QR=sSNc z+Q0glg`1$S@Oo&!w(&r8#r@Glk4F<5b|%liD;b#%=b<}LLhso`bifoWCx#BZ6Fq$M z(!Ma|#poG&J@p@_{!280)$!M~uRD|H-vO1*Dmv7TTg3Y4#M`Ib3QeeO%6p*+bwPKe zN6G`x9T(E+ccTmA*QrEAdBTYE%tOPZklI->m! zMFXFJCU{C5flf3g?c>k|k59QYg$uXxCUoFzG?DvLUVt8|XV3{=M+3f>@{;&vT!F^< zG5(JB{|{Yg)sfk0q@M48sn`Y`xLwLSq62nKxdVDgJEJQ<4DEkn93DrZ3pgJ=TbHA8 zCZLI2kL3kp`Op7mr{RJ4DEejdNp!^@qR;Qrl$XWt(11Uo6Rt%kT8~apV^p!#o1^7M zDYr!Xx3}!`-#HbBq{C4u4@S3sIJ(l&slNzKYyz6tb?EaxE#8&($FTguN%`57UrG5* zEdTlc2dVfJo#-ocC96{Z8@kfJQm#0=2wXkZLi=xu-kNRD)4vmXXuF`_C67-1>8Zc? z>^%R|sc=Oz(TVO%`Cc@khtLTYrv6#9-z#Zy!c3bA}&IA=?VmZfHV1(VaLd_5INW3_=q*8I3;zIsZIXTp0MmcquyI zDzxKuslO53`dia}Uwk+|iQdZR&~Y!P{8rlEPx&)+zGdq3zk&-h{vjQHK@ZLE=pov0 zOc8h+G;kwyrOnaDYZr7&4?ur0*)R1Y(S=-z{(<9UbO)|a{VmA(=kI!O;mYny!vb`o zXX1Nn-zZbhv;lRDof%~K1 z0}eqS!~ST3!{d2rzZBiM>(KGj&;)0ud>5MN{i&ai&i7=>FN|gVPWUDj`XL(V^Y~5b zzef{VgC2P(t z4qeG~EUyrq@Gdmq{b-!W(ZGw+{vtZ=jg;R-&(;!bily(l@bGMUL18oWP<24>T`%-S zauPPev1tDpXaWzQ6Fi3Ye-iyergu|bi;k~#VUgH&Xre8Uoheo9!i9l4peyT)uAn=% zz+UJI&qcTTVl?37ld=K=H`e(`>%Hz>E{*K8wr=W@XowK|k%Rc`Xb799T<27ieQ|y2< zQh!IvbI^q5q0jXKbmAw_iC#p=r=Z!Wa^b^+4N?MkhKJ4SYiCPeuEkiLUf~G|qUm-$Zo$)Nwrj2Dpg|JKm0#=b{}SMo;UL zXvS}%XW%O|;a||eRW2&VZHOki30hw-^^MRo(j1MuU)pSQ?Iw1JQ(rqW5+L zn%Mbh|4UN75?#q8wBOXU--=E&JMH(QU*qSa3waIwH2k8(g@BiWBK#{?D7RaBB6(*gx->y(G}c{T*_CX@ur|VG#wp(bK2)%`Op6!;=+OdONSTG%-=>Q_&9!*`tMU-gYL|K z=tNa7E8=X3Zt-U5Ev<(p&>ZdG5`7AGy^QDIE!m$62OORb{m|!pAR6Fwbb_(ypK^^u z1KolCg5qvG1Q%f&tbKVgZeKM1A?U5@kB#w^)K9pa=iiBMq{4fC8ya{nx&!m$6X;Gn zizf0qI_{nLF}lJp&~eMreyh=VKck8Mj^2We#~1zUmAG)F4bcf&qlvUfC+Lc8L|7T%uvd(lK5Nc{rzeX$4|<44#8OMi0V;cIY3(P1z2)p{73zzMhm zo`Oy|1x<8%%6FtZ2c6&{bSGX$6MG#!yzi#|8+80iB*9X}Z(R5W`x`wJn_gK=+zh?< zt1e{|pbH#}0Fh8fONY;GGkA{;jx|3IjZxh9}Sgi_i&PPW>C`PP~`) z73jF1QvN;uhfc7;)kU0IaSQa!G(g9-F6Cl3bfUe`iT6#p8=BxDXuv-47_{H<=(u62 zKOKE)MxpPGi_nR#P5U$~f4HGLRk}MJ=A(yYVam^=6TgN|{60G2Cu#pG<&|mwCH{dX z@Gm;?MiUD+MQ_>GXxs)!+)_oe;-aDzIzgLs=zwO}6%BMqJOWLqKl(lxgeHD2y0VMW zIM<-#rlI|3qB}J!?RR7OpS*i89TukHnUr5b6L=%#kI)I0qJdVX{zr78HRzl3Z}g1R zzNT2|c4$H^(RgjqggU98|6SAJAao_Y)8QC&E00G9o{nzac`09n2A&Y7q<#jP&}=l( zxv76B^-rSXo<+_-e>0g256fF=Sc+!&4H{@Q+V591!9UVo`P!nr2AWtM^hdL;(H+nGyaJRKc%WpDki9l255lZ^QI~9icY*|+y_l~e{=_Wq2v0Z-}eWh z6OKkdxzUn#~mp*KR`TPGkF6?+2y5g(RM5d8Hi2|B^D)UQA%`YG*y#`Wlz*$uAe`Se z^Dz}ZpI@Va|3W9OJhiX}I&fpOeaqM|?ak0cTA_*Tn)}au2JOFn+yR|Vgq!C zwntagGUZ+39%#b*qKO=oaxXN2zNtSJUC0So{`^0K3o|_%4O~Jex-|7yqo;Qo`l7ir z?T?|q?|&NoLE~feLu@6Qz(29d^dfwaLhmOAh9e)wJQ{$)S^M4W*W;8V&W}*|!O8IVdf_Z45 zN73hZA-V%EqXEB4`)YKepU@Z0+LY_wSj1_F#%X$EzW?t)g%h?xf4pvwPH+UewS&=s zBeDE>j(%^LgpQk?_IuHVJec~&(OdTv`e(|orTi_L_?i+IPPFk&#RLt}l{87YH5#xj zx&wQq+$H7iDfdPb>5GmZfc|BclTyAI9X}!U*P*w#G>;1>cpSagi_n$57QaLf-CFcd zLaWax-jvPJkLOP4Z#H_Td@{Py^U*jrq<(J7i_kb96!rZ19~Yk58aEePTOWNDw?%($ zKM0-Zq_mGgC!CBXb`Ltylksiz7JY-p{Riz|XJ+vS7%k9v-EceJKNZJt(U^)0(9CX$ zPo@4dY)1XRDL1*L_|?h&=oX)hP4QAR;d{_HFU4=sM62CeEUYe?;7;o2|NdN<;W6l| zaU`1g)#y&#imvd{)W3=bT$=iyV%6JitezY{SQP}+B5C_Qa=!#=OpwNo?GI=!*C_~qPPvs zcpjR_Q|O8oqk-RyAH>hliI<~^eTP2IKcW-;j-K}Fvx>7(AKl?yu@#njaIqs7=VD8| z9i8ZP^q#(lCbks))y!&i3x7=ef9SXxcNYJ~>uzWQ!_a$w7P^oz=#E{8?eG?4o^2}L zFD@!RMOW}u{BHcZHI){uTT^+$#vn<=z>3vuiC#$5p&3_s!b~WADt4g%K!iX delta 129273 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≠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 swNI5t@7ky8=!UaSIj(B`4NiY\n" "Language: fr\n" @@ -31,7 +31,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "non installé" @@ -46,7 +46,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "" #: cps/helper.py:108 @@ -75,382 +75,382 @@ msgstr "Envoyer vers Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Impossible de trouver un format adapté à envoyer par courriel" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "Invité" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "Téléchargement la mise à jour" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "Décompression de la mise à jour" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "Fichiers remplacés" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "Connexion à la base de donnée fermée" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "Serveur arrêté" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la page" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "Ajouts récents" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "Livres récents" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "Anciens livres" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "Livres (A-Z)" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "Livres (Z-A)" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "Livres populaires (les plus téléchargés)" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "Livres les mieux notés" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "Livres au hasard" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "Liste des auteurs" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est " "pas accessible :" -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "Liste des séries" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "Séries : %(serie)s" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "Langues disponibles" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "Langue : %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "Liste des catégories" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "Catégorie : %(name)s" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "Statistiques" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "Serveur redémarré, merci de rafraîchir la page" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "Mise à jour effectuée" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "recherche" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "Livres lus" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "Livres non-lus" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "Lire un livre" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "SVP, complétez tous les champs !" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "s’enregistrer" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "Une erreur a eu lieu. Merci de réessayez plus tard." -#: cps/web.py:1909 +#: cps/web.py:1946 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:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "Mauvais nom d'utilisateur ou mot de passe" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "connexion" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "Jeton non trouvé" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "Jeton expiré" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "Réussite! Merci de vous tourner vers votre appareil" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "Veillez configurer les paramètres smtp d'abord..." -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Livres envoyés à %(kindlemail)s avec succès" -#: cps/web.py:2046 +#: cps/web.py:2083 #, 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:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "Veuillez configurer votre adresse kindle d'abord..." -#: cps/web.py:2092 +#: cps/web.py:2129 #, 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:2127 +#: cps/web.py:2164 #, 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:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, 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:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "Étagère %(title)s créée" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "Il y a eu une erreur" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "créer une étagère" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "Modifier une étagère" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "l’étagère %(name)s a été supprimé avec succès" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "Étagère : '%(name)s'" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "Un compte avec cette adresse de courriel existe déjà." -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "Profil de %(name)s" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "Profil mis à jour" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "Page administrateur" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "Configuration de Calibre-web mise à jour" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "Configuration basique" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "Ajouter un nouvel utilisateur" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "Utilisateur '%(user)s' créé" -#: cps/web.py:2565 +#: cps/web.py:2606 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:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "Paramètres de courriel mis à jour" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2597 +#: cps/web.py:2638 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "Préférences e-mail mises à jour" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "Éditer les paramètres de courriel" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "Utilisateur '%(nick)s' supprimé" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "Utilisateur '%(nick)s' mis à jour" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "Oups ! Une erreur inconnue a eu lieu." -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "Éditer l'utilisateur %(nick)s" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" "Erreur à l’ouverture du livre. Le fichier n’existe pas ou n’est pas " "accessible" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "modifier les métadonnées" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "inconnu" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "Pour être téléverser le fichier doit avoir une extension" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossible de créer le chemin %s (permission refusée)" -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossible d'enregistrer le fichier %s (permission refusée)" -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossible de supprimer le fichier %s (permission refusée)" @@ -609,7 +609,7 @@ msgstr "D’accord" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "Retour" @@ -655,7 +655,7 @@ msgstr "Description" msgid "Tags" msgstr "Étiquette" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Séries" @@ -702,7 +702,7 @@ msgstr "Obtenir les métadonnées" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "Soumettre" @@ -742,7 +742,7 @@ msgstr "" msgid "Loading..." msgstr "Chargement…" -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "Fermer" @@ -795,8 +795,8 @@ msgstr "" msgid "Server Port" msgstr "" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "Titre" @@ -852,31 +852,31 @@ msgstr "" msgid "Default Settings for new users" msgstr "Réglages par défaut pour les nouveaux utilisateurs" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Utilisateur admin" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Permettre les téléchargements" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Permettre les téléversements" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Permettre l'édition" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Autoriser la suppression des livres" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Permettre le changement de mot de passe" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Autoriser la modification d’étagères publiques" @@ -951,7 +951,7 @@ msgstr "Sauvegarder les réglages" msgid "Save settings and send Test E-Mail" msgstr "Sauvegarder les réglages et tester l’envoi d’e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "Suivant" @@ -968,7 +968,7 @@ msgstr "Découverte (livres au hasard)" msgid "Start" msgstr "Démarrer" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "Livres populaires" @@ -978,7 +978,7 @@ msgstr "" "Publications populaires depuis le catalogue basées sur les " "téléchargements." -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "Livres les mieux notés" @@ -998,7 +998,7 @@ msgstr "Les derniers livres" msgid "Show Random Books" msgstr "Montrer des livres au hasard" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "Auteurs" @@ -1034,68 +1034,68 @@ msgstr "S'enregistrer" msgid "Browse" msgstr "Explorer" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "Ajouts récents" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "Classer les livres" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "Classer par" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "Récents" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "Anciens" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "Ascendant" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "Descendant" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "Découvrir" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "Catégories" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "Langues" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "Étagères publiques" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "Vos étagères" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "Créer une étagère" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "À propos" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "Précédent" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "Détails du livre" @@ -1270,46 +1270,54 @@ msgid "Show random books" msgstr "Montrer des livres au hasard" #: cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/user_edit.html:58 msgid "Show hot books" msgstr "Montrer les livres populaires" -#: cps/templates/user_edit.html:54 +#: cps/templates/user_edit.html:62 msgid "Show best rated books" msgstr "Montrer les livres les mieux notés" -#: cps/templates/user_edit.html:58 +#: cps/templates/user_edit.html:66 msgid "Show language selection" msgstr "Montrer la sélection par langue" -#: cps/templates/user_edit.html:62 +#: cps/templates/user_edit.html:70 msgid "Show series selection" msgstr "Montrer la sélection par séries" -#: cps/templates/user_edit.html:66 +#: cps/templates/user_edit.html:74 msgid "Show category selection" msgstr "Montrer la sélection par catégories" -#: cps/templates/user_edit.html:70 +#: cps/templates/user_edit.html:78 msgid "Show author selection" msgstr "Montrer la sélection par auteur" -#: cps/templates/user_edit.html:74 +#: cps/templates/user_edit.html:82 msgid "Show read and unread" msgstr "Montrer lu et non-lu" -#: cps/templates/user_edit.html:78 +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "Montrer aléatoirement des livres dans la vue détaillée" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "Montrer le contenu pour adulte" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "Supprimer cet utilisateur" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "Téléchargements récents" diff --git a/cps/translations/it/LC_MESSAGES/messages.mo b/cps/translations/it/LC_MESSAGES/messages.mo index f5170421fb9a30839ee8799d2b1a00f933ff8594..c995cf0f70919e0ab9f09ec42c7b35bf512984e5 100644 GIT binary patch delta 129482 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≥t29 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

vr;}k?E}%ByK1Za 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 diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 4507f371..39e0bbc9 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -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-11-01 16:05+0100\n" +"POT-Creation-Date: 2017-11-12 14:54+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: Marco Picone \n" "Language: it\n" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "non installato" @@ -40,7 +40,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "formato epub non trovato" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "non ci sono permessi" #: cps/helper.py:108 @@ -69,386 +69,386 @@ msgstr "Invia a Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Impossibile trovare i formati adatti per l'invio tramite email" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "ospite" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "Richiesta del pacchetto di aggiornamento" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "Scaricare il pacchetto di aggiornamento" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "Decomprimere pacchetto di aggiornamento" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "I file vengono sostituiti" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "Le connessioni di database sono chiuse" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "Il server viene arrestato" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "Aggiornamento completato, prego premere bene e ricaricare pagina" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "Libri aggiunti di recente" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "I più nuovi libri" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "Libri più vecchi" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "Ebook (A-Z)" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "Ebook (Z-A)" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "Hot Books (più scaricati)" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "I migliori libri valutati" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "Libri casuali" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "Elenco degli autori" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile:" -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "Lista delle serie" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "Serie :" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "Lingue disponibili" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "Lingue: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "Elenco categorie" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "Categoria : %(name)s" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "Mancano autorizzazioni di esecuzione" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "Statistica" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "Server riavviato, ricarica pagina" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "Eseguire l'arresto del server, chiudi la finestra." -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "Aggiornamento fatto" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "ricerca" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "Leggere libri" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "Libri non letti" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "Leggere un libro" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "Compila tutti i campi" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "Registrare" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "Si è verificato un errore sconosciuto. Per favore riprova più tardi." -#: cps/web.py:1909 +#: cps/web.py:1946 msgid "This username or email address is already in use." msgstr "Questo nome utente o indirizzo email è già in uso." -#: cps/web.py:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "ora sei connesso come : '%(nickname)s'" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "Nome utente o password errata" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "Accesso" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "Token non trovato" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "Il token è scaduto" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "Successo! Torna al tuo dispositivo" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "Configurare prima le impostazioni della posta SMTP..." -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Libro inviare con successo %(kindlemail)s correttamente" -#: cps/web.py:2046 +#: cps/web.py:2083 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Si è verificato un errore durante l'invio di questo libro: %(res)s" -#: cps/web.py:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "Si prega di configurare innanzitutto il tuo indirizzo email..." -#: cps/web.py:2092 +#: cps/web.py:2129 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Il libro è stato aggiunto alla mensola: %(sname)s" -#: cps/web.py:2127 +#: cps/web.py:2164 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Il libro è stato rimosso dalla mensola: %(sname)s" -#: cps/web.py:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Uno scaffale con il nome '%(title)s' esiste già." -#: cps/web.py:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "Mensola %(title)s creato" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "c'era un errore" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "creare uno scaffale" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "Mensola %(title)s cambiato" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "Modifica un ripiano" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "cancellato con successo il ripiano %(name)s" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "Mensola: '%(name)s'" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" "Errore durante l'apertura dello scaffale. La mensola non esiste o non è " "accessibile" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Modificare l'ordine della mensola: '%(name)s'" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "Trovato un account esistente per questo indirizzo email." -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "Profilo di %(name)s" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "Profilo aggiornato" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "Pagina di amministrazione" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "Aggiornamento della configurazione del calibro-web" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "Configurazione di base" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "Posizione DB non valida. Inserisci il percorso corretto." -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "Aggiungi un nuovo utente" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "utente '%(user)s' creato" -#: cps/web.py:2565 +#: cps/web.py:2606 msgid "Found an existing account for this email address or nickname." msgstr "" "È stato trovato un account collegato a questo indirizzo e-mail o nome " "utente." -#: cps/web.py:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "Parametri di posta aggiornati" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Successo quando invii il test a %(kindlemail)s" -#: cps/web.py:2597 +#: cps/web.py:2638 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Impossibile inviare il test a E-Mail: %(res)s" -#: cps/web.py:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "Impostazioni email aggiornate" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "Modificare i parametri della posta" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "utente '%(nick)s' cancellati" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "utente '%(nick)s' aggiornato" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "Errore imprevisto." -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "Modifica utente %(nick)s" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "modificare la metainformazione" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Non è consentito caricare i file con l'estensione \"%s\" a questo server" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "Sconosciuto" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "Il file da caricare deve avere un'estensione" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossibile creare il percorso %s (autorizzazione negata)" -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossibile archiviare il file %s (autorizzazione negata)" -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossibile eliminare il file %s (autorizzazione negata)" @@ -607,7 +607,7 @@ msgstr "Ok" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "Indietro" @@ -653,7 +653,7 @@ msgstr "Descrizione" msgid "Tags" msgstr "Tags" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Serie" @@ -700,7 +700,7 @@ msgstr "Ottieni metadati" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "Sottoscrivi" @@ -740,7 +740,7 @@ msgstr "Fai clic sul coperchio per caricare i metadati nel modulo" msgid "Loading..." msgstr "Caricamento in corso..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "Chiuso" @@ -793,8 +793,8 @@ msgstr "ID canale Watch Metadata" msgid "Server Port" msgstr "Porta del server" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "Titolo" @@ -850,31 +850,31 @@ msgstr "Goodreads API Secret" msgid "Default Settings for new users" msgstr "Impostazioni predefinite per i nuovi utenti" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Utente amministratore" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Consenti download" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Consenti caricamenti" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Consenti Modifica" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Consenti l'eliminazione di libri" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Consenti la modifica della password" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Consenti la modifica dei ripiani pubblici" @@ -949,7 +949,7 @@ msgstr "Salva le impostazioni" msgid "Save settings and send Test E-Mail" msgstr "Salvare le impostazioni e inviare Test e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "Prossimo" @@ -966,7 +966,7 @@ msgstr "Scoprire (Libri casuali)" msgid "Start" msgstr "Inizio" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "Hot Ebook" @@ -974,7 +974,7 @@ msgstr "Hot Ebook" msgid "Popular publications from this catalog based on Downloads." msgstr "Pubblicazioni popolari di questo catalogo in base ai download." -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "Libri più votati" @@ -994,7 +994,7 @@ msgstr "Gli ultimi Libri" msgid "Show Random Books" msgstr "Mostra libri casuali" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "Autori" @@ -1030,68 +1030,68 @@ msgstr "Registrare" msgid "Browse" msgstr "Navigare" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "Aggiunto recentemente" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "Libri ordinati" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "Ordina per" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "i più nuovi" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "il più vecchio" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "Ascendente" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "Discendente" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "Per scoprire" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "Categoria" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "lingua" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "Ripiani pubblici" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "I tuoi scaffali" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "Crea una mensola" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "Di" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "Precedente" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "Dettagli ebook" @@ -1268,46 +1268,54 @@ msgid "Show random books" msgstr "Mostra libro a caso" #: cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/user_edit.html:58 msgid "Show hot books" msgstr "Mostra libri popolari" -#: cps/templates/user_edit.html:54 +#: cps/templates/user_edit.html:62 msgid "Show best rated books" msgstr "Mostra sezione più votati" -#: cps/templates/user_edit.html:58 +#: cps/templates/user_edit.html:66 msgid "Show language selection" msgstr "Mostra sezione lingua" -#: cps/templates/user_edit.html:62 +#: cps/templates/user_edit.html:70 msgid "Show series selection" msgstr "Mostra sezione serie" -#: cps/templates/user_edit.html:66 +#: cps/templates/user_edit.html:74 msgid "Show category selection" msgstr "Mostra sezione categorie" -#: cps/templates/user_edit.html:70 +#: cps/templates/user_edit.html:78 msgid "Show author selection" msgstr "Mostra sezione autore" -#: cps/templates/user_edit.html:74 +#: cps/templates/user_edit.html:82 msgid "Show read and unread" msgstr "Mostra letto e non letto" -#: cps/templates/user_edit.html:78 +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "Un libro a caso" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "Mostra sezione adulti" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "Elimina questo utente" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "Download Recenti" diff --git a/cps/translations/nl/LC_MESSAGES/messages.mo b/cps/translations/nl/LC_MESSAGES/messages.mo index 00ca074648b4ad2415462ca65d6af40b1562eb54..57dd5c5493460292142c1a5dc1c5102d0b865f8a 100644 GIT binary patch delta 130170 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 diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index fcbe2a07..2e29210b 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web dutch translation by Ed Driesen (GPL V3)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 16:05+0100\n" +"POT-Creation-Date: 2017-11-12 14:54+0100\n" "PO-Revision-Date: 2017-06-21 20:15+0200\n" "Last-Translator: \n" "Language: nl\n" @@ -33,7 +33,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "niet geïnstalleerd" @@ -48,7 +48,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "epub type niet gevonden voor boek met id: %(book)d" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "kindlegen gefaald, geen rechten om uit te voeren" #: cps/helper.py:108 @@ -77,378 +77,382 @@ msgstr "Stuur naar Kindle:" msgid "Could not find any formats suitable for sending by email" msgstr "Kon geen geschikte formaten vinden om te verzenden per email" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "Gast" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "Update pakket wordt aangevraagd" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "Update pakket wordt gedownload" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "Update pakket wordt uitgepakt" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "Bestanden zijn vervangen" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "Database verbindingen zijn gesloten" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "Server is gestopt" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "Update voltooid, klik op ok en herlaad de pagina" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "Recent toegevoegde boeken" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "Nieuwste boeken" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "Oudste boeken" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "Boeken (A-Z)" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "Boeken (A-Z)" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "Populaire boeken (meeste downloads)" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "Best beoordeelde boeken" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "Willekeurige boeken" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "Auteur lijst" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" -msgstr "Fout bij openen van het boek. Bestand bestaat niet of is niet toegankelijk:" +msgstr "" +"Fout bij openen van het boek. Bestand bestaat niet of is niet " +"toegankelijk:" -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "Serie lijst" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "Beschikbare talen" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "Categorie lijst" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "Categorie: %(name)s" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "Rechten om uit te voeren ontbreken" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "Statistieken" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "Server herstart, gelieve de pagina herladen" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "Bezig met het stoppen van de server, gelieve venster te sluiten" -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "Update voltooid" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "zoek" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "Gelezen Boeken" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "Ongelezen Boeken" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "Lees een boek" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "Gelieve alle velden in te vullen!" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "registreer" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "Een onbekende fout deed zich voor. Gelieve later nog eens te proberen." -#: cps/web.py:1909 +#: cps/web.py:1946 msgid "This username or email address is already in use." msgstr "Deze gebruikersnaam of dit emailadres is reeds in gebruik." -#: cps/web.py:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "je bent nu ingelogd als: '%(nickname)s'" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "Verkeerde gebruikersnaam of Wachtwoord" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "login" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "Token niet gevonden" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "Token is verlopen" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "Gelukt! Ga terug naar je apparaat" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "Gelieve de SMTP mail instellingen eerst te configureren..." -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Boek met succes verstuurd naar %(kindlemail)s" -#: cps/web.py:2046 +#: cps/web.py:2083 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Er trad een fout op bij het versturen van dit boek: %(res)s" -#: cps/web.py:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "Gelieve eerst je kindle email adres te configureren..." -#: cps/web.py:2092 +#: cps/web.py:2129 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Boek werd toegevoegd aan boekenplank: %(sname)s" -#: cps/web.py:2127 +#: cps/web.py:2164 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Boek werd verwijderd van boekenplank: %(sname)s" -#: cps/web.py:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Een boekenplank met de naam '%(title)s' bestaat reeds." -#: cps/web.py:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "Boekenplank %(title)s aangemaakt" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "Er deed zich een fout voor" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "maak een boekenplank" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "Boekenplank %(title)s gewijzigd" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "Bewerk een boekenplank" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Boekenplank %(name)s succesvol gewist" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "Boekenplank: '%(name)s'" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" -msgstr "Fout bij openen boekenplank. Boekenplank bestaat niet of is niet toegankelijk" +msgstr "" +"Fout bij openen boekenplank. Boekenplank bestaat niet of is niet " +"toegankelijk" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Verander volgorde van Boekenplank: '%(name)s'" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "Een bestaand gebruiker gevonden voor dit email adres." -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's profiel" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "Profiel aangepast" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "Administratie pagina" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "Calibre-web configuratie aangepast" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "Basis configuratie" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "DB locatie is niet geldig, gelieve het correcte pad in te geven" -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "Voeg nieuwe gebruiker toe" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "Gebruiker '%(user)s' aangemaakt" -#: cps/web.py:2565 +#: cps/web.py:2606 msgid "Found an existing account for this email address or nickname." msgstr "Een bestaande gebruiker gevonden voor dit emailadres of gebruikersnaam." -#: cps/web.py:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "Mail instellingen aangepast" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Test email met succes verstuurd naar %(kindlemail)s" -#: cps/web.py:2597 +#: cps/web.py:2638 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Er trad een fout op met het versturen van de test email: %(res)s" -#: cps/web.py:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "Email instellingen aangepast" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "Bewerk mail instellingen" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "Gebruiker '%(nick)s' verwijderd" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "Gebruiker '%(nick)s' aangepast" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "Een onbekende fout deed zich voor." -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "Bewerk gebruiker '%(nick)s'" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Fout bij openen eBook. Het bestand bestaat niet of is niet toegankelijk" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "Bewerk metadata" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Het uploaden van bestandsextensie \"%s\" is niet toegestaan op deze server" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "Bestand opslaan niet gelukt voor %s." -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "onbekend" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "Up te loaden bestanden dienen een extensie te hebben" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Het pad %s aanmaken mislukt (Geen toestemming)." -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Bestand %s opslaan mislukt (Geen toestemming)." -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Bestand %s wissen mislukt (Geen toestemming)." @@ -607,7 +611,7 @@ msgstr "Ok" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "Terug" @@ -653,7 +657,7 @@ msgstr "Omschrijving" msgid "Tags" msgstr "Tags" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Series" @@ -700,7 +704,7 @@ msgstr "Verkrijg metadata" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "Indienen" @@ -740,7 +744,7 @@ msgstr "Klik op de omslag om de metatadata in het formulier te laden" msgid "Loading..." msgstr "Aan het laden..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "Sluit" @@ -793,8 +797,8 @@ msgstr "Metadata Watch Channel ID" msgid "Server Port" msgstr "Server poort" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "Titel" @@ -850,31 +854,31 @@ msgstr "Goodreads API geheim" msgid "Default Settings for new users" msgstr "Standaard instellingen voor nieuwe gebruikers" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Administratie gebruiker" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Downloads toestaan" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Uploads toestaan" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Bewerken toestaan" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Het wissen van boeken toestaan" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Wachtwoord wijzigen toestaan" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Publieke boekenplanken bewerken toestaan" @@ -917,7 +921,9 @@ msgstr "Bewerk metadata" #: cps/templates/email_edit.html:11 msgid "SMTP port (usually 25 for plain SMTP and 465 for SSL and 587 for STARTTLS)" -msgstr "SMTP poort (meestal 25 voor normale SMTP en 465 voor SSL en 587 voor STARTTLS)" +msgstr "" +"SMTP poort (meestal 25 voor normale SMTP en 465 voor SSL en 587 voor " +"STARTTLS)" #: cps/templates/email_edit.html:15 msgid "Encryption" @@ -947,7 +953,7 @@ msgstr "Bewaar instelling" msgid "Save settings and send Test E-Mail" msgstr "Bewaar instellingen en stuur test email" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "Volgende" @@ -964,7 +970,7 @@ msgstr "Ontdek (Willekeurige Boeken)" msgid "Start" msgstr "Start" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "Populaire Boeken" @@ -972,7 +978,7 @@ msgstr "Populaire Boeken" msgid "Popular publications from this catalog based on Downloads." msgstr "Populaire publicaties van deze cataloog gebaseerd op Downloads." -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "Best beoordeeld" @@ -992,7 +998,7 @@ msgstr "Recentste boeken" msgid "Show Random Books" msgstr "Toon Willekeurige Boeken" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "Auteurs" @@ -1028,68 +1034,68 @@ msgstr "Registreer" msgid "Browse" msgstr "Verkennen" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "Recent Toegevoegd" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "Gesorteerde Boeken" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "Sorteren op" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "Nieuwste" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "Oudste" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "Oplopend" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "Aflopend" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "Ontdek" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "Categorieën" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "Talen" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "Publieke Boekenplanken" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "Jou Boekenplanken" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "Maak een boekenplank" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "Over" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "Vorige" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "Boek Details" @@ -1264,46 +1270,54 @@ msgid "Show random books" msgstr "Toon willekeurige boeken" #: cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/user_edit.html:58 msgid "Show hot books" msgstr "Toon populaire boeken" -#: cps/templates/user_edit.html:54 +#: cps/templates/user_edit.html:62 msgid "Show best rated books" msgstr "Toon best beoordeelde boeken" -#: cps/templates/user_edit.html:58 +#: cps/templates/user_edit.html:66 msgid "Show language selection" msgstr "Toon taal selectie" -#: cps/templates/user_edit.html:62 +#: cps/templates/user_edit.html:70 msgid "Show series selection" msgstr "Toon serie selectie" -#: cps/templates/user_edit.html:66 +#: cps/templates/user_edit.html:74 msgid "Show category selection" msgstr "Toon categorie selectie" -#: cps/templates/user_edit.html:70 +#: cps/templates/user_edit.html:78 msgid "Show author selection" msgstr "Toon auteur selectie" -#: cps/templates/user_edit.html:74 +#: cps/templates/user_edit.html:82 msgid "Show read and unread" msgstr "Toon gelezen en ongelezen" -#: cps/templates/user_edit.html:78 +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "Toon willekeurige boeken in gedetailleerd zicht" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "Toon Volwassen Inhoud" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "Wis deze gebruiker" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "Recente Downloads" diff --git a/cps/translations/pl/LC_MESSAGES/messages.mo b/cps/translations/pl/LC_MESSAGES/messages.mo index 0d2279437a838cc3b7cdfe29d49dd7589e56006b..d3638a587212fbd43ce788d38b7e70087c0cfa5a 100644 GIT binary patch delta 129344 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 delta 129193 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 diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index 6e1d632d..4e00030b 100644 --- a/cps/translations/pl/LC_MESSAGES/messages.po +++ b/cps/translations/pl/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre Web - polski (POT: 2017-04-11 22:51)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 16:05+0100\n" +"POT-Creation-Date: 2017-11-12 14:54+0100\n" "PO-Revision-Date: 2017-04-11 22:51+0200\n" "Last-Translator: Radosław Kierznowski \n" "Language: pl\n" @@ -24,7 +24,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "nie zainstalowane" @@ -39,7 +39,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "" #: cps/helper.py:108 @@ -70,378 +70,378 @@ msgstr "" "Nie można znaleźć żadnych formatów przystosowane do wysyłania pocztą " "e-mail" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "Gość" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "Żądanie o pakiet aktualizacji" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "Pobieranie pakietu aktualizacji" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "Rozpakowywanie pakietu aktualizacji" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "Pliki zostały zastąpione" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "Połączenia z bazą danych zostały zakończone" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "Serwer jest zatrzymany" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "Najpopularniejsze książki (najczęściej pobierane)" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "Najlepiej oceniane książki" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "Losowe książki" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "Lista autorów" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:" -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "Lista serii" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "Seria: %(serie)s" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "Dostępne języki" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "Język: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "Lista kategorii" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "Statystyki" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno" -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "Aktualizacja zakończona" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "szukaj" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "Przeczytane książki" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "Nieprzeczytane książki" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "Czytaj książkę" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "Proszę wypełnić wszystkie pola!" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "rejestracja" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później." -#: cps/web.py:1909 +#: cps/web.py:1946 msgid "This username or email address is already in use." msgstr "Nazwa użytkownika lub adres e-mail jest już w użyciu." -#: cps/web.py:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Zalogowałeś się jako: '%(nickname)s'" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "Błędna nazwa użytkownika lub hasło" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "logowanie" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..." -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Książka została pomyślnie wysłana do %(kindlemail)s" -#: cps/web.py:2046 +#: cps/web.py:2083 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s" -#: cps/web.py:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..." -#: cps/web.py:2092 +#: cps/web.py:2129 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Książka została dodana do półki: %(sname)s" -#: cps/web.py:2127 +#: cps/web.py:2164 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Książka została usunięta z półki: %(sname)s" -#: cps/web.py:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Półka o nazwie '%(title)s' już istnieje." -#: cps/web.py:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "Półka %(title)s została utworzona" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "Wystąpił błąd" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "utwórz półkę" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "Półka %(title)s została zmieniona" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "Edytuj półkę" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "pomyślnie usunięto półkę %(name)s" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "Półka: '%(name)s'" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Zmieniono kolejność półki: '%(name)s'" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "Znaleziono istniejące konto dla tego adresu e-mail." -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "Profil użytkownika %(name)s" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "Zaktualizowano profil" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "Portal administracyjny" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "Konfiguracja Calibre-web została zaktualizowana" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "Podstawowa konfiguracja" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę" -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "Dodaj nowego użytkownika" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "Użytkownik '%(user)s' został utworzony" -#: cps/web.py:2565 +#: cps/web.py:2606 msgid "Found an existing account for this email address or nickname." msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika." -#: cps/web.py:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "Zaktualizowano ustawienia poczty e-mail" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Testowy e-mail został pomyślnie wysłany do %(kindlemail)s" -#: cps/web.py:2597 +#: cps/web.py:2638 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s" -#: cps/web.py:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "Zaktualizowano ustawienia e-mail" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "Edytuj ustawienia poczty e-mail" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "Użytkownik '%(nick)s' został usunięty" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "Użytkownik '%(nick)s' został zaktualizowany" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "Wystąpił nieznany błąd." -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "Edytuj użytkownika %(nick)s" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "edytuj metadane" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Rozszerzenie pliku \"%s\" nie jest dozwolone do przesłania na ten serwer" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "Plik do przesłania musi mieć rozszerzenie" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)." -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)." -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)." @@ -600,7 +600,7 @@ msgstr "OK" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "Wróć" @@ -646,7 +646,7 @@ msgstr "Opis" msgid "Tags" msgstr "Tagi" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Seria" @@ -693,7 +693,7 @@ msgstr "Uzyskaj metadane" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "Wyślij" @@ -733,7 +733,7 @@ msgstr "Kliknij okładkę, aby załadować metadane do formularza" msgid "Loading..." msgstr "Ładowanie..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "Zamknij" @@ -787,8 +787,8 @@ msgstr "Metadane Watch Channel ID" msgid "Server Port" msgstr "Port serwera" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "Tytuł" @@ -844,31 +844,31 @@ msgstr "" msgid "Default Settings for new users" msgstr "Domyślne ustawienia dla nowych użytkowników" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Użytkownik z uprawnieniami administratora" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Zezwalaj na pobieranie" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Zezwalaj na wysyłanie" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Zezwalaj na edycję" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Zezwalaj na zmianę hasła" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "" @@ -943,7 +943,7 @@ msgstr "Zapisz ustawienia" msgid "Save settings and send Test E-Mail" msgstr "Zapisz ustawienia i wyślij testową wiadomość e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "Następne" @@ -960,7 +960,7 @@ msgstr "Odkrywaj (losowe książki)" msgid "Start" msgstr "Rozpocznij" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "Najpopularniejsze książki" @@ -968,7 +968,7 @@ msgstr "Najpopularniejsze książki" msgid "Popular publications from this catalog based on Downloads." msgstr "Popularne publikacje z tego katalogu bazujące na pobranych." -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "Najlepiej ocenione książki" @@ -988,7 +988,7 @@ msgstr "Ostatnie książki" msgid "Show Random Books" msgstr "Pokazuj losowe książki" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "Autorzy" @@ -1024,68 +1024,68 @@ msgstr "Zarejestruj się" msgid "Browse" msgstr "Przeglądaj" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "Odkrywaj" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "Kategorie" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "Języki" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "Publiczne półki" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "Twoje półki" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "Utwórz półkę" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "O programie" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "" @@ -1261,46 +1261,54 @@ msgid "Show random books" msgstr "Pokaż losowe książki" #: cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/user_edit.html:58 msgid "Show hot books" msgstr "Pokaż najpopularniejsze książki" -#: cps/templates/user_edit.html:54 +#: cps/templates/user_edit.html:62 msgid "Show best rated books" msgstr "Pokaż najlepiej ocenione książki" -#: cps/templates/user_edit.html:58 +#: cps/templates/user_edit.html:66 msgid "Show language selection" msgstr "Pokaż wybór języka" -#: cps/templates/user_edit.html:62 +#: cps/templates/user_edit.html:70 msgid "Show series selection" msgstr "Pokaż wybór serii" -#: cps/templates/user_edit.html:66 +#: cps/templates/user_edit.html:74 msgid "Show category selection" msgstr "Pokaż wybór kategorii" -#: cps/templates/user_edit.html:70 +#: cps/templates/user_edit.html:78 msgid "Show author selection" msgstr "Pokaż wybór autora" -#: cps/templates/user_edit.html:74 +#: cps/templates/user_edit.html:82 msgid "Show read and unread" msgstr "Pokaż przeczytane i nieprzeczytane" -#: cps/templates/user_edit.html:78 +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "Pokaz losowe książki w widoku szczegółowym" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "Usuń tego użytkownika" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "Ostatnio pobierane" diff --git a/cps/translations/ru/LC_MESSAGES/messages.mo b/cps/translations/ru/LC_MESSAGES/messages.mo index ac155d8ee73900d8dbfd06bcf8ff64afe4692448..e7bed0c56f779626b9fa92c66ada0d6942905b9b 100644 GIT binary patch delta 129424 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

F~s*j$5Cg?;hQr`yccN`k1 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\n" "Language: ru\n" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "Отсутствует" @@ -41,7 +41,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "" #: cps/helper.py:108 @@ -70,378 +70,378 @@ msgstr "Отправить на Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "Невозоможно найти формат, подходящий для отправки по email" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "Гость" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "Проверка обновлений" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "Загрузка обновлений" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "Распаковка обновлений" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "Файлы заменены" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "Соеднинения с базой данных закрыты" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "Сервер остановлен" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "Обновления установлены, нажмите okay и перезагрузите страницу" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "Популярные книги (часто загружаемые)" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "Книги с наивысшим рейтингом" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "Случайный выбор" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "Авторы" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Невозможно открыть книгу. Файл не существует или недоступен." -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "Серии" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "Серии: %(serie)s" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "Языки" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "Язык: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "Категории" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "Категория: %(name)s" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "Статистика" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "Сервер перезагружен, пожалуйста, перезагрузите страницу" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "Производится остановка сервера, пожалуйста, закройте окно" -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "Обновление закончено" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "поиск" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "Прочитанные" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "Непрочитанные" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "Читать книгу" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "Пожалуйста, заполните все поля!" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "зарегистрироваться" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "Неизвестная ошибка. Пожалуйста, попробуйте позже." -#: cps/web.py:1909 +#: cps/web.py:1946 msgid "This username or email address is already in use." msgstr "Имя пользователя или адрес эл. почты уже используется" -#: cps/web.py:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Вы вошли как пользователь '%(nickname)s'" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "Ошибка в имени пользователя или пароле" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "войти" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP" -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Книга успешно отправлена на %(kindlemail)s" -#: cps/web.py:2046 +#: cps/web.py:2083 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Ошибка при отправке книги: %(res)s" -#: cps/web.py:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "Пожалуйста, сначала укажите ваш kindle email..." -#: cps/web.py:2092 +#: cps/web.py:2129 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Книга добавлена на книжную полку: %(sname)s" -#: cps/web.py:2127 +#: cps/web.py:2164 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Книга удалена с книжной полки: %(sname)s" -#: cps/web.py:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Книжкная полка с названием '%(title)s' уже существует." -#: cps/web.py:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "Создана книжная полка %(title)s" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "Произошла ошибка" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "создать книжную полку" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "Книжная полка %(title)s изменена" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "Изменить книжную полку" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Книжная полка %(name)s удалена" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "Книжная полка: '%(name)s'" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Изменить расположение книжной полки '%(name)s'" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "Найдена учётная запись для для данного адреса email." -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "Профиль %(name)s" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "Профиль обновлён" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "Администрирование" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "Конфигурация Calibre-web обновлена" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "Настройки сервера" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "Неверный путь к фалу БД, пожалуйста, укажите правильное расположение БД" -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "Добавить пользователя" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "Пользователь '%(user)s' добавлен" -#: cps/web.py:2565 +#: cps/web.py:2606 msgid "Found an existing account for this email address or nickname." msgstr "Для указанного адреса или имени найдена существующая учётная запись." -#: cps/web.py:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "Настройки почты изменены" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Тестовое сообщение успешно отправлено на адрес %(kindlemail)s" -#: cps/web.py:2597 +#: cps/web.py:2638 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Ошибка отправки тестового сообщения: %(res)s" -#: cps/web.py:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "Обновлены настройки e-mail" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "Изменить почтовые настройки" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "Пользователь '%(nick)s' удалён" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "Пользователь '%(nick)s' обновлён" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "Произошла неизвестная ошибка." -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "Изменить пользователя %(nick)s" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "изменить метаданные" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Запрещена загрузка файлов с расширением \"%s\"" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "неизвестно" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "Загружаемый файл должен иметь расширение" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Ошибка при создании пути %s (доступ запрещён)" -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Ошибка записи файоа %s (доступ запрещён)" -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Ошибка удаления файла %s (доступ запрещён)" @@ -600,7 +600,7 @@ msgstr "Ok" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "Назад" @@ -646,7 +646,7 @@ msgstr "Описание" msgid "Tags" msgstr "Теги" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Серии" @@ -693,7 +693,7 @@ msgstr "Получить метаданные" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "Отправить" @@ -733,7 +733,7 @@ msgstr "Нажмите на обложку, чтобы получить мета msgid "Loading..." msgstr "Загрузка..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "Закрыть" @@ -786,8 +786,8 @@ msgstr "Metadata Watch Channel ID" msgid "Server Port" msgstr "Порт сервера" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "Заголовок" @@ -843,31 +843,31 @@ msgstr "" msgid "Default Settings for new users" msgstr "Настройки по умолчанию для новых пользователей" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Управление сервером" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Разрешить скачивание с сервера" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Разрешить загрузку на сервер" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Разрешить редактирование книг" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Разрешить удаление книг" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Разрешить смену пароля" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Разрешить редактирование публичных книжных полок" @@ -940,7 +940,7 @@ msgstr "Сохранить настройки" msgid "Save settings and send Test E-Mail" msgstr "Сохранить настройки и отправить тестовое письмо" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "Дальше" @@ -957,7 +957,7 @@ msgstr "Обзор (случайные книги)" msgid "Start" msgstr "Старт" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "Популярные книги" @@ -965,7 +965,7 @@ msgstr "Популярные книги" msgid "Popular publications from this catalog based on Downloads." msgstr "Популярные книги в этом каталоге, на основе количества скачиваний" -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "Книги с наилучшим рейтингом" @@ -985,7 +985,7 @@ msgstr "Последние поступления" msgid "Show Random Books" msgstr "Показывать случайные книги" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "Авторы" @@ -1021,68 +1021,68 @@ msgstr "Зарегистрироваться" msgid "Browse" msgstr "Просмотр" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "Обзор" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "Категории" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "Языки" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "Общие книжные полки" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "Ваши книжные полки" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "Создать книжную полку" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "О программе" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "" @@ -1257,46 +1257,54 @@ msgid "Show random books" msgstr "Показывать случайные книги" #: cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/user_edit.html:58 msgid "Show hot books" msgstr "Показывать популярные книги" -#: cps/templates/user_edit.html:54 +#: cps/templates/user_edit.html:62 msgid "Show best rated books" msgstr "Показывать книги с наивысшим рейтингом" -#: cps/templates/user_edit.html:58 +#: cps/templates/user_edit.html:66 msgid "Show language selection" msgstr "Показывать выбор языка" -#: cps/templates/user_edit.html:62 +#: cps/templates/user_edit.html:70 msgid "Show series selection" msgstr "Показывать выбор серии" -#: cps/templates/user_edit.html:66 +#: cps/templates/user_edit.html:74 msgid "Show category selection" msgstr "Показывать выбор категории" -#: cps/templates/user_edit.html:70 +#: cps/templates/user_edit.html:78 msgid "Show author selection" msgstr "Показывать выбор автора" -#: cps/templates/user_edit.html:74 +#: cps/templates/user_edit.html:82 msgid "Show read and unread" msgstr "Показывать прочитанные и непрочитанные" -#: cps/templates/user_edit.html:78 +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "Показывать случайные книги при просмотре деталей" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "Удалить этого пользователя" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "Недавние скачивания" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index 6233c124eca4dbafe18275c7560bce1b8583f53b..4da4b37dfc23696322988f661d7440d5146233e3 100644 GIT binary patch delta 129442 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 diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 862f3c08..a5b1cded 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2017-11-01 16:05+0100\n" +"POT-Creation-Date: 2017-11-12 14:54+0100\n" "PO-Revision-Date: 2017-01-06 17:00+0000\n" "Last-Translator: dalin \n" "Language: zh_Hans_CN\n" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "未安装" @@ -41,7 +41,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "没有找到书籍ID %(book)d 的epub格式" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "kindlegen失败,没有可执行权限" #: cps/helper.py:108 @@ -70,378 +70,378 @@ msgstr "发送到Kindle" msgid "Could not find any formats suitable for sending by email" msgstr "无法找到适合邮件发送的格式" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "游客" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "文件已替换" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "服务器已停止" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请按确定并刷新页面" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "最近添加的书籍" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "最新书籍" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "最旧书籍" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "书籍 (A-Z)" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "书籍 (Z-A)" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "热门书籍(最多下载)" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "最高评分书籍" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "随机书籍" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "作者列表" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "无法打开电子书。 文件不存在或者文件不可访问:" -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "丛书列表" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "丛书: %(serie)s" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "可用语言" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "语言: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "分类列表" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "分类: %(name)s" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "可执行权限缺失" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "统计" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "服务器已重启,请刷新页面" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "正在关闭服务器,请关闭窗口" -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "更新完成" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "搜索" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "已读书籍" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "未读书籍" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "阅读一本书" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "请填写所有字段" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "注册" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "发生一个未知错误。请稍后再试。" -#: cps/web.py:1909 +#: cps/web.py:1946 msgid "This username or email address is already in use." msgstr "此用户名或邮箱已被使用。" -#: cps/web.py:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "您现在已以'%(nickname)s'身份登录" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "用户名或密码错误" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "登录" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "找不到Token" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "Token已过期" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "成功!请返回您的设备" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱..." -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "此书已被成功发给 %(kindlemail)s" -#: cps/web.py:2046 +#: cps/web.py:2083 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "发送这本书的时候出现错误: %(res)s" -#: cps/web.py:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "请先配置您的kindle电子邮箱地址..." -#: cps/web.py:2092 +#: cps/web.py:2129 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "此书已被添加到书架: %(sname)s" -#: cps/web.py:2127 +#: cps/web.py:2164 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "此书已从书架 %(sname)s 中删除" -#: cps/web.py:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "已存在书架 '%(title)s'。" -#: cps/web.py:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "书架 %(title)s 已被创建" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "发生错误" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "创建书架" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "书架 %(title)s 已被修改" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "编辑书架" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "成功删除书架 %(name)s" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "书架: '%(name)s'" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "打开书架出错。书架不存在或不可访问" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "修改书架 '%(name)s' 顺序" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "找到已使用此邮箱的账号。" -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的资料" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "资料已更新" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "管理页" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "Calibre-web配置已更新" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "基本配置" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "DB位置无效,请输入正确路径" -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "添加新用户" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "用户 '%(user)s' 已被创建" -#: cps/web.py:2565 +#: cps/web.py:2606 msgid "Found an existing account for this email address or nickname." msgstr "已存在使用此邮箱或昵称的账号。" -#: cps/web.py:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "邮箱设置已更新" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "测试邮件已成功发送到 %(kindlemail)s" -#: cps/web.py:2597 +#: cps/web.py:2638 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "发送测试邮件时发生错误: %(res)s" -#: cps/web.py:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "E-Mail 设置已更新" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "编辑邮箱设置" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户 '%(nick)s' 已被删除" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "用户 '%(nick)s' 已被更新" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "发生未知错误。" -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "打开电子书出错。文件不存在或不可访问" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "编辑元数据" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "不能上传后缀为 \"%s\" 的文件到此服务器" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "未知" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "要上传的文件必须有一个后缀" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "创建路径 %s 失败(权限拒绝)。" -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "存储文件 %s 失败(权限拒绝)。" -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "删除文件 %s 失败(权限拒绝)。" @@ -600,7 +600,7 @@ msgstr "确定" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "后退" @@ -646,7 +646,7 @@ msgstr "简介" msgid "Tags" msgstr "标签" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "丛书" @@ -693,7 +693,7 @@ msgstr "获取元数据" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "提交" @@ -733,7 +733,7 @@ msgstr "点击封面加载元数据到表单" msgid "Loading..." msgstr "加载中..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "关闭" @@ -786,8 +786,8 @@ msgstr "" msgid "Server Port" msgstr "服务器端口" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "标题" @@ -843,31 +843,31 @@ msgstr "" msgid "Default Settings for new users" msgstr "新用户默认设置" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "管理用户" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "允许下载" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "允许上传" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "允许编辑" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "允许删除书籍" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "允许修改密码" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "允许编辑公共书架" @@ -940,7 +940,7 @@ msgstr "保存设置" msgid "Save settings and send Test E-Mail" msgstr "保存设置并发送测试邮件" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "下一个" @@ -957,7 +957,7 @@ msgstr "发现(随机书籍)" msgid "Start" msgstr "开始" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "热门书籍" @@ -965,7 +965,7 @@ msgstr "热门书籍" msgid "Popular publications from this catalog based on Downloads." msgstr "基于下载数的热门书籍" -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "最高评分书籍" @@ -985,7 +985,7 @@ msgstr "最新书籍" msgid "Show Random Books" msgstr "显示随机书籍" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "作者" @@ -1021,68 +1021,68 @@ msgstr "注册" msgid "Browse" msgstr "浏览" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "最近添加" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "已排序书籍" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "排序" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "最新" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "最旧" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "升序" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "降序" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "发现" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "分类" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "语言" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "公开书架" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "您的书架" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "创建书架" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "关于" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "" @@ -1257,46 +1257,54 @@ msgid "Show random books" msgstr "显示随机书籍" #: cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/user_edit.html:58 msgid "Show hot books" msgstr "显示热门书籍" -#: cps/templates/user_edit.html:54 +#: cps/templates/user_edit.html:62 msgid "Show best rated books" msgstr "显示最高评分书籍" -#: cps/templates/user_edit.html:58 +#: cps/templates/user_edit.html:66 msgid "Show language selection" msgstr "显示语言选择" -#: cps/templates/user_edit.html:62 +#: cps/templates/user_edit.html:70 msgid "Show series selection" msgstr "显示丛书选择" -#: cps/templates/user_edit.html:66 +#: cps/templates/user_edit.html:74 msgid "Show category selection" msgstr "显示分类选择" -#: cps/templates/user_edit.html:70 +#: cps/templates/user_edit.html:78 msgid "Show author selection" msgstr "显示作者选择" -#: cps/templates/user_edit.html:74 +#: cps/templates/user_edit.html:82 msgid "Show read and unread" msgstr "显示已读和未读" -#: cps/templates/user_edit.html:78 +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "在详情页显示随机书籍" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "删除此用户" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "最近下载" diff --git a/messages.pot b/messages.pot index 339aad6a..da8a4766 100644 --- a/messages.pot +++ b/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-11-01 16:05+0100\n" +"POT-Creation-Date: 2017-11-12 14:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1368 +#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 msgid "not installed" msgstr "" @@ -32,7 +32,7 @@ msgid "epub format not found for book id: %(book)d" msgstr "" #: cps/helper.py:93 -msgid "kindlegen failed, no excecution permissions" +msgid "kindlegen failed, no execution permissions" msgstr "" #: cps/helper.py:108 @@ -61,378 +61,378 @@ msgstr "" msgid "Could not find any formats suitable for sending by email" msgstr "" -#: cps/ub.py:567 +#: cps/ub.py:577 msgid "Guest" msgstr "" -#: cps/web.py:962 +#: cps/web.py:964 msgid "Requesting update package" msgstr "" -#: cps/web.py:963 +#: cps/web.py:965 msgid "Downloading update package" msgstr "" -#: cps/web.py:964 +#: cps/web.py:966 msgid "Unzipping update package" msgstr "" -#: cps/web.py:965 +#: cps/web.py:967 msgid "Files are replaced" msgstr "" -#: cps/web.py:966 +#: cps/web.py:968 msgid "Database connections are closed" msgstr "" -#: cps/web.py:967 +#: cps/web.py:969 msgid "Server is stopped" msgstr "" -#: cps/web.py:968 +#: cps/web.py:970 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/web.py:1042 +#: cps/web.py:1044 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1051 +#: cps/web.py:1054 msgid "Newest Books" msgstr "" -#: cps/web.py:1060 +#: cps/web.py:1065 msgid "Oldest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1077 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1078 +#: cps/web.py:1088 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1105 +#: cps/web.py:1116 msgid "Hot Books (most downloaded)" msgstr "" -#: cps/web.py:1115 +#: cps/web.py:1129 msgid "Best rated books" msgstr "" -#: cps/templates/index.xml:32 cps/web.py:1124 +#: cps/templates/index.xml:32 cps/web.py:1140 msgid "Random Books" msgstr "" -#: cps/web.py:1135 +#: cps/web.py:1154 msgid "Author list" msgstr "" -#: cps/web.py:1145 cps/web.py:1201 cps/web.py:1325 cps/web.py:1790 +#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" -#: cps/templates/index.xml:64 cps/web.py:1187 +#: cps/templates/index.xml:64 cps/web.py:1209 msgid "Series list" msgstr "" -#: cps/web.py:1199 +#: cps/web.py:1223 #, python-format msgid "Series: %(serie)s" msgstr "" -#: cps/web.py:1231 +#: cps/web.py:1256 msgid "Available languages" msgstr "" -#: cps/web.py:1246 +#: cps/web.py:1273 #, python-format msgid "Language: %(name)s" msgstr "" -#: cps/templates/index.xml:58 cps/web.py:1255 +#: cps/templates/index.xml:58 cps/web.py:1283 msgid "Category list" msgstr "" -#: cps/web.py:1267 +#: cps/web.py:1297 #, python-format msgid "Category: %(name)s" msgstr "" -#: cps/web.py:1379 +#: cps/web.py:1409 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1393 +#: cps/web.py:1423 msgid "Statistics" msgstr "" -#: cps/web.py:1557 +#: cps/web.py:1587 msgid "Server restarted, please reload page" msgstr "" -#: cps/web.py:1559 +#: cps/web.py:1589 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1575 +#: cps/web.py:1605 msgid "Update done" msgstr "" -#: cps/web.py:1650 cps/web.py:1663 +#: cps/web.py:1687 cps/web.py:1700 msgid "search" msgstr "" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:127 cps/web.py:1745 +#: cps/templates/layout.html:131 cps/web.py:1782 msgid "Read Books" msgstr "" #: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:128 cps/web.py:1748 +#: cps/templates/layout.html:132 cps/web.py:1785 msgid "Unread Books" msgstr "" -#: cps/web.py:1823 cps/web.py:1825 cps/web.py:1827 cps/web.py:1836 +#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 msgid "Read a Book" msgstr "" -#: cps/web.py:1888 cps/web.py:2514 +#: cps/web.py:1925 cps/web.py:2555 msgid "Please fill out all fields!" msgstr "" -#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 +#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 msgid "register" msgstr "" -#: cps/web.py:1904 +#: cps/web.py:1941 msgid "An unknown error occured. Please try again later." msgstr "" -#: cps/web.py:1909 +#: cps/web.py:1946 msgid "This username or email address is already in use." msgstr "" -#: cps/web.py:1928 cps/web.py:2024 +#: cps/web.py:1965 cps/web.py:2061 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1933 +#: cps/web.py:1970 msgid "Wrong Username or Password" msgstr "" -#: cps/web.py:1939 cps/web.py:1960 +#: cps/web.py:1976 cps/web.py:1997 msgid "login" msgstr "" -#: cps/web.py:1972 cps/web.py:2003 +#: cps/web.py:2009 cps/web.py:2040 msgid "Token not found" msgstr "" -#: cps/web.py:1980 cps/web.py:2011 +#: cps/web.py:2017 cps/web.py:2048 msgid "Token has expired" msgstr "" -#: cps/web.py:1988 +#: cps/web.py:2025 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2038 +#: cps/web.py:2075 msgid "Please configure the SMTP mail settings first..." msgstr "" -#: cps/web.py:2042 +#: cps/web.py:2079 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2046 +#: cps/web.py:2083 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:2048 cps/web.py:2599 +#: cps/web.py:2085 cps/web.py:2640 msgid "Please configure your kindle email address first..." msgstr "" -#: cps/web.py:2092 +#: cps/web.py:2129 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "" -#: cps/web.py:2127 +#: cps/web.py:2164 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "" -#: cps/web.py:2146 cps/web.py:2170 +#: cps/web.py:2183 cps/web.py:2207 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "" -#: cps/web.py:2151 +#: cps/web.py:2188 #, python-format msgid "Shelf %(title)s created" msgstr "" -#: cps/web.py:2153 cps/web.py:2181 +#: cps/web.py:2190 cps/web.py:2218 msgid "There was an error" msgstr "" -#: cps/web.py:2154 cps/web.py:2156 +#: cps/web.py:2191 cps/web.py:2193 msgid "create a shelf" msgstr "" -#: cps/web.py:2179 +#: cps/web.py:2216 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2182 cps/web.py:2184 +#: cps/web.py:2219 cps/web.py:2221 msgid "Edit a shelf" msgstr "" -#: cps/web.py:2205 +#: cps/web.py:2242 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "" -#: cps/web.py:2227 +#: cps/web.py:2264 #, python-format msgid "Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2230 +#: cps/web.py:2267 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2262 +#: cps/web.py:2299 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2327 +#: cps/web.py:2368 msgid "Found an existing account for this email address." msgstr "" -#: cps/web.py:2329 cps/web.py:2333 +#: cps/web.py:2370 cps/web.py:2374 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:2330 +#: cps/web.py:2371 msgid "Profile updated" msgstr "" -#: cps/web.py:2344 +#: cps/web.py:2385 msgid "Admin page" msgstr "" -#: cps/web.py:2468 +#: cps/web.py:2509 msgid "Calibre-web configuration updated" msgstr "" -#: cps/web.py:2475 cps/web.py:2481 cps/web.py:2495 +#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 msgid "Basic Configuration" msgstr "" -#: cps/web.py:2479 +#: cps/web.py:2520 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2516 cps/web.py:2569 +#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 msgid "Add new user" msgstr "" -#: cps/web.py:2561 +#: cps/web.py:2602 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/web.py:2565 +#: cps/web.py:2606 msgid "Found an existing account for this email address or nickname." msgstr "" -#: cps/web.py:2587 +#: cps/web.py:2628 msgid "Mail settings updated" msgstr "" -#: cps/web.py:2594 +#: cps/web.py:2635 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2597 +#: cps/web.py:2638 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2601 +#: cps/web.py:2642 msgid "E-Mail settings updated" msgstr "" -#: cps/web.py:2602 +#: cps/web.py:2643 msgid "Edit mail settings" msgstr "" -#: cps/web.py:2631 +#: cps/web.py:2672 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/web.py:2729 +#: cps/web.py:2780 #, python-format msgid "User '%(nick)s' updated" msgstr "" -#: cps/web.py:2732 +#: cps/web.py:2783 msgid "An unknown error occured." msgstr "" -#: cps/web.py:2735 +#: cps/web.py:2786 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/web.py:2751 +#: cps/web.py:2802 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2766 cps/web.py:2967 cps/web.py:3110 +#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 msgid "edit metadata" msgstr "" -#: cps/web.py:2776 cps/web.py:3004 +#: cps/web.py:2827 cps/web.py:3055 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2787 +#: cps/web.py:2838 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2807 cps/web.py:2811 +#: cps/web.py:2858 cps/web.py:2862 msgid "unknown" msgstr "" -#: cps/web.py:3010 +#: cps/web.py:3061 msgid "File to be uploaded must have an extension" msgstr "" -#: cps/web.py:3029 +#: cps/web.py:3080 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "" -#: cps/web.py:3034 +#: cps/web.py:3085 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "" -#: cps/web.py:3039 +#: cps/web.py:3090 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "" @@ -591,7 +591,7 @@ msgstr "" #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 #: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 -#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:131 +#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" msgstr "" @@ -637,7 +637,7 @@ msgstr "" msgid "Tags" msgstr "" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:137 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 #: cps/templates/search_form.html:37 msgid "Series" msgstr "" @@ -684,7 +684,7 @@ msgstr "" #: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 #: cps/templates/login.html:20 cps/templates/search_form.html:79 -#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:129 +#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" msgstr "" @@ -724,7 +724,7 @@ msgstr "" msgid "Loading..." msgstr "" -#: cps/templates/book_edit.html:196 cps/templates/layout.html:201 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 msgid "Close" msgstr "" @@ -777,8 +777,8 @@ msgstr "" msgid "Server Port" msgstr "" -#: cps/templates/config_edit.html:56 cps/templates/layout.html:116 -#: cps/templates/layout.html:117 cps/templates/shelf_edit.html:7 +#: cps/templates/config_edit.html:56 cps/templates/layout.html:119 +#: cps/templates/layout.html:120 cps/templates/shelf_edit.html:7 msgid "Title" msgstr "" @@ -834,31 +834,31 @@ msgstr "" msgid "Default Settings for new users" msgstr "" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:86 +#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:95 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:99 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:112 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:116 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "" @@ -931,7 +931,7 @@ msgstr "" msgid "Save settings and send Test E-Mail" msgstr "" -#: cps/templates/feed.xml:20 cps/templates/layout.html:185 +#: cps/templates/feed.xml:20 cps/templates/layout.html:189 msgid "Next" msgstr "" @@ -948,7 +948,7 @@ msgstr "" msgid "Start" msgstr "" -#: cps/templates/index.xml:14 cps/templates/layout.html:121 +#: cps/templates/index.xml:14 cps/templates/layout.html:125 msgid "Hot Books" msgstr "" @@ -956,7 +956,7 @@ msgstr "" msgid "Popular publications from this catalog based on Downloads." msgstr "" -#: cps/templates/index.xml:20 cps/templates/layout.html:124 +#: cps/templates/index.xml:20 cps/templates/layout.html:128 msgid "Best rated Books" msgstr "" @@ -976,7 +976,7 @@ msgstr "" msgid "Show Random Books" msgstr "" -#: cps/templates/index.xml:52 cps/templates/layout.html:140 +#: cps/templates/index.xml:52 cps/templates/layout.html:144 msgid "Authors" msgstr "" @@ -1012,68 +1012,68 @@ msgstr "" msgid "Browse" msgstr "" -#: cps/templates/layout.html:107 +#: cps/templates/layout.html:108 msgid "Recently Added" msgstr "" -#: cps/templates/layout.html:110 +#: cps/templates/layout.html:113 msgid "Sorted Books" msgstr "" -#: cps/templates/layout.html:114 cps/templates/layout.html:115 -#: cps/templates/layout.html:116 cps/templates/layout.html:117 +#: cps/templates/layout.html:117 cps/templates/layout.html:118 +#: cps/templates/layout.html:119 cps/templates/layout.html:120 msgid "Sort By" msgstr "" -#: cps/templates/layout.html:114 +#: cps/templates/layout.html:117 msgid "Newest" msgstr "" -#: cps/templates/layout.html:115 +#: cps/templates/layout.html:118 msgid "Oldest" msgstr "" -#: cps/templates/layout.html:116 +#: cps/templates/layout.html:119 msgid "Ascending" msgstr "" -#: cps/templates/layout.html:117 +#: cps/templates/layout.html:120 msgid "Descending" msgstr "" -#: cps/templates/layout.html:131 +#: cps/templates/layout.html:135 msgid "Discover" msgstr "" -#: cps/templates/layout.html:134 +#: cps/templates/layout.html:138 msgid "Categories" msgstr "" -#: cps/templates/layout.html:143 cps/templates/search_form.html:58 +#: cps/templates/layout.html:147 cps/templates/search_form.html:58 msgid "Languages" msgstr "" -#: cps/templates/layout.html:146 +#: cps/templates/layout.html:150 msgid "Public Shelves" msgstr "" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:154 msgid "Your Shelves" msgstr "" -#: cps/templates/layout.html:155 +#: cps/templates/layout.html:159 msgid "Create a Shelf" msgstr "" -#: cps/templates/layout.html:156 cps/templates/stats.html:3 +#: cps/templates/layout.html:160 cps/templates/stats.html:3 msgid "About" msgstr "" -#: cps/templates/layout.html:170 +#: cps/templates/layout.html:174 msgid "Previous" msgstr "" -#: cps/templates/layout.html:197 +#: cps/templates/layout.html:201 msgid "Book Details" msgstr "" @@ -1248,46 +1248,54 @@ msgid "Show random books" msgstr "" #: cps/templates/user_edit.html:50 -msgid "Show hot books" +msgid "Show recent books" msgstr "" #: cps/templates/user_edit.html:54 -msgid "Show best rated books" +msgid "Show sorted books" msgstr "" #: cps/templates/user_edit.html:58 -msgid "Show language selection" +msgid "Show hot books" msgstr "" #: cps/templates/user_edit.html:62 -msgid "Show series selection" +msgid "Show best rated books" msgstr "" #: cps/templates/user_edit.html:66 -msgid "Show category selection" +msgid "Show language selection" msgstr "" #: cps/templates/user_edit.html:70 -msgid "Show author selection" +msgid "Show series selection" msgstr "" #: cps/templates/user_edit.html:74 -msgid "Show read and unread" +msgid "Show category selection" msgstr "" #: cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "" + +#: cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "" + +#: cps/templates/user_edit.html:86 msgid "Show random books in detail view" msgstr "" -#: cps/templates/user_edit.html:90 +#: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" -#: cps/templates/user_edit.html:123 +#: cps/templates/user_edit.html:131 msgid "Delete this user" msgstr "" -#: cps/templates/user_edit.html:138 +#: cps/templates/user_edit.html:146 msgid "Recent Downloads" msgstr "" From ad1619479875df53c54916d2b34a0f229d8904b8 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 12 Nov 2017 18:08:13 +0100 Subject: [PATCH 013/180] Error on deleting non existing book fixed (#382) --- cps/web.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cps/web.py b/cps/web.py index 1f4a5136..04540135 100755 --- a/cps/web.py +++ b/cps/web.py @@ -1470,8 +1470,8 @@ def delete_book(book_id): db.session.query(db.Books).filter(db.Books.id == book_id).delete() db.session.commit() else: - # book not found - app.logger.info('Book with id "'+book_id+'" could not be deleted') + # book not foundß + app.logger.info('Book with id "'+str(book_id)+'" could not be deleted') return redirect(url_for('index')) @app.route("/gdrive/authenticate") From b8d45b664a09b1d61e19eefd94bd3a1a1f7cfedb Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 12 Nov 2017 18:48:44 +0100 Subject: [PATCH 014/180] Typeahead working again Fix for replacing characters in filenames --- cps/helper.py | 2 +- cps/static/js/edit_books.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index d7cb3a90..52e96b6c 100755 --- a/cps/helper.py +++ b/cps/helper.py @@ -280,7 +280,7 @@ def get_valid_filename(value, replace_whitespace=True): value = unicode(re_slugify.sub('', value).strip()) if replace_whitespace: #*+:\"/<>? are replaced by _ - value = re.sub('[\*\+:\\\"/<>\?]+', u'_', value, flags=re.U) + value = re.sub(r'[\*\+:\\\"/<>\?]+', u'_', value, flags=re.U) value = value[:128] if not value: diff --git a/cps/static/js/edit_books.js b/cps/static/js/edit_books.js index 3932e3b6..96fcc848 100644 --- a/cps/static/js/edit_books.js +++ b/cps/static/js/edit_books.js @@ -46,8 +46,7 @@ function prefixedSource(prefix, query, cb, bhAdapter) { function getPath() { var jsFileLocation = $("script[src*=edit_books]").attr("src"); // the js file path - jsFileLocation = jsFileLocation.replace("/static/js/edit_books.js", ""); // the js folder path - return jsFileLocation; + return jsFileLocation.substr(0,jsFileLocation.search("/static/js/edit_books.js")); // the js folder path } var authors = new Bloodhound({ From 01d0083fe65374108729d0fdea92703574eff831 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 12 Nov 2017 19:08:20 +0100 Subject: [PATCH 015/180] Fix for #376 --- cps/web.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cps/web.py b/cps/web.py index 04540135..4ac10987 100755 --- a/cps/web.py +++ b/cps/web.py @@ -2141,8 +2141,10 @@ def remove_from_shelf(shelf_id, book_id): return redirect(url_for('index')) return "Invalid shelf specified", 400 - if not shelf.is_public and not shelf.user_id == int(current_user.id) \ - or (shelf.is_public and current_user.role_edit_shelfs()): + # if shelf is public and use is allowed to edit shelfs, or if shelf is private and user is owner + # allow editing shelfs + if (not shelf.is_public and not shelf.user_id == int(current_user.id)) \ + or not (shelf.is_public and current_user.role_edit_shelfs()): if not request.is_xhr: app.logger.info("Sorry you are not allowed to remove a book from this shelf: %s" % shelf.name) return redirect(url_for('index')) From f045c16c4e18ed7d07a81e5dc4a501f411c284ee Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Mon, 13 Nov 2017 21:33:36 +0100 Subject: [PATCH 016/180] Fix #386 --- cps/web.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/web.py b/cps/web.py index 4ac10987..d6b983f7 100755 --- a/cps/web.py +++ b/cps/web.py @@ -925,7 +925,7 @@ def get_tags_json(): if request.method == "GET": query = request.args.get('q') # entries = db.session.execute("select name from tags where name like '%" + query + "%'") - entries = db.session.query(db.Tags).filter(db.Tags.iname.ilike("%" + query + "%")).all() + entries = db.session.query(db.Tags).filter(db.Tags.name.ilike("%" + query + "%")).all() # for x in entries: # alfa = dict(name=x.name) json_dumps = json.dumps([dict(name=r.name) for r in entries]) From 211c3b16dd54ac6d0a3b34573f83b3040682db74 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Wed, 15 Nov 2017 07:40:17 +0100 Subject: [PATCH 017/180] Fix fror #388 --- cps/web.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cps/web.py b/cps/web.py index d6b983f7..c5d20e04 100755 --- a/cps/web.py +++ b/cps/web.py @@ -1048,7 +1048,7 @@ def index(page): @app.route('/books/newest/page/') @login_required_if_no_ano def newest_books(page): - if current_cuser.show_sorted(): + if current_user.show_sorted(): entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.pubdate.desc()) return render_title_template('index.html', random=random, entries=entries, pagination=pagination, title=_(u"Newest Books")) @@ -1059,7 +1059,7 @@ def newest_books(page): @app.route('/books/oldest/page/') @login_required_if_no_ano def oldest_books(page): - if current_cuser.show_sorted(): + if current_user.show_sorted(): entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.pubdate) return render_title_template('index.html', random=random, entries=entries, pagination=pagination, title=_(u"Oldest Books")) @@ -1071,7 +1071,7 @@ def oldest_books(page): @app.route('/books/a-z/page/') @login_required_if_no_ano def titles_ascending(page): - if current_cuser.show_sorted(): + if current_user.show_sorted(): entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.sort) return render_title_template('index.html', random=random, entries=entries, pagination=pagination, title=_(u"Books (A-Z)")) From 6e714f3f16467632b45299f1b254b8e49418eb9a Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Fri, 17 Nov 2017 18:29:29 +0100 Subject: [PATCH 018/180] Fix #391 --- cps/templates/index.xml | 2 +- cps/templates/layout.html | 6 ++++-- cps/web.py | 21 ++++++++------------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/cps/templates/index.xml b/cps/templates/index.xml index 99358941..6a73b10e 100644 --- a/cps/templates/index.xml +++ b/cps/templates/index.xml @@ -41,13 +41,13 @@ {{url_for('feed_read_books')}} {{_('Read Books')}} +{% endif %} {{_('Unread Books')}} {{url_for('feed_unread_books')}} {{_('Unread Books')}} -{% endif %} {{_('Authors')}} diff --git a/cps/templates/layout.html b/cps/templates/layout.html index ffb9b28b..ff8c71c6 100644 --- a/cps/templates/layout.html +++ b/cps/templates/layout.html @@ -128,8 +128,10 @@ {%endif%} {% if g.user.show_read_and_unread() %} -
  • {{_('Read Books')}}
  • -
  • {{_('Unread Books')}}
  • + {% if not g.user.is_anonymous %} +
  • {{_('Read Books')}}
  • + {%endif%} +
  • {{_('Unread Books')}}
  • {%endif%} {% if g.user.show_random_books() %} diff --git a/cps/web.py b/cps/web.py index c5d20e04..8f6c9046 100755 --- a/cps/web.py +++ b/cps/web.py @@ -1757,20 +1757,15 @@ def feed_get_cover(book_id): def render_read_books(page, are_read, as_xml=False): - if not current_user.is_anonymous: - readBooks = ub.session.query(ub.ReadBook).filter(ub.ReadBook.user_id == int(current_user.id)).filter(ub.ReadBook.is_read == True).all() - readBookIds = [x.book_id for x in readBooks] - if are_read: - db_filter = db.Books.id.in_(readBookIds) - else: - db_filter = ~db.Books.id.in_(readBookIds) - - entries, random, pagination = fill_indexpage(page, db.Books, - db_filter, db.Books.timestamp.desc()) + readBooks = ub.session.query(ub.ReadBook).filter(ub.ReadBook.user_id == int(current_user.id)).filter(ub.ReadBook.is_read == True).all() + readBookIds = [x.book_id for x in readBooks] + if are_read: + db_filter = db.Books.id.in_(readBookIds) else: - entries = [] - random = False - pagination = Pagination(page, 1, 0) + db_filter = ~db.Books.id.in_(readBookIds) + + entries, random, pagination = fill_indexpage(page, db.Books, + db_filter, db.Books.timestamp.desc()) if as_xml: xml = render_title_template('feed.xml', entries=entries, pagination=pagination) From 8c573ff6d829221f00d2204642803d6a4421e8b2 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sat, 18 Nov 2017 10:34:21 +0100 Subject: [PATCH 019/180] Unrar/tar and unzip on server side --- cps/static/js/archive.js | 364 -------------- cps/static/js/io.js | 484 ------------------ cps/static/js/kthoom.js | 215 ++++---- cps/static/js/unrar.js | 891 --------------------------------- cps/static/js/untar.js | 168 ------- cps/static/js/unzip.js | 621 ----------------------- cps/templates/config_edit.html | 9 +- cps/templates/readcbr.html | 4 +- cps/ub.py | 9 + cps/web.py | 225 ++++++--- optional-requirements.txt | 1 + 11 files changed, 267 insertions(+), 2724 deletions(-) delete mode 100644 cps/static/js/archive.js delete mode 100644 cps/static/js/io.js delete mode 100644 cps/static/js/unrar.js delete mode 100644 cps/static/js/untar.js delete mode 100644 cps/static/js/unzip.js diff --git a/cps/static/js/archive.js b/cps/static/js/archive.js deleted file mode 100644 index 28aae182..00000000 --- a/cps/static/js/archive.js +++ /dev/null @@ -1,364 +0,0 @@ -/** - * archive.js - * - * Provides base functionality for unarchiving. - * - * Licensed under the MIT License - * - * Copyright(c) 2011 Google Inc. - */ - -/* global bitjs */ - -var bitjs = bitjs || {}; -bitjs.archive = bitjs.archive || {}; - -(function() { - - // =========================================================================== - // Stolen from Closure because it's the best way to do Java-like inheritance. - bitjs.base = function(me, optMethodName, varArgs) { - var caller = arguments.callee.caller; - if (caller.superClass_) { - // This is a constructor. Call the superclass constructor. - return caller.superClass_.constructor.apply( - me, Array.prototype.slice.call(arguments, 1)); - } - - var args = Array.prototype.slice.call(arguments, 2); - var foundCaller = false; - for (var ctor = me.constructor; - ctor; ctor = ctor.superClass_ && ctor.superClass_.constructor) { - if (ctor.prototype[optMethodName] === caller) { - foundCaller = true; - } else if (foundCaller) { - return ctor.prototype[optMethodName].apply(me, args); - } - } - - // If we did not find the caller in the prototype chain, - // then one of two things happened: - // 1) The caller is an instance method. - // 2) This method was not called by the right caller. - if (me[optMethodName] === caller) { - return me.constructor.prototype[optMethodName].apply(me, args); - } else { - throw Error( - "goog.base called from a method of one name " + - "to a method of a different name"); - } - }; - bitjs.inherits = function(childCtor, parentCtor) { - /** @constructor */ - function TempCtor() {} - TempCtor.prototype = parentCtor.prototype; - childCtor.superClass_ = parentCtor.prototype; - childCtor.prototype = new TempCtor(); - childCtor.prototype.constructor = childCtor; - }; - // =========================================================================== - - /** - * An unarchive event. - * - * @param {string} type The event type. - * @constructor - */ - bitjs.archive.UnarchiveEvent = function(type) { - /** - * The event type. - * - * @type {string} - */ - this.type = type; - }; - - /** - * The UnarchiveEvent types. - */ - bitjs.archive.UnarchiveEvent.Type = { - START: "start", - PROGRESS: "progress", - EXTRACT: "extract", - FINISH: "finish", - INFO: "info", - ERROR: "error" - }; - - /** - * Useful for passing info up to the client (for debugging). - * - * @param {string} msg The info message. - */ - bitjs.archive.UnarchiveInfoEvent = function(msg) { - bitjs.base(this, bitjs.archive.UnarchiveEvent.Type.INFO); - - /** - * The information message. - * - * @type {string} - */ - this.msg = msg; - }; - bitjs.inherits(bitjs.archive.UnarchiveInfoEvent, bitjs.archive.UnarchiveEvent); - - /** - * An unrecoverable error has occured. - * - * @param {string} msg The error message. - */ - bitjs.archive.UnarchiveErrorEvent = function(msg) { - bitjs.base(this, bitjs.archive.UnarchiveEvent.Type.ERROR); - - /** - * The information message. - * - * @type {string} - */ - this.msg = msg; - }; - bitjs.inherits(bitjs.archive.UnarchiveErrorEvent, bitjs.archive.UnarchiveEvent); - - /** - * Start event. - * - * @param {string} msg The info message. - */ - bitjs.archive.UnarchiveStartEvent = function() { - bitjs.base(this, bitjs.archive.UnarchiveEvent.Type.START); - }; - bitjs.inherits(bitjs.archive.UnarchiveStartEvent, bitjs.archive.UnarchiveEvent); - - /** - * Finish event. - * - * @param {string} msg The info message. - */ - bitjs.archive.UnarchiveFinishEvent = function() { - bitjs.base(this, bitjs.archive.UnarchiveEvent.Type.FINISH); - }; - bitjs.inherits(bitjs.archive.UnarchiveFinishEvent, bitjs.archive.UnarchiveEvent); - - /** - * Progress event. - */ - bitjs.archive.UnarchiveProgressEvent = function( - currentFilename, - currentFileNumber, - currentBytesUnarchivedInFile, - currentBytesUnarchived, - totalUncompressedBytesInArchive, - totalFilesInArchive) - { - bitjs.base(this, bitjs.archive.UnarchiveEvent.Type.PROGRESS); - - this.currentFilename = currentFilename; - this.currentFileNumber = currentFileNumber; - this.currentBytesUnarchivedInFile = currentBytesUnarchivedInFile; - this.totalFilesInArchive = totalFilesInArchive; - this.currentBytesUnarchived = currentBytesUnarchived; - this.totalUncompressedBytesInArchive = totalUncompressedBytesInArchive; - }; - bitjs.inherits(bitjs.archive.UnarchiveProgressEvent, bitjs.archive.UnarchiveEvent); - - /** - * All extracted files returned by an Unarchiver will implement - * the following interface: - * - * interface UnarchivedFile { - * string filename - * TypedArray fileData - * } - * - */ - - /** - * Extract event. - */ - bitjs.archive.UnarchiveExtractEvent = function(unarchivedFile) { - bitjs.base(this, bitjs.archive.UnarchiveEvent.Type.EXTRACT); - - /** - * @type {UnarchivedFile} - */ - this.unarchivedFile = unarchivedFile; - }; - bitjs.inherits(bitjs.archive.UnarchiveExtractEvent, bitjs.archive.UnarchiveEvent); - - - /** - * Base class for all Unarchivers. - * - * @param {ArrayBuffer} arrayBuffer The Array Buffer. - * @param {string} optPathToBitJS Optional string for where the BitJS files are located. - * @constructor - */ - bitjs.archive.Unarchiver = function(arrayBuffer, optPathToBitJS) { - /** - * The ArrayBuffer object. - * @type {ArrayBuffer} - * @protected - */ - this.ab = arrayBuffer; - - /** - * The path to the BitJS files. - * @type {string} - * @private - */ - this.pathToBitJS_ = optPathToBitJS || ""; - - /** - * A map from event type to an array of listeners. - * @type {Map.} - */ - this.listeners_ = {}; - for (var type in bitjs.archive.UnarchiveEvent.Type) { - this.listeners_[bitjs.archive.UnarchiveEvent.Type[type]] = []; - } - }; - - /** - * Private web worker initialized during start(). - * @type {Worker} - * @private - */ - bitjs.archive.Unarchiver.prototype.worker_ = null; - - /** - * This method must be overridden by the subclass to return the script filename. - * @return {string} The script filename. - * @protected. - */ - bitjs.archive.Unarchiver.prototype.getScriptFileName = function() { - throw "Subclasses of AbstractUnarchiver must overload getScriptFileName()"; - }; - - /** - * Adds an event listener for UnarchiveEvents. - * - * @param {string} Event type. - * @param {function} An event handler function. - */ - bitjs.archive.Unarchiver.prototype.addEventListener = function(type, listener) { - if (type in this.listeners_) { - if (this.listeners_[type].indexOf(listener) === -1) { - this.listeners_[type].push(listener); - } - } - }; - - /** - * Removes an event listener. - * - * @param {string} Event type. - * @param {EventListener|function} An event listener or handler function. - */ - bitjs.archive.Unarchiver.prototype.removeEventListener = function(type, listener) { - if (type in this.listeners_) { - var index = this.listeners_[type].indexOf(listener); - if (index !== -1) { - this.listeners_[type].splice(index, 1); - } - } - }; - - /** - * Receive an event and pass it to the listener functions. - * - * @param {bitjs.archive.UnarchiveEvent} e - * @private - */ - bitjs.archive.Unarchiver.prototype.handleWorkerEvent_ = function(e) { - if ((e instanceof bitjs.archive.UnarchiveEvent || e.type) && - this.listeners_[e.type] instanceof Array) { - this.listeners_[e.type].forEach(function (listener) { - listener(e); - }); - if (e.type === bitjs.archive.UnarchiveEvent.Type.FINISH) { - this.worker_.terminate(); - } - } else { - console.log(e); - } - }; - - /** - * Starts the unarchive in a separate Web Worker thread and returns immediately. - */ - bitjs.archive.Unarchiver.prototype.start = function() { - var me = this; - var scriptFileName = this.pathToBitJS_ + this.getScriptFileName(); - if (scriptFileName) { - this.worker_ = new Worker(scriptFileName); - - this.worker_.onerror = function(e) { - console.log("Worker error: message = " + e.message); - throw e; - }; - - this.worker_.onmessage = function(e) { - if (typeof e.data === "string") { - // Just log any strings the workers pump our way. - console.log(e.data); - } else { - // Assume that it is an UnarchiveEvent. Some browsers preserve the 'type' - // so that instanceof UnarchiveEvent returns true, but others do not. - me.handleWorkerEvent_(e.data); - } - }; - - this.worker_.postMessage({file: this.ab}); - } - }; - - /** - * Terminates the Web Worker for this Unarchiver and returns immediately. - */ - bitjs.archive.Unarchiver.prototype.stop = function() { - if (this.worker_) { - this.worker_.terminate(); - } - }; - - - /** - * Unzipper - * @extends {bitjs.archive.Unarchiver} - * @constructor - */ - bitjs.archive.Unzipper = function(arrayBuffer, optPathToBitJS) { - bitjs.base(this, arrayBuffer, optPathToBitJS); - }; - bitjs.inherits(bitjs.archive.Unzipper, bitjs.archive.Unarchiver); - bitjs.archive.Unzipper.prototype.getScriptFileName = function() { - return "unzip.js"; - }; - - /** - * Unrarrer - * @extends {bitjs.archive.Unarchiver} - * @constructor - */ - bitjs.archive.Unrarrer = function(arrayBuffer, optPathToBitJS) { - bitjs.base(this, arrayBuffer, optPathToBitJS); - }; - bitjs.inherits(bitjs.archive.Unrarrer, bitjs.archive.Unarchiver); - bitjs.archive.Unrarrer.prototype.getScriptFileName = function() { - return "unrar.js"; - }; - - /** - * Untarrer - * @extends {bitjs.archive.Unarchiver} - * @constructor - */ - bitjs.archive.Untarrer = function(arrayBuffer, optPathToBitJS) { - bitjs.base(this, arrayBuffer, optPathToBitJS); - }; - bitjs.inherits(bitjs.archive.Untarrer, bitjs.archive.Unarchiver); - bitjs.archive.Untarrer.prototype.getScriptFileName = function() { - return "untar.js"; - }; - -})(); diff --git a/cps/static/js/io.js b/cps/static/js/io.js deleted file mode 100644 index 6cc4d81c..00000000 --- a/cps/static/js/io.js +++ /dev/null @@ -1,484 +0,0 @@ -/* - * io.js - * - * Provides readers for bit/byte streams (reading) and a byte buffer (writing). - * - * Licensed under the MIT License - * - * Copyright(c) 2011 Google Inc. - * Copyright(c) 2011 antimatter15 - */ - -/* global bitjs, Uint8Array */ - -var bitjs = bitjs || {}; -bitjs.io = bitjs.io || {}; - -(function() { - - // mask for getting the Nth bit (zero-based) - bitjs.BIT = [ 0x01, 0x02, 0x04, 0x08, - 0x10, 0x20, 0x40, 0x80, - 0x100, 0x200, 0x400, 0x800, - 0x1000, 0x2000, 0x4000, 0x8000]; - - // mask for getting N number of bits (0-8) - var BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF ]; - - - /** - * This bit stream peeks and consumes bits out of a binary stream. - * - * @param {ArrayBuffer} ab An ArrayBuffer object or a Uint8Array. - * @param {boolean} rtl Whether the stream reads bits from the byte starting - * from bit 7 to 0 (true) or bit 0 to 7 (false). - * @param {Number} optOffset The offset into the ArrayBuffer - * @param {Number} optLength The length of this BitStream - */ - bitjs.io.BitStream = function(ab, rtl, optOffset, optLength) { - if (!ab || !ab.toString || ab.toString() !== "[object ArrayBuffer]") { - throw "Error! BitArray constructed with an invalid ArrayBuffer object"; - } - - var offset = optOffset || 0; - var length = optLength || ab.byteLength; - this.bytes = new Uint8Array(ab, offset, length); - this.bytePtr = 0; // tracks which byte we are on - this.bitPtr = 0; // tracks which bit we are on (can have values 0 through 7) - this.peekBits = rtl ? this.peekBitsRtl : this.peekBitsLtr; - }; - - - /** - * byte0 byte1 byte2 byte3 - * 7......0 | 7......0 | 7......0 | 7......0 - * - * The bit pointer starts at bit0 of byte0 and moves left until it reaches - * bit7 of byte0, then jumps to bit0 of byte1, etc. - * @param {number} n The number of bits to peek. - * @param {boolean=} movePointers Whether to move the pointer, defaults false. - * @return {number} The peeked bits, as an unsigned number. - */ - bitjs.io.BitStream.prototype.peekBitsLtr = function(n, movePointers) { - if (n <= 0 || typeof n !== typeof 1) { - return 0; - } - - var movePointers = movePointers || false; - var bytePtr = this.bytePtr; - var bitPtr = this.bitPtr; - var result = 0; - var bitsIn = 0; - var bytes = this.bytes; - - // keep going until we have no more bits left to peek at - // TODO: Consider putting all bits from bytes we will need into a variable and then - // shifting/masking it to just extract the bits we want. - // This could be considerably faster when reading more than 3 or 4 bits at a time. - while (n > 0) { - if (bytePtr >= bytes.length) { - throw "Error! Overflowed the bit stream! n=" + n + ", bytePtr=" + bytePtr + ", bytes.length=" + - bytes.length + ", bitPtr=" + bitPtr; - } - - var numBitsLeftInThisByte = (8 - bitPtr); - var mask; - if (n >= numBitsLeftInThisByte) { - mask = (BITMASK[numBitsLeftInThisByte] << bitPtr); - result |= (((bytes[bytePtr] & mask) >> bitPtr) << bitsIn); - - bytePtr++; - bitPtr = 0; - bitsIn += numBitsLeftInThisByte; - n -= numBitsLeftInThisByte; - } else { - mask = (BITMASK[n] << bitPtr); - result |= (((bytes[bytePtr] & mask) >> bitPtr) << bitsIn); - - bitPtr += n; - bitsIn += n; - n = 0; - } - } - - if (movePointers) { - this.bitPtr = bitPtr; - this.bytePtr = bytePtr; - } - - return result; - }; - - - /** - * byte0 byte1 byte2 byte3 - * 7......0 | 7......0 | 7......0 | 7......0 - * - * The bit pointer starts at bit7 of byte0 and moves right until it reaches - * bit0 of byte0, then goes to bit7 of byte1, etc. - * @param {number} n The number of bits to peek. - * @param {boolean=} movePointers Whether to move the pointer, defaults false. - * @return {number} The peeked bits, as an unsigned number. - */ - bitjs.io.BitStream.prototype.peekBitsRtl = function(n, movePointers) { - if (n <= 0 || typeof n != typeof 1) { - return 0; - } - - var movePointers = movePointers || false; - var bytePtr = this.bytePtr; - var bitPtr = this.bitPtr; - var result = 0; - var bytes = this.bytes; - - // keep going until we have no more bits left to peek at - // TODO: Consider putting all bits from bytes we will need into a variable and then - // shifting/masking it to just extract the bits we want. - // This could be considerably faster when reading more than 3 or 4 bits at a time. - while (n > 0) { - - if (bytePtr >= bytes.length) { - throw "Error! Overflowed the bit stream! n=" + n + ", bytePtr=" + bytePtr + ", bytes.length=" + - bytes.length + ", bitPtr=" + bitPtr; - // return -1; - } - - var numBitsLeftInThisByte = (8 - bitPtr); - if (n >= numBitsLeftInThisByte) { - result <<= numBitsLeftInThisByte; - result |= (BITMASK[numBitsLeftInThisByte] & bytes[bytePtr]); - bytePtr++; - bitPtr = 0; - n -= numBitsLeftInThisByte; - } - else { - result <<= n; - result |= ((bytes[bytePtr] & (BITMASK[n] << (8 - n - bitPtr))) >> (8 - n - bitPtr)); - - bitPtr += n; - n = 0; - } - } - - if (movePointers) { - this.bitPtr = bitPtr; - this.bytePtr = bytePtr; - } - - return result; - }; - - - /** - * Some voodoo magic. - */ - bitjs.io.BitStream.prototype.getBits = function() { - return (((((this.bytes[this.bytePtr] & 0xff) << 16) + - ((this.bytes[this.bytePtr + 1] & 0xff) << 8) + - ((this.bytes[this.bytePtr + 2] & 0xff))) >>> (8 - this.bitPtr)) & 0xffff); - }; - - - /** - * Reads n bits out of the stream, consuming them (moving the bit pointer). - * @param {number} n The number of bits to read. - * @return {number} The read bits, as an unsigned number. - */ - bitjs.io.BitStream.prototype.readBits = function(n) { - return this.peekBits(n, true); - }; - - - /** - * This returns n bytes as a sub-array, advancing the pointer if movePointers - * is true. Only use this for uncompressed blocks as this throws away remaining - * bits in the current byte. - * @param {number} n The number of bytes to peek. - * @param {boolean=} movePointers Whether to move the pointer, defaults false. - * @return {Uint8Array} The subarray. - */ - bitjs.io.BitStream.prototype.peekBytes = function(n, movePointers) { - if (n <= 0 || typeof n != typeof 1) { - return 0; - } - - // from http://tools.ietf.org/html/rfc1951#page-11 - // "Any bits of input up to the next byte boundary are ignored." - while (this.bitPtr !== 0) { - this.readBits(1); - } - - movePointers = movePointers || false; - var bytePtr = this.bytePtr; - // var bitPtr = this.bitPtr; - - var result = this.bytes.subarray(bytePtr, bytePtr + n); - - if (movePointers) { - this.bytePtr += n; - } - - return result; - }; - - - /** - * @param {number} n The number of bytes to read. - * @return {Uint8Array} The subarray. - */ - bitjs.io.BitStream.prototype.readBytes = function(n) { - return this.peekBytes(n, true); - }; - - - /** - * This object allows you to peek and consume bytes as numbers and strings - * out of an ArrayBuffer. In this buffer, everything must be byte-aligned. - * - * @param {ArrayBuffer} ab The ArrayBuffer object. - * @param {number=} optOffset The offset into the ArrayBuffer - * @param {number=} optLength The length of this BitStream - * @constructor - */ - bitjs.io.ByteStream = function(ab, optOffset, optLength) { - var offset = optOffset || 0; - var length = optLength || ab.byteLength; - this.bytes = new Uint8Array(ab, offset, length); - this.ptr = 0; - }; - - - /** - * Peeks at the next n bytes as an unsigned number but does not advance the - * pointer - * TODO: This apparently cannot read more than 4 bytes as a number? - * @param {number} n The number of bytes to peek at. - * @return {number} The n bytes interpreted as an unsigned number. - */ - bitjs.io.ByteStream.prototype.peekNumber = function(n) { - // TODO: return error if n would go past the end of the stream? - if (n <= 0 || typeof n !== typeof 1) { - return -1; - } - - var result = 0; - // read from last byte to first byte and roll them in - var curByte = this.ptr + n - 1; - while (curByte >= this.ptr) { - result <<= 8; - result |= this.bytes[curByte]; - --curByte; - } - return result; - }; - - - /** - * Returns the next n bytes as an unsigned number (or -1 on error) - * and advances the stream pointer n bytes. - * @param {number} n The number of bytes to read. - * @return {number} The n bytes interpreted as an unsigned number. - */ - bitjs.io.ByteStream.prototype.readNumber = function(n) { - var num = this.peekNumber( n ); - this.ptr += n; - return num; - }; - - - /** - * Returns the next n bytes as a signed number but does not advance the - * pointer. - * @param {number} n The number of bytes to read. - * @return {number} The bytes interpreted as a signed number. - */ - bitjs.io.ByteStream.prototype.peekSignedNumber = function(n) { - var num = this.peekNumber(n); - var HALF = Math.pow(2, (n * 8) - 1); - var FULL = HALF * 2; - - if (num >= HALF) num -= FULL; - - return num; - }; - - - /** - * Returns the next n bytes as a signed number and advances the stream pointer. - * @param {number} n The number of bytes to read. - * @return {number} The bytes interpreted as a signed number. - */ - bitjs.io.ByteStream.prototype.readSignedNumber = function(n) { - var num = this.peekSignedNumber(n); - this.ptr += n; - return num; - }; - - - /** - * This returns n bytes as a sub-array, advancing the pointer if movePointers - * is true. - * @param {number} n The number of bytes to read. - * @param {boolean} movePointers Whether to move the pointers. - * @return {Uint8Array} The subarray. - */ - bitjs.io.ByteStream.prototype.peekBytes = function(n, movePointers) { - if (n <= 0 || typeof n != typeof 1) { - return null; - } - - var result = this.bytes.subarray(this.ptr, this.ptr + n); - - if (movePointers) { - this.ptr += n; - } - - return result; - }; - - - /** - * Reads the next n bytes as a sub-array. - * @param {number} n The number of bytes to read. - * @return {Uint8Array} The subarray. - */ - bitjs.io.ByteStream.prototype.readBytes = function(n) { - return this.peekBytes(n, true); - }; - - - /** - * Peeks at the next n bytes as a string but does not advance the pointer. - * @param {number} n The number of bytes to peek at. - * @return {string} The next n bytes as a string. - */ - bitjs.io.ByteStream.prototype.peekString = function(n) { - if (n <= 0 || typeof n != typeof 1) { - return ""; - } - - var result = ""; - for (var p = this.ptr, end = this.ptr + n; p < end; ++p) { - result += String.fromCharCode(this.bytes[p]); - } - return result; - }; - - - /** - * Returns the next n bytes as an ASCII string and advances the stream pointer - * n bytes. - * @param {number} n The number of bytes to read. - * @return {string} The next n bytes as a string. - */ - bitjs.io.ByteStream.prototype.readString = function(n) { - var strToReturn = this.peekString(n); - this.ptr += n; - return strToReturn; - }; - - - /** - * A write-only Byte buffer which uses a Uint8 Typed Array as a backing store. - * @param {number} numBytes The number of bytes to allocate. - * @constructor - */ - bitjs.io.ByteBuffer = function(numBytes) { - if (typeof numBytes !== typeof 1 || numBytes <= 0) { - throw "Error! ByteBuffer initialized with '" + numBytes + "'"; - } - this.data = new Uint8Array(numBytes); - this.ptr = 0; - }; - - - /** - * @param {number} b The byte to insert. - */ - bitjs.io.ByteBuffer.prototype.insertByte = function(b) { - // TODO: throw if byte is invalid? - this.data[this.ptr++] = b; - }; - - - /** - * @param {Array.|Uint8Array|Int8Array} bytes The bytes to insert. - */ - bitjs.io.ByteBuffer.prototype.insertBytes = function(bytes) { - // TODO: throw if bytes is invalid? - this.data.set(bytes, this.ptr); - this.ptr += bytes.length; - }; - - - /** - * Writes an unsigned number into the next n bytes. If the number is too large - * to fit into n bytes or is negative, an error is thrown. - * @param {number} num The unsigned number to write. - * @param {number} numBytes The number of bytes to write the number into. - */ - bitjs.io.ByteBuffer.prototype.writeNumber = function(num, numBytes) { - if (numBytes < 1) { - throw "Trying to write into too few bytes: " + numBytes; - } - if (num < 0) { - throw "Trying to write a negative number (" + num + - ") as an unsigned number to an ArrayBuffer"; - } - if (num > (Math.pow(2, numBytes * 8) - 1)) { - throw "Trying to write " + num + " into only " + numBytes + " bytes"; - } - - // Roll 8-bits at a time into an array of bytes. - var bytes = []; - while (numBytes-- > 0) { - var eightBits = num & 255; - bytes.push(eightBits); - num >>= 8; - } - - this.insertBytes(bytes); - }; - - - /** - * Writes a signed number into the next n bytes. If the number is too large - * to fit into n bytes, an error is thrown. - * @param {number} num The signed number to write. - * @param {number} numBytes The number of bytes to write the number into. - */ - bitjs.io.ByteBuffer.prototype.writeSignedNumber = function(num, numBytes) { - if (numBytes < 1) { - throw "Trying to write into too few bytes: " + numBytes; - } - - var HALF = Math.pow(2, (numBytes * 8) - 1); - if (num >= HALF || num < -HALF) { - throw "Trying to write " + num + " into only " + numBytes + " bytes"; - } - - // Roll 8-bits at a time into an array of bytes. - var bytes = []; - while (numBytes-- > 0) { - var eightBits = num & 255; - bytes.push(eightBits); - num >>= 8; - } - - this.insertBytes(bytes); - }; - - - /** - * @param {string} str The ASCII string to write. - */ - bitjs.io.ByteBuffer.prototype.writeASCIIString = function(str) { - for (var i = 0; i < str.length; ++i) { - var curByte = str.charCodeAt(i); - if (curByte < 0 || curByte > 255) { - throw "Trying to write a non-ASCII string!"; - } - this.insertByte(curByte); - } - }; -})(); diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 17ee8097..0dd41322 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -17,6 +17,8 @@ */ /* global bitjs */ +var start=0; + if (window.opera) { window.console.log = function(str) { opera.postError(str); @@ -127,11 +129,11 @@ var createURLFromArray = function(array, mimeType) { // This would save 25% on memory since base64-encoded strings are 4/3 the size of the binary kthoom.ImageFile = function(file) { this.filename = file.filename; - var fileExtension = file.filename.split(".").pop().toLowerCase(); + /*var fileExtension = file.filename.split(".").pop().toLowerCase(); var mimeType = fileExtension === "png" ? "image/png" : (fileExtension === "jpg" || fileExtension === "jpeg") ? "image/jpeg" : - fileExtension === "gif" ? "image/gif" : null; - this.dataURI = createURLFromArray(file.fileData, mimeType); + fileExtension === "gif" ? "image/gif" : null;*/ + this.dataURI = file.fileData; // createURLFromArray(file.fileData, mimeType); this.data = file; }; @@ -270,50 +272,22 @@ kthoom.setProgressMeter = function(pct, optLabel) { } function loadFromArrayBuffer(ab) { - var start = (new Date).getTime(); - var h = new Uint8Array(ab, 0, 10); - var pathToBitJS = "../../static/js/"; - if (h[0] === 0x52 && h[1] === 0x61 && h[2] === 0x72 && h[3] === 0x21) { //Rar! - unarchiver = new bitjs.archive.Unrarrer(ab, pathToBitJS); - } else if (h[0] === 80 && h[1] === 75) { //PK (Zip) - unarchiver = new bitjs.archive.Unzipper(ab, pathToBitJS); - } else { // Try with tar - unarchiver = new bitjs.archive.Untarrer(ab, pathToBitJS); + var f=[]; + f.fileData=ab.content; + f.filename=ab.name; + // add any new pages based on the filename + if (imageFilenames.indexOf(f.filename) === -1) { + imageFilenames.push(f.filename); + imageFiles.push(new kthoom.ImageFile(f)); } - // Listen for UnarchiveEvents. - if (unarchiver) { - unarchiver.addEventListener(bitjs.archive.UnarchiveEvent.Type.PROGRESS, - function(e) { - var percentage = e.currentBytesUnarchived / e.totalUncompressedBytesInArchive; - totalImages = e.totalFilesInArchive; - kthoom.setProgressMeter(percentage, "Unzipping"); - // display nav - lastCompletion = percentage * 100; - }); - unarchiver.addEventListener(bitjs.archive.UnarchiveEvent.Type.EXTRACT, - function(e) { - // convert DecompressedFile into a bunch of ImageFiles - if (e.unarchivedFile) { - var f = e.unarchivedFile; - // add any new pages based on the filename - if (imageFilenames.indexOf(f.filename) === -1) { - imageFilenames.push(f.filename); - imageFiles.push(new kthoom.ImageFile(f)); - } - } - // display first page if we haven't yet - if (imageFiles.length === currentImage + 1) { - updatePage(); - } - }); - unarchiver.addEventListener(bitjs.archive.UnarchiveEvent.Type.FINISH, - function() { - var diff = ((new Date).getTime() - start) / 1000; - console.log("Unarchiving done in " + diff + "s"); - }); - unarchiver.start(); - } else { - alert("Some error"); + var percentage = (ab.page+1) / (ab.last+1); + totalImages = ab.last+1; + kthoom.setProgressMeter(percentage, "Unzipping"); + lastCompletion = percentage * 100; + + // display first page if we haven't yet + if (imageFiles.length === currentImage + 1) { + updatePage(); } } @@ -524,69 +498,90 @@ function keyHandler(evt) { } } -function init(filename) { - if (!window.FileReader) { - alert("Sorry, kthoom will not work with your browser because it does not support the File API. Please try kthoom with Chrome 12+ or Firefox 7+"); - } else { - var request = new XMLHttpRequest(); - request.open("GET", filename); - request.responseType = "arraybuffer"; - request.setRequestHeader("X-Test", "test1"); - request.setRequestHeader("X-Test", "test2"); - request.addEventListener("load", function(event) { - if (request.status >= 200 && request.status < 300) { - loadFromArrayBuffer(request.response); - } else { - console.warn(request.statusText, request.responseText); - } - }); - request.send(); - kthoom.initProgressMeter(); - document.body.className += /AppleWebKit/.test(navigator.userAgent) ? " webkit" : ""; - updateScale(true); - kthoom.loadSettings(); - $(document).keydown(keyHandler); - - $(window).resize(function() { - var f = (screen.width - innerWidth < 4 && screen.height - innerHeight < 4); - getElem("titlebar").className = f ? "main" : ""; - updateScale(); - }); - - $("#mainImage").click(function(evt) { - // Firefox does not support offsetX/Y so we have to manually calculate - // where the user clicked in the image. - var mainContentWidth = $("#mainContent").width(); - var mainContentHeight = $("#mainContent").height(); - var comicWidth = evt.target.clientWidth; - var comicHeight = evt.target.clientHeight; - var offsetX = (mainContentWidth - comicWidth) / 2; - var offsetY = (mainContentHeight - comicHeight) / 2; - var clickX = !!evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); - var clickY = !!evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); - - // Determine if the user clicked/tapped the left side or the - // right side of the page. - var clickedPrev = false; - switch (kthoom.rotateTimes) { - case 0: - clickedPrev = clickX < (comicWidth / 2); - break; - case 1: - clickedPrev = clickY < (comicHeight / 2); - break; - case 2: - clickedPrev = clickX > (comicWidth / 2); - break; - case 3: - clickedPrev = clickY > (comicHeight / 2); - break; - } - if (clickedPrev) { - showPrevPage(); - } else { - showNextPage(); - } - }); +function ImageLoadCallback(event) { + var jso=this.response; + if (jso.page !== jso.last) + { + // var secRequest = new XMLHttpRequest(); + this.open("GET", this.fileid + "/"+(jso.page+1)); + this.addEventListener("load",ImageLoadCallback); + this.send(); + } + else + { + var diff = ((new Date).getTime() - start)/1000; + console.log('Transfer done in ' + diff + 's'); } + loadFromArrayBuffer(jso); +} +function init(fileid) { + start = (new Date).getTime(); + var request = new XMLHttpRequest(); + request.open("GET", fileid); + request.responseType = "json"; + request.fileid=fileid.substring(0,fileid.length - 2); + request.addEventListener("load",ImageLoadCallback);/* function(event) { + var jso=request.response; + if (jso.page!=jso.length) + { + // var secRequest = new XMLHttpRequest(); + request.open("GET", fileid + "/../"+(jso.page+1)); + request.send(); + //secRequest.responseType = "json"; + //finished; + } + loadFromArrayBuffer(jso); + + // var byteArray = new Uint8Array(request.response); + // if you want to access the bytes: + });*/ + request.send(); + + kthoom.initProgressMeter(); + document.body.className += /AppleWebKit/.test(navigator.userAgent) ? " webkit" : ""; + updateScale(true); + kthoom.loadSettings(); + $(document).keydown(keyHandler); + + $(window).resize(function() { + var f = (screen.width - innerWidth < 4 && screen.height - innerHeight < 4); + getElem("titlebar").className = f ? "main" : ""; + updateScale(); + }); + + $("#mainImage").click(function(evt) { + // Firefox does not support offsetX/Y so we have to manually calculate + // where the user clicked in the image. + var mainContentWidth = $("#mainContent").width(); + var mainContentHeight = $("#mainContent").height(); + var comicWidth = evt.target.clientWidth; + var comicHeight = evt.target.clientHeight; + var offsetX = (mainContentWidth - comicWidth) / 2; + var offsetY = (mainContentHeight - comicHeight) / 2; + var clickX = !!evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); + var clickY = !!evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); + + // Determine if the user clicked/tapped the left side or the + // right side of the page. + var clickedPrev = false; + switch (kthoom.rotateTimes) { + case 0: + clickedPrev = clickX < (comicWidth / 2); + break; + case 1: + clickedPrev = clickY < (comicHeight / 2); + break; + case 2: + clickedPrev = clickX > (comicWidth / 2); + break; + case 3: + clickedPrev = clickY > (comicHeight / 2); + break; + } + if (clickedPrev) { + showPrevPage(); + } else { + showNextPage(); + } + }); } diff --git a/cps/static/js/unrar.js b/cps/static/js/unrar.js deleted file mode 100644 index f32fd6fa..00000000 --- a/cps/static/js/unrar.js +++ /dev/null @@ -1,891 +0,0 @@ -/** - * unrar.js - * - * Copyright(c) 2011 Google Inc. - * Copyright(c) 2011 antimatter15 - * - * Reference Documentation: - * - * http://kthoom.googlecode.com/hg/docs/unrar.html - */ -/* global bitjs, importScripts */ - -// This file expects to be invoked as a Worker (see onmessage below). -importScripts("io.js"); -importScripts("archive.js"); - -// Progress variables. -var currentFilename = ""; -var currentFileNumber = 0; -var currentBytesUnarchivedInFile = 0; -var currentBytesUnarchived = 0; -var totalUncompressedBytesInArchive = 0; -var totalFilesInArchive = 0; - -// Helper functions. -var info = function(str) { - postMessage(new bitjs.archive.UnarchiveInfoEvent(str)); -}; -var err = function(str) { - postMessage(new bitjs.archive.UnarchiveErrorEvent(str)); -}; -var postProgress = function() { - postMessage(new bitjs.archive.UnarchiveProgressEvent( - currentFilename, - currentFileNumber, - currentBytesUnarchivedInFile, - currentBytesUnarchived, - totalUncompressedBytesInArchive, - totalFilesInArchive)); -}; - -// shows a byte value as its hex representation -var nibble = "0123456789ABCDEF"; -var byteValueToHexString = function(num) { - return nibble[num>>4] + nibble[num & 0xF]; -}; -var twoByteValueToHexString = function(num) { - return nibble[(num>>12) & 0xF] + nibble[(num>>8) & 0xF] + nibble[(num>>4) & 0xF] + nibble[num & 0xF]; -}; - - -// Volume Types -// MARK_HEAD = 0x72; -var MAIN_HEAD = 0x73, - FILE_HEAD = 0x74, - // COMM_HEAD = 0x75, - // AV_HEAD = 0x76, - // SUB_HEAD = 0x77, - // PROTECT_HEAD = 0x78, - // SIGN_HEAD = 0x79, - // NEWSUB_HEAD = 0x7a, - ENDARC_HEAD = 0x7b; - -// bstream is a bit stream -var RarVolumeHeader = function(bstream) { - - var headPos = bstream.bytePtr; - // byte 1,2 - info("Rar Volume Header @" + bstream.bytePtr); - - this.crc = bstream.readBits(16); - info(" crc=" + this.crc); - - // byte 3 - this.headType = bstream.readBits(8); - info(" headType=" + this.headType); - - // Get flags - // bytes 4,5 - this.flags = {}; - this.flags.value = bstream.peekBits(16); - - info(" flags=" + twoByteValueToHexString(this.flags.value)); - switch (this.headType) { - case MAIN_HEAD: - this.flags.MHD_VOLUME = !!bstream.readBits(1); - this.flags.MHD_COMMENT = !!bstream.readBits(1); - this.flags.MHD_LOCK = !!bstream.readBits(1); - this.flags.MHD_SOLID = !!bstream.readBits(1); - this.flags.MHD_PACK_COMMENT = !!bstream.readBits(1); - this.flags.MHD_NEWNUMBERING = this.flags.MHD_PACK_COMMENT; - this.flags.MHD_AV = !!bstream.readBits(1); - this.flags.MHD_PROTECT = !!bstream.readBits(1); - this.flags.MHD_PASSWORD = !!bstream.readBits(1); - this.flags.MHD_FIRSTVOLUME = !!bstream.readBits(1); - this.flags.MHD_ENCRYPTVER = !!bstream.readBits(1); - bstream.readBits(6); // unused - break; - case FILE_HEAD: - this.flags.LHD_SPLIT_BEFORE = !!bstream.readBits(1); // 0x0001 - this.flags.LHD_SPLIT_AFTER = !!bstream.readBits(1); // 0x0002 - this.flags.LHD_PASSWORD = !!bstream.readBits(1); // 0x0004 - this.flags.LHD_COMMENT = !!bstream.readBits(1); // 0x0008 - this.flags.LHD_SOLID = !!bstream.readBits(1); // 0x0010 - bstream.readBits(3); // unused - this.flags.LHD_LARGE = !!bstream.readBits(1); // 0x0100 - this.flags.LHD_UNICODE = !!bstream.readBits(1); // 0x0200 - this.flags.LHD_SALT = !!bstream.readBits(1); // 0x0400 - this.flags.LHD_VERSION = !!bstream.readBits(1); // 0x0800 - this.flags.LHD_EXTTIME = !!bstream.readBits(1); // 0x1000 - this.flags.LHD_EXTFLAGS = !!bstream.readBits(1); // 0x2000 - bstream.readBits(2); // unused - info(" LHD_SPLIT_BEFORE = " + this.flags.LHD_SPLIT_BEFORE); - break; - default: - bstream.readBits(16); - } - - // byte 6,7 - this.headSize = bstream.readBits(16); - info(" headSize=" + this.headSize); - switch (this.headType) { - case MAIN_HEAD: - this.highPosAv = bstream.readBits(16); - this.posAv = bstream.readBits(32); - if (this.flags.MHD_ENCRYPTVER) { - this.encryptVer = bstream.readBits(8); - } - info("Found MAIN_HEAD with highPosAv=" + this.highPosAv + ", posAv=" + this.posAv); - break; - case FILE_HEAD: - this.packSize = bstream.readBits(32); - this.unpackedSize = bstream.readBits(32); - this.hostOS = bstream.readBits(8); - this.fileCRC = bstream.readBits(32); - this.fileTime = bstream.readBits(32); - this.unpVer = bstream.readBits(8); - this.method = bstream.readBits(8); - this.nameSize = bstream.readBits(16); - this.fileAttr = bstream.readBits(32); - - if (this.flags.LHD_LARGE) { - info("Warning: Reading in LHD_LARGE 64-bit size values"); - this.HighPackSize = bstream.readBits(32); - this.HighUnpSize = bstream.readBits(32); - } else { - this.HighPackSize = 0; - this.HighUnpSize = 0; - if (this.unpackedSize == 0xffffffff) { - this.HighUnpSize = 0x7fffffff; - this.unpackedSize = 0xffffffff; - } - } - this.fullPackSize = 0; - this.fullUnpackSize = 0; - this.fullPackSize |= this.HighPackSize; - this.fullPackSize <<= 32; - this.fullPackSize |= this.packSize; - - // read in filename - - this.filename = bstream.readBytes(this.nameSize); - for (var _i = 0, _s = ""; _i < this.filename.length ; _i++) { - _s += String.fromCharCode(this.filename[_i]); - } - - this.filename = _s; - - if (this.flags.LHD_SALT) { - info("Warning: Reading in 64-bit salt value"); - this.salt = bstream.readBits(64); // 8 bytes - } - - if (this.flags.LHD_EXTTIME) { - // 16-bit flags - var extTimeFlags = bstream.readBits(16); - - // this is adapted straight out of arcread.cpp, Archive::ReadHeader() - for (var I = 0; I < 4; ++I) { - var rmode = extTimeFlags >> ((3 - I) * 4); - if ((rmode & 8)==0) - continue; - if (I!=0) { - bstream.readBits(16); - } - var count = (rmode & 3); - for (var J = 0; J < count; ++J) { - bstream.readBits(8); - } - } - } - - if (this.flags.LHD_COMMENT) { - info("Found a LHD_COMMENT"); - } - - - while (headPos + this.headSize > bstream.bytePtr) bstream.readBits(1); - - info("Found FILE_HEAD with packSize=" + this.packSize + ", unpackedSize= " + this.unpackedSize + ", hostOS=" + this.hostOS + ", unpVer=" + this.unpVer + ", method=" + this.method + ", filename=" + this.filename); - - break; - default: - info("Found a header of type 0x" + byteValueToHexString(this.headType)); - // skip the rest of the header bytes (for now) - bstream.readBytes( this.headSize - 7 ); - break; - } -}; - -var BLOCK_LZ = 0; - // BLOCK_PPM = 1; - -var rLDecode = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224], - rLBits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5], - rDBitLengthCounts = [4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 14, 0, 12], - rSDDecode = [0, 4, 8, 16, 32, 64, 128, 192], - rSDBits = [2,2,3, 4, 5, 6, 6, 6]; - -var rDDecode = [0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, - 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, - 4096, 6144, 8192, 12288, 16384, 24576, 32768, 49152, 65536, 98304, - 131072, 196608, 262144, 327680, 393216, 458752, 524288, 589824, - 655360, 720896, 786432, 851968, 917504, 983040]; - -var rDBits = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, - 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]; - -var rLOW_DIST_REP_COUNT = 16; - -var rNC = 299, - rDC = 60, - rLDC = 17, - rRC = 28, - rBC = 20, - rHUFF_TABLE_SIZE = (rNC + rDC + rRC + rLDC); - -var UnpBlockType = BLOCK_LZ; -var UnpOldTable = new Array(rHUFF_TABLE_SIZE); - -var BD = { //bitdecode - DecodeLen: new Array(16), - DecodePos: new Array(16), - DecodeNum: new Array(rBC) -}; -var LD = { //litdecode - DecodeLen: new Array(16), - DecodePos: new Array(16), - DecodeNum: new Array(rNC) -}; -var DD = { //distdecode - DecodeLen: new Array(16), - DecodePos: new Array(16), - DecodeNum: new Array(rDC) -}; -var LDD = { //low dist decode - DecodeLen: new Array(16), - DecodePos: new Array(16), - DecodeNum: new Array(rLDC) -}; -var RD = { //rep decode - DecodeLen: new Array(16), - DecodePos: new Array(16), - DecodeNum: new Array(rRC) -}; - -var rBuffer; - -// read in Huffman tables for RAR -function RarReadTables(bstream) { - var BitLength = new Array(rBC), - Table = new Array(rHUFF_TABLE_SIZE); - - // before we start anything we need to get byte-aligned - bstream.readBits( (8 - bstream.bitPtr) & 0x7 ); - - if (bstream.readBits(1)) { - info("Error! PPM not implemented yet"); - return; - } - - if (!bstream.readBits(1)) { //discard old table - for (var i = UnpOldTable.length; i--;) UnpOldTable[i] = 0; - } - - // read in bit lengths - for (var I = 0; I < rBC; ++I) { - - var Length = bstream.readBits(4); - if (Length == 15) { - var ZeroCount = bstream.readBits(4); - if (ZeroCount == 0) { - BitLength[I] = 15; - } - else { - ZeroCount += 2; - while (ZeroCount-- > 0 && I < rBC) - BitLength[I++] = 0; - --I; - } - } - else { - BitLength[I] = Length; - } - } - - // now all 20 bit lengths are obtained, we construct the Huffman Table: - - RarMakeDecodeTables(BitLength, 0, BD, rBC); - - var TableSize = rHUFF_TABLE_SIZE; - //console.log(DecodeLen, DecodePos, DecodeNum); - for (var i = 0; i < TableSize;) { - var num = RarDecodeNumber(bstream, BD); - if (num < 16) { - Table[i] = (num + UnpOldTable[i]) & 0xf; - i++; - } else if(num < 18) { - var N = (num == 16) ? (bstream.readBits(3) + 3) : (bstream.readBits(7) + 11); - - while (N-- > 0 && i < TableSize) { - Table[i] = Table[i - 1]; - i++; - } - } else { - var N = (num == 18) ? (bstream.readBits(3) + 3) : (bstream.readBits(7) + 11); - - while (N-- > 0 && i < TableSize) { - Table[i++] = 0; - } - } - } - - RarMakeDecodeTables(Table, 0, LD, rNC); - RarMakeDecodeTables(Table, rNC, DD, rDC); - RarMakeDecodeTables(Table, rNC + rDC, LDD, rLDC); - RarMakeDecodeTables(Table, rNC + rDC + rLDC, RD, rRC); - - for (var i = UnpOldTable.length; i--;) { - UnpOldTable[i] = Table[i]; - } - return true; -} - - -function RarDecodeNumber(bstream, dec) { - var DecodeLen = dec.DecodeLen, DecodePos = dec.DecodePos, DecodeNum = dec.DecodeNum; - var bitField = bstream.getBits() & 0xfffe; - //some sort of rolled out binary search - var bits = ((bitField < DecodeLen[8])? - ((bitField < DecodeLen[4])? - ((bitField < DecodeLen[2])? - ((bitField < DecodeLen[1])?1:2) - :((bitField < DecodeLen[3])?3:4)) - :(bitField < DecodeLen[6])? - ((bitField < DecodeLen[5])?5:6) - :((bitField < DecodeLen[7])?7:8)) - :((bitField < DecodeLen[12])? - ((bitField < DecodeLen[10])? - ((bitField < DecodeLen[9])?9:10) - :((bitField < DecodeLen[11])?11:12)) - :(bitField < DecodeLen[14])? - ((bitField < DecodeLen[13])?13:14) - :15)); - bstream.readBits(bits); - var N = DecodePos[bits] + ((bitField - DecodeLen[bits -1]) >>> (16 - bits)); - - return DecodeNum[N]; -} - - -function RarMakeDecodeTables(BitLength, offset, dec, size) { - var DecodeLen = dec.DecodeLen, DecodePos = dec.DecodePos, DecodeNum = dec.DecodeNum; - var LenCount = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], - TmpPos = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], - N = 0, M = 0; - for (var i = DecodeNum.length; i--;) DecodeNum[i] = 0; - for (var i = 0; i < size; i++) { - LenCount[BitLength[i + offset] & 0xF]++; - } - LenCount[0] = 0; - TmpPos[0] = 0; - DecodePos[0] = 0; - DecodeLen[0] = 0; - - for (var I = 1; I < 16; ++I) { - N = 2 * (N+LenCount[I]); - M = (N << (15-I)); - if (M > 0xFFFF) - M = 0xFFFF; - DecodeLen[I] = M; - DecodePos[I] = DecodePos[I-1] + LenCount[I-1]; - TmpPos[I] = DecodePos[I]; - } - for (I = 0; I < size; ++I) - if (BitLength[I + offset] != 0) - DecodeNum[ TmpPos[ BitLength[offset + I] & 0xF ]++] = I; -} - -// TODO: implement -function Unpack15(bstream, Solid) { - info("ERROR! RAR 1.5 compression not supported"); -} - -function Unpack20(bstream, Solid) { - var destUnpSize = rBuffer.data.length; - var oldDistPtr = 0; - - RarReadTables20(bstream); - while (destUnpSize > rBuffer.ptr) { - var num = RarDecodeNumber(bstream, LD); - if (num < 256) { - rBuffer.insertByte(num); - continue; - } - if (num > 269) { - var Length = rLDecode[num -= 270] + 3; - if ((Bits = rLBits[num]) > 0) { - Length += bstream.readBits(Bits); - } - var DistNumber = RarDecodeNumber(bstream, DD); - var Distance = rDDecode[DistNumber] + 1; - if ((Bits = rDBits[DistNumber]) > 0) { - Distance += bstream.readBits(Bits); - } - if (Distance >= 0x2000) { - Length++; - if(Distance >= 0x40000) Length++; - } - lastLength = Length; - lastDist = rOldDist[oldDistPtr++ & 3] = Distance; - RarCopyString(Length, Distance); - continue; - } - if (num == 269) { - RarReadTables20(bstream); - - RarUpdateProgress() - - continue; - } - if (num == 256) { - lastDist = rOldDist[oldDistPtr++ & 3] = lastDist; - RarCopyString(lastLength, lastDist); - continue; - } - if (num < 261) { - var Distance = rOldDist[(oldDistPtr - (num - 256)) & 3]; - var LengthNumber = RarDecodeNumber(bstream, RD); - var Length = rLDecode[LengthNumber] +2; - if ((Bits = rLBits[LengthNumber]) > 0) { - Length += bstream.readBits(Bits); - } - if (Distance >= 0x101) { - Length++; - if (Distance >= 0x2000) { - Length++ - if (Distance >= 0x40000) Length++; - } - } - lastLength = Length; - lastDist = rOldDist[oldDistPtr++ & 3] = Distance; - RarCopyString(Length, Distance); - continue; - } - if (num < 270) { - var Distance = rSDDecode[num -= 261] + 1; - if ((Bits = rSDBits[num]) > 0) { - Distance += bstream.readBits(Bits); - } - lastLength = 2; - lastDist = rOldDist[oldDistPtr++ & 3] = Distance; - RarCopyString(2, Distance); - continue; - } - } - RarUpdateProgress() -} - -function RarUpdateProgress() { - var change = rBuffer.ptr - currentBytesUnarchivedInFile; - currentBytesUnarchivedInFile = rBuffer.ptr; - currentBytesUnarchived += change; - postProgress(); -} - - -var rNC20 = 298, - rDC20 = 48, - rRC20 = 28, - rBC20 = 19, - rMC20 = 257; - -var UnpOldTable20 = new Array(rMC20 * 4); - -function RarReadTables20(bstream) { - var BitLength = new Array(rBC20); - var Table = new Array(rMC20 * 4); - var TableSize, N, I; - var AudioBlock = bstream.readBits(1); - if (!bstream.readBits(1)) - for (var i = UnpOldTable20.length; i--;) UnpOldTable20[i] = 0; - TableSize = rNC20 + rDC20 + rRC20; - for (var I = 0; I < rBC20; I++) - BitLength[I] = bstream.readBits(4); - RarMakeDecodeTables(BitLength, 0, BD, rBC20); - I = 0; - while (I < TableSize) { - var num = RarDecodeNumber(bstream, BD); - if (num < 16) { - Table[I] = num + UnpOldTable20[I] & 0xf; - I++; - } else if(num == 16) { - N = bstream.readBits(2) + 3; - while (N-- > 0 && I < TableSize) { - Table[I] = Table[I - 1]; - I++; - } - } else { - if (num == 17) { - N = bstream.readBits(3) + 3; - } else { - N = bstream.readBits(7) + 11; - } - while (N-- > 0 && I < TableSize) { - Table[I++] = 0; - } - } - } - RarMakeDecodeTables(Table, 0, LD, rNC20); - RarMakeDecodeTables(Table, rNC20, DD, rDC20); - RarMakeDecodeTables(Table, rNC20 + rDC20, RD, rRC20); - for (var i = UnpOldTable20.length; i--;) UnpOldTable20[i] = Table[i]; -} - -var lowDistRepCount = 0, prevLowDist = 0; - -var rOldDist = [0,0,0,0]; -var lastDist; -var lastLength; - - -function Unpack29(bstream, Solid) { - // lazy initialize rDDecode and rDBits - - var DDecode = new Array(rDC); - var DBits = new Array(rDC); - - var Dist=0,BitLength=0,Slot=0; - - for (var I = 0; I < rDBitLengthCounts.length; I++,BitLength++) { - for (var J = 0; J < rDBitLengthCounts[I]; J++,Slot++,Dist+=(1<= 271) { - var Length = rLDecode[num -= 271] + 3; - if ((Bits = rLBits[num]) > 0) { - Length += bstream.readBits(Bits); - } - var DistNumber = RarDecodeNumber(bstream, DD); - var Distance = DDecode[DistNumber]+1; - if ((Bits = DBits[DistNumber]) > 0) { - if (DistNumber > 9) { - if (Bits > 4) { - Distance += ((bstream.getBits() >>> (20 - Bits)) << 4); - bstream.readBits(Bits - 4); - //todo: check this - } - if (lowDistRepCount > 0) { - lowDistRepCount--; - Distance += prevLowDist; - } else { - var LowDist = RarDecodeNumber(bstream, LDD); - if (LowDist == 16) { - lowDistRepCount = rLOW_DIST_REP_COUNT - 1; - Distance += prevLowDist; - } else { - Distance += LowDist; - prevLowDist = LowDist; - } - } - } else { - Distance += bstream.readBits(Bits); - } - } - if (Distance >= 0x2000) { - Length++; - if (Distance >= 0x40000) { - Length++; - } - } - RarInsertOldDist(Distance); - RarInsertLastMatch(Length, Distance); - RarCopyString(Length, Distance); - continue; - } - if (num == 256) { - if (!RarReadEndOfBlock(bstream)) break; - continue; - } - if (num == 257) { - //console.log("READVMCODE"); - if (!RarReadVMCode(bstream)) break; - continue; - } - if (num == 258) { - if (lastLength != 0) { - RarCopyString(lastLength, lastDist); - } - continue; - } - if (num < 263) { - var DistNum = num - 259; - var Distance = rOldDist[DistNum]; - - for (var I = DistNum; I > 0; I--) { - rOldDist[I] = rOldDist[I-1]; - } - rOldDist[0] = Distance; - - var LengthNumber = RarDecodeNumber(bstream, RD); - var Length = rLDecode[LengthNumber] + 2; - if ((Bits = rLBits[LengthNumber]) > 0) { - Length += bstream.readBits(Bits); - } - RarInsertLastMatch(Length, Distance); - RarCopyString(Length, Distance); - continue; - } - if (num < 272) { - var Distance = rSDDecode[num -= 263] + 1; - if ((Bits = rSDBits[num]) > 0) { - Distance += bstream.readBits(Bits); - } - RarInsertOldDist(Distance); - RarInsertLastMatch(2, Distance); - RarCopyString(2, Distance); - continue; - } - } - RarUpdateProgress() -} - -function RarReadEndOfBlock(bstream) { - - RarUpdateProgress() - - var NewTable = false, NewFile = false; - if (bstream.readBits(1)) { - NewTable = true; - } else { - NewFile = true; - NewTable = !!bstream.readBits(1); - } - //tablesRead = !NewTable; - return !(NewFile || NewTable && !RarReadTables(bstream)); -} - - -function RarReadVMCode(bstream) { - var FirstByte = bstream.readBits(8); - var Length = (FirstByte & 7) + 1; - if (Length == 7) { - Length = bstream.readBits(8) + 7; - } else if(Length == 8) { - Length = bstream.readBits(16); - } - var vmCode = []; - for(var I = 0; I < Length; I++) { - //do something here with cheking readbuf - vmCode.push(bstream.readBits(8)); - } - return RarAddVMCode(FirstByte, vmCode, Length); -} - -function RarAddVMCode(firstByte, vmCode, length) { - //console.log(vmCode); - if (vmCode.length > 0) { - info("Error! RarVM not supported yet!"); - } - return true; -} - -function RarInsertLastMatch(length, distance) { - lastDist = distance; - lastLength = length; -} - -function RarInsertOldDist(distance) { - rOldDist.splice(3,1); - rOldDist.splice(0,0,distance); -} - -//this is the real function, the other one is for debugging -function RarCopyString(length, distance) { - var destPtr = rBuffer.ptr - distance; - if(destPtr < 0){ - var l = rOldBuffers.length; - while(destPtr < 0){ - destPtr = rOldBuffers[--l].data.length + destPtr; - } - //TODO: lets hope that it never needs to read beyond file boundaries - while(length--) rBuffer.insertByte(rOldBuffers[l].data[destPtr++]); - } - if (length > distance) { - while(length--) rBuffer.insertByte(rBuffer.data[destPtr++]); - } else { - rBuffer.insertBytes(rBuffer.data.subarray(destPtr, destPtr + length)); - } -} - -var rOldBuffers = [] -// v must be a valid RarVolume -function unpack(v) { - - // TODO: implement what happens when unpVer is < 15 - var Ver = v.header.unpVer <= 15 ? 15 : v.header.unpVer, - Solid = v.header.LHD_SOLID, - bstream = new bitjs.io.BitStream(v.fileData.buffer, true /* rtl */, v.fileData.byteOffset, v.fileData.byteLength ); - - rBuffer = new bitjs.io.ByteBuffer(v.header.unpackedSize); - - info("Unpacking " + v.filename+" RAR v" + Ver); - - switch(Ver) { - case 15: // rar 1.5 compression - Unpack15(bstream, Solid); - break; - case 20: // rar 2.x compression - case 26: // files larger than 2GB - Unpack20(bstream, Solid); - break; - case 29: // rar 3.x compression - case 36: // alternative hash - Unpack29(bstream, Solid); - break; - } // switch(method) - - rOldBuffers.push(rBuffer); - //TODO: clear these old buffers when there's over 4MB of history - return rBuffer.data; -} - -// bstream is a bit stream -var RarLocalFile = function(bstream) { - - this.header = new RarVolumeHeader(bstream); - this.filename = this.header.filename; - - if (this.header.headType != FILE_HEAD && this.header.headType != ENDARC_HEAD) { - this.isValid = false; - info("Error! RAR Volume did not include a FILE_HEAD header "); - } - else { - // read in the compressed data - this.fileData = null; - if (this.header.packSize > 0) { - this.fileData = bstream.readBytes(this.header.packSize); - this.isValid = true; - } - } -}; - -RarLocalFile.prototype.unrar = function() { - - if (!this.header.flags.LHD_SPLIT_BEFORE) { - // unstore file - if (this.header.method == 0x30) { - info("Unstore "+this.filename); - this.isValid = true; - - currentBytesUnarchivedInFile += this.fileData.length; - currentBytesUnarchived += this.fileData.length; - - // Create a new buffer and copy it over. - var len = this.header.packSize; - var newBuffer = new bitjs.io.ByteBuffer(len); - newBuffer.insertBytes(this.fileData); - this.fileData = newBuffer.data; - } else { - this.isValid = true; - this.fileData = unpack(this); - } - } -} - -var unrar = function(arrayBuffer) { - currentFilename = ""; - currentFileNumber = 0; - currentBytesUnarchivedInFile = 0; - currentBytesUnarchived = 0; - totalUncompressedBytesInArchive = 0; - totalFilesInArchive = 0; - - postMessage(new bitjs.archive.UnarchiveStartEvent()); - var bstream = new bitjs.io.BitStream(arrayBuffer, false /* rtl */); - - var header = new RarVolumeHeader(bstream); - if (header.crc == 0x6152 && - header.headType == 0x72 && - header.flags.value == 0x1A21 && - header.headSize == 7) - { - info("Found RAR signature"); - - var mhead = new RarVolumeHeader(bstream); - if (mhead.headType != MAIN_HEAD) { - info("Error! RAR did not include a MAIN_HEAD header"); - } else { - var localFiles = [], - localFile = null; - do { - try { - localFile = new RarLocalFile(bstream); - info("RAR localFile isValid=" + localFile.isValid + ", volume packSize=" + localFile.header.packSize); - if (localFile && localFile.isValid && localFile.header.packSize > 0) { - totalUncompressedBytesInArchive += localFile.header.unpackedSize; - localFiles.push(localFile); - } else if (localFile.header.packSize == 0 && localFile.header.unpackedSize == 0) { - localFile.isValid = true; - } - } catch(err) { - break; - } - //info("bstream" + bstream.bytePtr+"/"+bstream.bytes.length); - } while( localFile.isValid ); - totalFilesInArchive = localFiles.length; - - // now we have all information but things are unpacked - // TODO: unpack - localFiles = localFiles.sort(function(a,b) { - var aname = a.filename.toLowerCase(); - var bname = b.filename.toLowerCase(); - return aname > bname ? 1 : -1; - }); - - info(localFiles.map(function(a){return a.filename}).join(', ')); - for (var i = 0; i < localFiles.length; ++i) { - var localfile = localFiles[i]; - - // update progress - currentFilename = localfile.header.filename; - currentBytesUnarchivedInFile = 0; - - // actually do the unzipping - localfile.unrar(); - - if (localfile.isValid) { - postMessage(new bitjs.archive.UnarchiveExtractEvent(localfile)); - postProgress(); - } - } - - postProgress(); - } - } - else { - err("Invalid RAR file"); - } - postMessage(new bitjs.archive.UnarchiveFinishEvent()); -}; - -// event.data.file has the ArrayBuffer. -onmessage = function(event) { - var ab = event.data.file; - unrar(ab, true); -}; diff --git a/cps/static/js/untar.js b/cps/static/js/untar.js deleted file mode 100644 index defed7d7..00000000 --- a/cps/static/js/untar.js +++ /dev/null @@ -1,168 +0,0 @@ -/** - * untar.js - * - * Copyright(c) 2011 Google Inc. - * - * Reference Documentation: - * - * TAR format: http://www.gnu.org/software/automake/manual/tar/Standard.html - */ - -// This file expects to be invoked as a Worker (see onmessage below). -importScripts('io.js'); -importScripts('archive.js'); - -// Progress variables. -var currentFilename = ""; -var currentFileNumber = 0; -var currentBytesUnarchivedInFile = 0; -var currentBytesUnarchived = 0; -var totalUncompressedBytesInArchive = 0; -var totalFilesInArchive = 0; - -// Helper functions. -var info = function(str) { - postMessage(new bitjs.archive.UnarchiveInfoEvent(str)); -}; -var err = function(str) { - postMessage(new bitjs.archive.UnarchiveErrorEvent(str)); -}; -var postProgress = function() { - postMessage(new bitjs.archive.UnarchiveProgressEvent( - currentFilename, - currentFileNumber, - currentBytesUnarchivedInFile, - currentBytesUnarchived, - totalUncompressedBytesInArchive, - totalFilesInArchive)); -}; - -// Removes all characters from the first zero-byte in the string onwards. -var readCleanString = function(bstr, numBytes) { - var str = bstr.readString(numBytes); - var zIndex = str.indexOf(String.fromCharCode(0)); - return zIndex != -1 ? str.substr(0, zIndex) : str; -}; - -// takes a ByteStream and parses out the local file information -var TarLocalFile = function(bstream) { - this.isValid = false; - - // Read in the header block - this.name = readCleanString(bstream, 100); - this.mode = readCleanString(bstream, 8); - this.uid = readCleanString(bstream, 8); - this.gid = readCleanString(bstream, 8); - this.size = parseInt(readCleanString(bstream, 12), 8); - this.mtime = readCleanString(bstream, 12); - this.chksum = readCleanString(bstream, 8); - this.typeflag = readCleanString(bstream, 1); - this.linkname = readCleanString(bstream, 100); - this.maybeMagic = readCleanString(bstream, 6); - - if (this.maybeMagic == "ustar") { - this.version = readCleanString(bstream, 2); - this.uname = readCleanString(bstream, 32); - this.gname = readCleanString(bstream, 32); - this.devmajor = readCleanString(bstream, 8); - this.devminor = readCleanString(bstream, 8); - this.prefix = readCleanString(bstream, 155); - - if (this.prefix.length) { - this.name = this.prefix + this.name; - } - bstream.readBytes(12); // 512 - 500 - } else { - bstream.readBytes(255); // 512 - 257 - } - - // Done header, now rest of blocks are the file contents. - this.filename = this.name; - this.fileData = null; - - info("Untarring file '" + this.filename + "'"); - info(" size = " + this.size); - info(" typeflag = " + this.typeflag); - - // A regular file. - if (this.typeflag == 0) { - info(" This is a regular file."); - var sizeInBytes = parseInt(this.size); - this.fileData = new Uint8Array(bstream.bytes.buffer, bstream.ptr, this.size); - if (this.name.length > 0 && this.size > 0 && this.fileData && this.fileData.buffer) { - this.isValid = true; - } - - bstream.readBytes(this.size); - - // Round up to 512-byte blocks. - var remaining = 512 - this.size % 512; - if (remaining > 0 && remaining < 512) { - bstream.readBytes(remaining); - } - } else if (this.typeflag == 5) { - info(" This is a directory.") - } -}; - -// Takes an ArrayBuffer of a tar file in -// returns null on error -// returns an array of DecompressedFile objects on success -var untar = function(arrayBuffer) { - currentFilename = ""; - currentFileNumber = 0; - currentBytesUnarchivedInFile = 0; - currentBytesUnarchived = 0; - totalUncompressedBytesInArchive = 0; - totalFilesInArchive = 0; - - postMessage(new bitjs.archive.UnarchiveStartEvent()); - var bstream = new bitjs.io.ByteStream(arrayBuffer); - var localFiles = []; - - // While we don't encounter an empty block, keep making TarLocalFiles. - while (bstream.peekNumber(4) != 0) { - var oneLocalFile = new TarLocalFile(bstream); - if (oneLocalFile && oneLocalFile.isValid) { - localFiles.push(oneLocalFile); - totalUncompressedBytesInArchive += oneLocalFile.size; - } - } - totalFilesInArchive = localFiles.length; - - // got all local files, now sort them - localFiles.sort(function(a,b) { - var aname = a.filename.toLowerCase(); - var bname = b.filename.toLowerCase(); - return aname > bname ? 1 : -1; - }); - - // report # files and total length - if (localFiles.length > 0) { - postProgress(); - } - - // now do the shipping of each file - for (var i = 0; i < localFiles.length; ++i) { - var localfile = localFiles[i]; - info("Sending file '" + localfile.filename + "' up"); - - // update progress - currentFilename = localfile.filename; - currentFileNumber = i; - currentBytesUnarchivedInFile = localfile.size; - currentBytesUnarchived += localfile.size; - postMessage(new bitjs.archive.UnarchiveExtractEvent(localfile)); - postProgress(); - } - - postProgress(); - - postMessage(new bitjs.archive.UnarchiveFinishEvent()); -}; - -// event.data.file has the ArrayBuffer. -onmessage = function(event) { - var ab = event.data.file; - untar(ab); -}; diff --git a/cps/static/js/unzip.js b/cps/static/js/unzip.js deleted file mode 100644 index 18b76443..00000000 --- a/cps/static/js/unzip.js +++ /dev/null @@ -1,621 +0,0 @@ -/** - * unzip.js - * - * Copyright(c) 2011 Google Inc. - * Copyright(c) 2011 antimatter15 - * - * Reference Documentation: - * - * ZIP format: http://www.pkware.com/documents/casestudies/APPNOTE.TXT - * DEFLATE format: http://tools.ietf.org/html/rfc1951 - */ -/* global bitjs, importScripts, Uint8Array */ - -// This file expects to be invoked as a Worker (see onmessage below). -importScripts("io.js"); -importScripts("archive.js"); - -// Progress variables. -var currentFilename = ""; -var currentFileNumber = 0; -var currentBytesUnarchivedInFile = 0; -var currentBytesUnarchived = 0; -var totalUncompressedBytesInArchive = 0; -var totalFilesInArchive = 0; - -// Helper functions. -var info = function(str) { - postMessage(new bitjs.archive.UnarchiveInfoEvent(str)); -}; -var err = function(str) { - postMessage(new bitjs.archive.UnarchiveErrorEvent(str)); -}; -var postProgress = function() { - postMessage(new bitjs.archive.UnarchiveProgressEvent( - currentFilename, - currentFileNumber, - currentBytesUnarchivedInFile, - currentBytesUnarchived, - totalUncompressedBytesInArchive, - totalFilesInArchive)); -}; - -var zLocalFileHeaderSignature = 0x04034b50; -var zArchiveExtraDataSignature = 0x08064b50; -var zCentralFileHeaderSignature = 0x02014b50; -var zDigitalSignatureSignature = 0x05054b50; -//var zEndOfCentralDirSignature = 0x06064b50; -//var zEndOfCentralDirLocatorSignature = 0x07064b50; - -// takes a ByteStream and parses out the local file information -var ZipLocalFile = function(bstream) { - if (typeof bstream !== typeof {} || !bstream.readNumber || typeof bstream.readNumber != typeof function() {} ) { - return null; - } - - bstream.readNumber(4); // swallow signature - this.version = bstream.readNumber(2); - this.generalPurpose = bstream.readNumber(2); - this.compressionMethod = bstream.readNumber(2); - this.lastModFileTime = bstream.readNumber(2); - this.lastModFileDate = bstream.readNumber(2); - this.crc32 = bstream.readNumber(4); - this.compressedSize = bstream.readNumber(4); - this.uncompressedSize = bstream.readNumber(4); - this.fileNameLength = bstream.readNumber(2); - this.extraFieldLength = bstream.readNumber(2); - - this.filename = null; - if (this.fileNameLength > 0) { - this.filename = bstream.readString(this.fileNameLength); - } - - info("Zip Local File Header:"); - info(" version=" + this.version); - info(" general purpose=" + this.generalPurpose); - info(" compression method=" + this.compressionMethod); - info(" last mod file time=" + this.lastModFileTime); - info(" last mod file date=" + this.lastModFileDate); - info(" crc32=" + this.crc32); - info(" compressed size=" + this.compressedSize); - info(" uncompressed size=" + this.uncompressedSize); - info(" file name length=" + this.fileNameLength); - info(" extra field length=" + this.extraFieldLength); - info(" filename = '" + this.filename + "'"); - - this.extraField = null; - if (this.extraFieldLength > 0) { - this.extraField = bstream.readString(this.extraFieldLength); - info(" extra field=" + this.extraField); - } - - // read in the compressed data - this.fileData = null; - if (this.compressedSize > 0) { - this.fileData = new Uint8Array(bstream.bytes.buffer, bstream.ptr, this.compressedSize); - bstream.ptr += this.compressedSize; - } - - // TODO: deal with data descriptor if present (we currently assume no data descriptor!) - // "This descriptor exists only if bit 3 of the general purpose bit flag is set" - // But how do you figure out how big the file data is if you don't know the compressedSize - // from the header?!? - if ((this.generalPurpose & bitjs.BIT[3]) !== 0) { - this.crc32 = bstream.readNumber(4); - this.compressedSize = bstream.readNumber(4); - this.uncompressedSize = bstream.readNumber(4); - } -}; - -// determine what kind of compressed data we have and decompress -ZipLocalFile.prototype.unzip = function() { - - // Zip Version 1.0, no compression (store only) - if (this.compressionMethod === 0 ) { - info("ZIP v" + this.version + ", store only: " + this.filename + " (" + this.compressedSize + " bytes)"); - currentBytesUnarchivedInFile = this.compressedSize; - currentBytesUnarchived += this.compressedSize; - } - // version == 20, compression method == 8 (DEFLATE) - else if (this.compressionMethod === 8) { - info("ZIP v2.0, DEFLATE: " + this.filename + " (" + this.compressedSize + " bytes)"); - this.fileData = inflate(this.fileData, this.uncompressedSize); - } - else { - err("UNSUPPORTED VERSION/FORMAT: ZIP v" + this.version + ", compression method=" + this.compressionMethod + ": " + this.filename + " (" + this.compressedSize + " bytes)"); - this.fileData = null; - } -}; - - -// Takes an ArrayBuffer of a zip file in -// returns null on error -// returns an array of DecompressedFile objects on success -var unzip = function(arrayBuffer) { - postMessage(new bitjs.archive.UnarchiveStartEvent()); - - currentFilename = ""; - currentFileNumber = 0; - currentBytesUnarchivedInFile = 0; - currentBytesUnarchived = 0; - totalUncompressedBytesInArchive = 0; - totalFilesInArchive = 0; - currentBytesUnarchived = 0; - - var bstream = new bitjs.io.ByteStream(arrayBuffer); - // detect local file header signature or return null - if (bstream.peekNumber(4) === zLocalFileHeaderSignature) { - var localFiles = []; - // loop until we don't see any more local files - while (bstream.peekNumber(4) === zLocalFileHeaderSignature) { - var oneLocalFile = new ZipLocalFile(bstream); - // this should strip out directories/folders - if (oneLocalFile && oneLocalFile.uncompressedSize > 0 && oneLocalFile.fileData) { - localFiles.push(oneLocalFile); - totalUncompressedBytesInArchive += oneLocalFile.uncompressedSize; - } - } - totalFilesInArchive = localFiles.length; - - // got all local files, now sort them - localFiles.sort(function(a, b) { - var aname = a.filename.toLowerCase(); - var bname = b.filename.toLowerCase(); - return aname > bname ? 1 : -1; - }); - - // archive extra data record - if (bstream.peekNumber(4) === zArchiveExtraDataSignature) { - info(" Found an Archive Extra Data Signature"); - - // skipping this record for now - bstream.readNumber(4); - var archiveExtraFieldLength = bstream.readNumber(4); - bstream.readString(archiveExtraFieldLength); - } - - // central directory structure - // TODO: handle the rest of the structures (Zip64 stuff) - if (bstream.peekNumber(4) === zCentralFileHeaderSignature) { - info(" Found a Central File Header"); - - // read all file headers - while (bstream.peekNumber(4) === zCentralFileHeaderSignature) { - bstream.readNumber(4); // signature - bstream.readNumber(2); // version made by - bstream.readNumber(2); // version needed to extract - bstream.readNumber(2); // general purpose bit flag - bstream.readNumber(2); // compression method - bstream.readNumber(2); // last mod file time - bstream.readNumber(2); // last mod file date - bstream.readNumber(4); // crc32 - bstream.readNumber(4); // compressed size - bstream.readNumber(4); // uncompressed size - var fileNameLength = bstream.readNumber(2); // file name length - var extraFieldLength = bstream.readNumber(2); // extra field length - var fileCommentLength = bstream.readNumber(2); // file comment length - bstream.readNumber(2); // disk number start - bstream.readNumber(2); // internal file attributes - bstream.readNumber(4); // external file attributes - bstream.readNumber(4); // relative offset of local header - - bstream.readString(fileNameLength); // file name - bstream.readString(extraFieldLength); // extra field - bstream.readString(fileCommentLength); // file comment - } - } - - // digital signature - if (bstream.peekNumber(4) === zDigitalSignatureSignature) { - info(" Found a Digital Signature"); - - bstream.readNumber(4); - var sizeOfSignature = bstream.readNumber(2); - bstream.readString(sizeOfSignature); // digital signature data - } - - // report # files and total length - if (localFiles.length > 0) { - postProgress(); - } - - // now do the unzipping of each file - for (var i = 0; i < localFiles.length; ++i) { - var localfile = localFiles[i]; - - // update progress - currentFilename = localfile.filename; - currentFileNumber = i; - currentBytesUnarchivedInFile = 0; - - // actually do the unzipping - localfile.unzip(); - - if (localfile.fileData !== null) { - postMessage(new bitjs.archive.UnarchiveExtractEvent(localfile)); - postProgress(); - } - } - postProgress(); - postMessage(new bitjs.archive.UnarchiveFinishEvent()); - } -}; - -// returns a table of Huffman codes -// each entry's index is its code and its value is a JavaScript object -// containing {length: 6, symbol: X} -function getHuffmanCodes(bitLengths) { - // ensure bitLengths is an array containing at least one element - if (typeof bitLengths !== typeof [] || bitLengths.length < 1) { - err("Error! getHuffmanCodes() called with an invalid array"); - return null; - } - - // Reference: http://tools.ietf.org/html/rfc1951#page-8 - var numLengths = bitLengths.length, - blCount = [], - MAX_BITS = 1; - - // Step 1: count up how many codes of each length we have - for (var i = 0; i < numLengths; ++i) { - var len = bitLengths[i]; - // test to ensure each bit length is a positive, non-zero number - if (typeof len !== typeof 1 || len < 0) { - err("bitLengths contained an invalid number in getHuffmanCodes(): " + len + " of type " + (typeof len)); - return null; - } - // increment the appropriate bitlength count - if (blCount[len] === undefined) blCount[len] = 0; - // a length of zero means this symbol is not participating in the huffman coding - if (len > 0) blCount[len]++; - - if (len > MAX_BITS) MAX_BITS = len; - } - - // Step 2: Find the numerical value of the smallest code for each code length - var nextCode = [], - code = 0; - for (var bits = 1; bits <= MAX_BITS; ++bits) { - var len = bits-1; - // ensure undefined lengths are zero - if (blCount[len] == undefined) blCount[len] = 0; - code = (code + blCount[bits-1]) << 1; - nextCode[bits] = code; - } - - // Step 3: Assign numerical values to all codes - var table = {}, tableLength = 0; - for (var n = 0; n < numLengths; ++n) { - var len = bitLengths[n]; - if (len !== 0) { - table[nextCode[len]] = { length: len, symbol: n }; //, bitstring: binaryValueToString(nextCode[len],len) }; - tableLength++; - nextCode[len]++; - } - } - table.maxLength = tableLength; - - return table; -} - -/* - The Huffman codes for the two alphabets are fixed, and are not - represented explicitly in the data. The Huffman code lengths - for the literal/length alphabet are: - - Lit Value Bits Codes - --------- ---- ----- - 0 - 143 8 00110000 through - 10111111 - 144 - 255 9 110010000 through - 111111111 - 256 - 279 7 0000000 through - 0010111 - 280 - 287 8 11000000 through - 11000111 -*/ -// fixed Huffman codes go from 7-9 bits, so we need an array whose index can hold up to 9 bits -var fixedHCtoLiteral = null; -var fixedHCtoDistance = null; -function getFixedLiteralTable() { - // create once - if (!fixedHCtoLiteral) { - var bitlengths = new Array(288); - for (var i = 0; i <= 143; ++i) bitlengths[i] = 8; - for (var i = 144; i <= 255; ++i) bitlengths[i] = 9; - for (var i = 256; i <= 279; ++i) bitlengths[i] = 7; - for (var i = 280; i <= 287; ++i) bitlengths[i] = 8; - - // get huffman code table - fixedHCtoLiteral = getHuffmanCodes(bitlengths); - } - return fixedHCtoLiteral; -} -function getFixedDistanceTable() { - // create once - if (!fixedHCtoDistance) { - var bitlengths = new Array(32); - for (var i = 0; i < 32; ++i) { - bitlengths[i] = 5; - } - - // get huffman code table - fixedHCtoDistance = getHuffmanCodes(bitlengths); - } - return fixedHCtoDistance; -} - -// extract one bit at a time until we find a matching Huffman Code -// then return that symbol -function decodeSymbol(bstream, hcTable) { - var code = 0, len = 0; - // var match = false; - - // loop until we match - for (;;) { - // read in next bit - var bit = bstream.readBits(1); - code = (code<<1) | bit; - ++len; - - // check against Huffman Code table and break if found - if (hcTable.hasOwnProperty(code) && hcTable[code].length == len) { - - break; - } - if (len > hcTable.maxLength) { - err("Bit stream out of sync, didn't find a Huffman Code, length was " + len + - " and table only max code length of " + hcTable.maxLength); - break; - } - } - return hcTable[code].symbol; -} - - -var CodeLengthCodeOrder = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; - /* - Extra Extra Extra - Code Bits Length(s) Code Bits Lengths Code Bits Length(s) - ---- ---- ------ ---- ---- ------- ---- ---- ------- - 257 0 3 267 1 15,16 277 4 67-82 - 258 0 4 268 1 17,18 278 4 83-98 - 259 0 5 269 2 19-22 279 4 99-114 - 260 0 6 270 2 23-26 280 4 115-130 - 261 0 7 271 2 27-30 281 5 131-162 - 262 0 8 272 2 31-34 282 5 163-194 - 263 0 9 273 3 35-42 283 5 195-226 - 264 0 10 274 3 43-50 284 5 227-257 - 265 1 11,12 275 3 51-58 285 0 258 - 266 1 13,14 276 3 59-66 - - */ -var LengthLookupTable = [ - [0, 3], [0, 4], [0, 5], [0, 6], - [0, 7], [0, 8], [0, 9], [0, 10], - [1, 11], [1, 13], [1, 15], [1, 17], - [2, 19], [2, 23], [2, 27], [2, 31], - [3, 35], [3, 43], [3, 51], [3, 59], - [4, 67], [4, 83], [4, 99], [4, 115], - [5, 131], [5, 163], [5, 195], [5, 227], - [0, 258] -]; - /* - Extra Extra Extra - Code Bits Dist Code Bits Dist Code Bits Distance - ---- ---- ---- ---- ---- ------ ---- ---- -------- - 0 0 1 10 4 33-48 20 9 1025-1536 - 1 0 2 11 4 49-64 21 9 1537-2048 - 2 0 3 12 5 65-96 22 10 2049-3072 - 3 0 4 13 5 97-128 23 10 3073-4096 - 4 1 5,6 14 6 129-192 24 11 4097-6144 - 5 1 7,8 15 6 193-256 25 11 6145-8192 - 6 2 9-12 16 7 257-384 26 12 8193-12288 - 7 2 13-16 17 7 385-512 27 12 12289-16384 - 8 3 17-24 18 8 513-768 28 13 16385-24576 - 9 3 25-32 19 8 769-1024 29 13 24577-32768 - */ -var DistLookupTable = [ - [0, 1], [0, 2], [0, 3], [0, 4], - [1, 5], [1, 7], - [2, 9], [2, 13], - [3, 17], [3, 25], - [4, 33], [4, 49], - [5, 65], [5, 97], - [6, 129], [6, 193], - [7, 257], [7, 385], - [8, 513], [8, 769], - [9, 1025], [9, 1537], - [10, 2049], [10, 3073], - [11, 4097], [11, 6145], - [12, 8193], [12, 12289], - [13, 16385], [13, 24577] -]; - -function inflateBlockData(bstream, hcLiteralTable, hcDistanceTable, buffer) { - /* - loop (until end of block code recognized) - decode literal/length value from input stream - if value < 256 - copy value (literal byte) to output stream - otherwise - if value = end of block (256) - break from loop - otherwise (value = 257..285) - decode distance from input stream - - move backwards distance bytes in the output - stream, and copy length bytes from this - position to the output stream. - */ - var numSymbols = 0, blockSize = 0; - for (;;) { - var symbol = decodeSymbol(bstream, hcLiteralTable); - ++numSymbols; - if (symbol < 256) { - // copy literal byte to output - buffer.insertByte(symbol); - blockSize++; - } - else { - // end of block reached - if (symbol === 256) { - break; - } - else { - var lengthLookup = LengthLookupTable[symbol-257], - length = lengthLookup[1] + bstream.readBits(lengthLookup[0]), - distLookup = DistLookupTable[decodeSymbol(bstream, hcDistanceTable)], - distance = distLookup[1] + bstream.readBits(distLookup[0]); - - // now apply length and distance appropriately and copy to output - - // TODO: check that backward distance < data.length? - - // http://tools.ietf.org/html/rfc1951#page-11 - // "Note also that the referenced string may overlap the current - // position; for example, if the last 2 bytes decoded have values - // X and Y, a string reference with - // adds X,Y,X,Y,X to the output stream." - // - // loop for each character - var ch = buffer.ptr - distance; - blockSize += length; - if(length > distance) { - var data = buffer.data; - while (length--) { - buffer.insertByte(data[ch++]); - } - } else { - buffer.insertBytes(buffer.data.subarray(ch, ch + length)) - } - - } // length-distance pair - } // length-distance pair or end-of-block - } // loop until we reach end of block - return blockSize; -} - -// {Uint8Array} compressedData A Uint8Array of the compressed file data. -// compression method 8 -// deflate: http://tools.ietf.org/html/rfc1951 -function inflate(compressedData, numDecompressedBytes) { - // Bit stream representing the compressed data. - var bstream = new bitjs.io.BitStream(compressedData.buffer, - false /* rtl */, - compressedData.byteOffset, - compressedData.byteLength); - var buffer = new bitjs.io.ByteBuffer(numDecompressedBytes); - var numBlocks = 0; - var blockSize = 0; - - // block format: http://tools.ietf.org/html/rfc1951#page-9 - do { - var bFinal = bstream.readBits(1); - var bType = bstream.readBits(2); - blockSize = 0; - ++numBlocks; - // no compression - if (bType == 0) { - // skip remaining bits in this byte - while (bstream.bitPtr != 0) bstream.readBits(1); - var len = bstream.readBits(16), - nlen = bstream.readBits(16); - // TODO: check if nlen is the ones-complement of len? - - if(len > 0) buffer.insertBytes(bstream.readBytes(len)); - blockSize = len; - } - // fixed Huffman codes - else if(bType === 1) { - blockSize = inflateBlockData(bstream, getFixedLiteralTable(), getFixedDistanceTable(), buffer); - } - // dynamic Huffman codes - else if(bType === 2) { - var numLiteralLengthCodes = bstream.readBits(5) + 257; - var numDistanceCodes = bstream.readBits(5) + 1, - numCodeLengthCodes = bstream.readBits(4) + 4; - - // populate the array of code length codes (first de-compaction) - var codeLengthsCodeLengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - for (var i = 0; i < numCodeLengthCodes; ++i) { - codeLengthsCodeLengths[ CodeLengthCodeOrder[i] ] = bstream.readBits(3); - } - - // get the Huffman Codes for the code lengths - var codeLengthsCodes = getHuffmanCodes(codeLengthsCodeLengths); - - // now follow this mapping - /* - 0 - 15: Represent code lengths of 0 - 15 - 16: Copy the previous code length 3 - 6 times. - The next 2 bits indicate repeat length - (0 = 3, ... , 3 = 6) - Example: Codes 8, 16 (+2 bits 11), - 16 (+2 bits 10) will expand to - 12 code lengths of 8 (1 + 6 + 5) - 17: Repeat a code length of 0 for 3 - 10 times. - (3 bits of length) - 18: Repeat a code length of 0 for 11 - 138 times - (7 bits of length) - */ - // to generate the true code lengths of the Huffman Codes for the literal - // and distance tables together - var literalCodeLengths = []; - var prevCodeLength = 0; - while (literalCodeLengths.length < numLiteralLengthCodes + numDistanceCodes) { - var symbol = decodeSymbol(bstream, codeLengthsCodes); - if (symbol <= 15) { - literalCodeLengths.push(symbol); - prevCodeLength = symbol; - } - else if (symbol === 16) { - var repeat = bstream.readBits(2) + 3; - while (repeat--) { - literalCodeLengths.push(prevCodeLength); - } - } - else if (symbol === 17) { - var repeat = bstream.readBits(3) + 3; - while (repeat--) { - literalCodeLengths.push(0); - } - } - else if (symbol === 18) { - var repeat = bstream.readBits(7) + 11; - while (repeat--) { - literalCodeLengths.push(0); - } - } - } - - // now split the distance code lengths out of the literal code array - var distanceCodeLengths = literalCodeLengths.splice(numLiteralLengthCodes, numDistanceCodes); - - // now generate the true Huffman Code tables using these code lengths - var hcLiteralTable = getHuffmanCodes(literalCodeLengths), - hcDistanceTable = getHuffmanCodes(distanceCodeLengths); - blockSize = inflateBlockData(bstream, hcLiteralTable, hcDistanceTable, buffer); - } - // error - else { - err("Error! Encountered deflate block of type 3"); - return null; - } - - // update progress - currentBytesUnarchivedInFile += blockSize; - currentBytesUnarchived += blockSize; - postProgress(); - - } while (bFinal !== 1); - // we are done reading blocks if the bFinal bit was set for this block - - // return the buffer data bytes - return buffer.data; -} - -// event.data.file has the ArrayBuffer. -onmessage = function(event) { - unzip(event.data.file, true); -}; diff --git a/cps/templates/config_edit.html b/cps/templates/config_edit.html index cd8c321c..a8dddef5 100644 --- a/cps/templates/config_edit.html +++ b/cps/templates/config_edit.html @@ -76,8 +76,7 @@ + autocomplete="off">
  • {{_('Best rated Books')}}
  • @@ -88,6 +87,12 @@
    + {% if rarfile_support %} +
    + + +
    + {% endif %}
    diff --git a/cps/templates/readcbr.html b/cps/templates/readcbr.html index 4893e038..cf2753d2 100644 --- a/cps/templates/readcbr.html +++ b/cps/templates/readcbr.html @@ -13,11 +13,11 @@ - + diff --git a/cps/ub.py b/cps/ub.py index 7b1f92ba..4c9159a4 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -296,6 +296,7 @@ class Settings(Base): config_goodreads_api_key = Column(String) config_goodreads_api_secret = Column(String) config_mature_content_tags = Column(String) # type: str + config_rarfile_location = Column(String) def __repr__(self): pass @@ -357,6 +358,7 @@ class Config: self.config_goodreads_api_key = data.config_goodreads_api_key self.config_goodreads_api_secret = data.config_goodreads_api_secret self.config_mature_content_tags = data.config_mature_content_tags + self.config_rarfile_location = data.config_rarfile_location @property def get_main_dir(self): @@ -487,6 +489,13 @@ def migrate_Database(): conn = engine.connect() conn.execute("ALTER TABLE book_shelf_link ADD column 'order' INTEGER DEFAULT 1") session.commit() + try: + session.query(exists().where(Settings.config_rarfile_location)).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_rarfile_location` String DEFAULT ''") + session.commit() try: create = False session.query(exists().where(User.sidebar_view)).scalar() diff --git a/cps/web.py b/cps/web.py index 8f6c9046..ec002fc8 100755 --- a/cps/web.py +++ b/cps/web.py @@ -24,6 +24,12 @@ try: except ImportError: pass # We're not using Python 3 +try: + import rarfile + rar_support=True +except ImportError: + rar_support=False + import mimetypes import logging from logging.handlers import RotatingFileHandler @@ -51,6 +57,7 @@ from flask_babel import Babel from flask_babel import gettext as _ import requests import zipfile +import tarfile from werkzeug.security import generate_password_hash, check_password_hash from werkzeug.datastructures import Headers from babel import Locale as LC @@ -908,6 +915,122 @@ def get_metadata_calibre_companion(uuid): return "" +@app.route("/ajax/getcomic///") +@login_required +def get_comic_book(book_id, book_format, page): + book = db.session.query(db.Books).filter(db.Books.id == book_id).first() + if not book: + return "" + else: + for bookformat in book.data: + if bookformat.format.lower() == book_format.lower(): + cbr_file = os.path.join(config.config_calibre_dir, book.path, bookformat.name) + "." + book_format + if book_format == "cbr": + if rar_support == True: + rarfile.UNRAR_TOOL = config.config_rarfile_location + try: + rf = rarfile.RarFile(cbr_file) + rarNames = rf.namelist() + extractedfile="data:image/png;base64," + (rf.read(rarNames[page])).encode('base64') + fileData={"name": rarNames[page],"page":page, "last":rarNames.__len__()-1, "content": extractedfile} + except: + return "" + # rarfile not valid + # ToDo: error handling + else: + # no support means return nothing + return "" + if book_format == "cbz": + zf = zipfile.ZipFile(cbr_file) + zipNames=zf.namelist() + extractedfile="data:image/png;base64," + (zf.read(zipNames[page])).encode('base64') + fileData={"name": zipNames[page],"page":page, "last":zipNames.__len__()-1, "content": extractedfile} + + if book_format == "cbt": + tf = tarfile.TarFile(u'D:\\zip\\test.cbt') + tarNames=tf.getnames() + extractedfile="data:image/png;base64," + (tf.extractfile(tarNames[page]).read()).encode('base64') + fileData={"name": tarNames[page],"page":page, "last":tarNames.__len__()-1, "content": extractedfile} + return make_response(json.dumps(fileData)) + +@app.route("/ajax/toggleread/", methods=['POST']) +@login_required +def toggle_read(book_id): + book = ub.session.query(ub.ReadBook).filter(ub.and_(ub.ReadBook.user_id == int(current_user.id), + ub.ReadBook.book_id == book_id)).first() + if book: + book.is_read = not book.is_read + else: + readBook = ub.ReadBook() + readBook.user_id = int(current_user.id) + readBook.book_id = book_id + readBook.is_read = True + book = readBook + ub.session.merge(book) + ub.session.commit() + return "" + + +@app.route('/ajax/verify_token', methods=['POST']) +@remote_login_required +def token_verified(): + token = request.form['token'] + auth_token = ub.session.query(ub.RemoteAuthToken).filter(ub.RemoteAuthToken.auth_token == token).first() + + data = {} + + # Token not found + if auth_token is None: + data['status'] = 'error' + data['message'] = _(u"Token not found") + + # Token expired + elif datetime.datetime.now() > auth_token.expiration: + ub.session.delete(auth_token) + ub.session.commit() + + data['status'] = 'error' + data['message'] = _(u"Token has expired") + + elif not auth_token.verified: + data['status'] = 'not_verified' + + else: + user = ub.session.query(ub.User).filter(ub.User.id == auth_token.user_id).first() + login_user(user) + + ub.session.delete(auth_token) + ub.session.commit() + + data['status'] = 'success' + flash(_(u"you are now logged in as: '%(nickname)s'", nickname=user.nickname), category="success") + + response = make_response(json.dumps(data, ensure_ascii=false)) + response.headers["Content-Type"] = "application/json; charset=utf-8" + + return response + + +@app.route("/ajax/bookmark//", methods=['POST']) +@login_required +def bookmark(book_id, book_format): + bookmark_key = request.form["bookmark"] + ub.session.query(ub.Bookmark).filter(ub.and_(ub.Bookmark.user_id == int(current_user.id), + ub.Bookmark.book_id == book_id, + ub.Bookmark.format == book_format)).delete() + if not bookmark_key: + ub.session.commit() + return "", 204 + + bookmark = ub.Bookmark(user_id=current_user.id, + book_id=book_id, + format=book_format, + bookmark_key=bookmark_key) + ub.session.merge(bookmark) + ub.session.commit() + return "", 201 + + @app.route("/get_authors_json", methods=['GET', 'POST']) @login_required_if_no_ano def get_authors_json(): @@ -1297,22 +1420,6 @@ def category(book_id, page): title=_(u"Category: %(name)s", name=name)) -@app.route("/ajax/toggleread/", methods=['POST']) -@login_required -def toggle_read(book_id): - book = ub.session.query(ub.ReadBook).filter(ub.and_(ub.ReadBook.user_id == int(current_user.id), - ub.ReadBook.book_id == book_id)).first() - if book: - book.is_read = not book.is_read - else: - readBook = ub.ReadBook() - readBook.user_id = int(current_user.id) - readBook.book_id = book_id - readBook.is_read = True - book = readBook - ub.session.merge(book) - ub.session.commit() - return "" @app.route("/book/") @@ -1356,24 +1463,6 @@ def show_book(book_id): return redirect(url_for("index")) -@app.route("/ajax/bookmark//", methods=['POST']) -@login_required -def bookmark(book_id, book_format): - bookmark_key = request.form["bookmark"] - ub.session.query(ub.Bookmark).filter(ub.and_(ub.Bookmark.user_id == int(current_user.id), - ub.Bookmark.book_id == book_id, - ub.Bookmark.format == book_format)).delete() - if not bookmark_key: - ub.session.commit() - return "", 204 - - bookmark = ub.Bookmark(user_id=current_user.id, - book_id=book_id, - format=book_format, - bookmark_key=bookmark_key) - ub.session.merge(bookmark) - ub.session.commit() - return "", 201 @app.route("/admin") @@ -1858,14 +1947,15 @@ def read_book(book_id, book_format): elif book_format.lower() == "txt": return render_title_template('readtxt.html', txtfile=book_id, title=_(u"Read a Book")) else: - for fileext in ["cbr","cbt","cbz"]: + if rar_support == True: + extensionList = ["cbr","cbt","cbz"] + else: + extensionList = ["cbt","cbz"] + for fileext in extensionList: if book_format.lower() == fileext: - all_name = str(book_id) + "/" + book.data[0].name + "." + fileext - tmp_file = os.path.join(book_dir, book.data[0].name) + "." + fileext - if not os.path.exists(all_name): - cbr_file = os.path.join(config.config_calibre_dir, book.path, book.data[0].name) + "." + fileext - copyfile(cbr_file, tmp_file) - return render_title_template('readcbr.html', comicfile=all_name, title=_(u"Read a Book")) + return render_title_template('readcbr.html', comicfile=book_id, extension=fileext, title=_(u"Read a Book")) + else: + flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error") @app.route("/download//") @@ -2021,44 +2111,6 @@ def verify_token(token): return redirect(url_for('index')) -@app.route('/ajax/verify_token', methods=['POST']) -@remote_login_required -def token_verified(): - token = request.form['token'] - auth_token = ub.session.query(ub.RemoteAuthToken).filter(ub.RemoteAuthToken.auth_token == token).first() - - data = {} - - # Token not found - if auth_token is None: - data['status'] = 'error' - data['message'] = _(u"Token not found") - - # Token expired - elif datetime.datetime.now() > auth_token.expiration: - ub.session.delete(auth_token) - ub.session.commit() - - data['status'] = 'error' - data['message'] = _(u"Token has expired") - - elif not auth_token.verified: - data['status'] = 'not_verified' - - else: - user = ub.session.query(ub.User).filter(ub.User.id == auth_token.user_id).first() - login_user(user) - - ub.session.delete(auth_token) - ub.session.commit() - - data['status'] = 'success' - flash(_(u"you are now logged in as: '%(nickname)s'", nickname=user.nickname), category="success") - - response = make_response(json.dumps(data, ensure_ascii=false)) - response.headers["Content-Type"] = "application/json; charset=utf-8" - - return response @app.route('/send/') @@ -2480,6 +2532,12 @@ def configuration_helper(origin): if "config_mature_content_tags" in to_save: content.config_mature_content_tags = to_save["config_mature_content_tags"].strip() + # Rarfile Content configuration + # ToDo check: location valid + if "config_rarfile_location" in to_save: + content.config_rarfile_location = to_save["config_rarfile_location"].strip() + + content.config_default_role = 0 if "admin_role" in to_save: content.config_default_role = content.config_default_role + ub.ROLE_ADMIN @@ -2510,13 +2568,15 @@ def configuration_helper(origin): except e: flash(e, category="error") return render_title_template("config_edit.html", content=config, origin=origin, gdrive=gdrive_support, - goodreads=goodreads_support, title=_(u"Basic Configuration")) + goodreads=goodreads_support, rarfile_support=rar_support, + title=_(u"Basic Configuration")) if db_change: reload(db) if not db.setup_db(): flash(_(u'DB location is not valid, please enter correct path'), category="error") return render_title_template("config_edit.html", content=config, origin=origin, gdrive=gdrive_support, - goodreads=goodreads_support, title=_(u"Basic Configuration")) + goodreads=goodreads_support, rarfile_support=rar_support, + title=_(u"Basic Configuration")) if reboot_required: # db.engine.dispose() # ToDo verify correct ub.session.close() @@ -2530,7 +2590,8 @@ def configuration_helper(origin): success = True return render_title_template("config_edit.html", origin=origin, success=success, content=config, show_authenticate_google_drive=not is_gdrive_ready(), gdrive=gdrive_support, - goodreads=goodreads_support, title=_(u"Basic Configuration")) + goodreads=goodreads_support, rarfile_support=rar_support, + title=_(u"Basic Configuration")) @app.route("/admin/user/new", methods=["GET", "POST"]) diff --git a/optional-requirements.txt b/optional-requirements.txt index cf743dbb..fe37ed61 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -13,3 +13,4 @@ six==1.10.0 uritemplate==3.0.0 goodreads>=0.3.2 python-Levenshtein>=0.12.0 +rarfile>=2.7 From 9f8cbe8c1f7035820437000683dcd60e338f2b89 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 19 Nov 2017 13:20:59 +0100 Subject: [PATCH 020/180] Merge enhanced UI from ytilis repro --- cps/static/css/kthoom.css | 142 ++++++++++++++++++++------ cps/static/js/kthoom.js | 199 ++++++++++++++++++++++++------------- cps/templates/readcbr.html | 120 ++++++++++++++++++++-- 3 files changed, 354 insertions(+), 107 deletions(-) diff --git a/cps/static/css/kthoom.css b/cps/static/css/kthoom.css index a6b41a32..061d171b 100644 --- a/cps/static/css/kthoom.css +++ b/cps/static/css/kthoom.css @@ -1,27 +1,58 @@ body { background: #444; - overflow: hidden; + overflow-x: hidden; + overflow-y: auto; color: white; font-family: sans-serif; margin: 0px; } -.main { - position: re; - left: 5px; - overflow: hidden; - right: 5px; +#main { text-align: center; - top: 5px; + z-index: 2; +} + +#sidebar a, +#sidebar ul, +#sidebar li, +#sidebar li img { + max-width: 100%; + text-align: center; +} + +#sidebar a { + display: inline-block; + position: relative; + cursor: pointer; +} + +#sidebar li img { + display: block; + max-height: 200px; +} + +#sidebar li img + span { + position: absolute; + bottom: 0; + right: 0; + padding: 2px; + min-width: 25px; + line-height: 25px; + background: #6b6b6b; + border-top-left-radius: 5px; +} + +#sidebar #panels { + z-index: 1; } #progress { position: absolute; display: inline; - left: 90px; - right: 160px; + left: 20%; + right: 20%; height: 20px; - margin-top: 1px; + margin-top: 4px; text-align: right; } @@ -29,6 +60,10 @@ body { display: none !important; } +#mainContent { + overflow: auto; +} + #mainText { text-align: left; width: 90%; @@ -42,29 +77,9 @@ body { word-wrap: break-word; } -#mainImage{ - margin-top: 32px; -} - -#titlebar.main { - opacity: 0; - position: absolute; - top: 0; - height: 30px; - left: 0; - right: 0; - background-color: black; - padding-bottom: 70px; - -webkit-transition: opacity 0.2s ease; - -moz-transition: opacity 0.2s ease; - transition: opacity 0.2s ease; - background: -moz-linear-gradient(top, rgba(0,2,34,1) 0%, rgba(0,1,24,1) 30%, rgba(0,0,0,0) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,2,34,1)), color-stop(30%,rgba(0,1,24,1)), color-stop(100%,rgba(0,0,0,0))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(0,2,34,1) 0%,rgba(0,1,24,1) 30%,rgba(0,0,0,0) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(0,2,34,1) 0%,rgba(0,1,24,1) 30%,rgba(0,0,0,0) 100%); /* Opera11.10+ */ - background: -ms-linear-gradient(top, rgba(0,2,34,1) 0%,rgba(0,1,24,1) 30%,rgba(0,0,0,0) 100%); /* IE10+ */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000222', endColorstr='#00000000',GradientType=0 ); /* IE6-9 */ - background: linear-gradient(top, rgba(0,2,34,1) 0%,rgba(0,1,24,1) 30%,rgba(0,0,0,0) 100%); /* W3C */ +#titlebar { + min-height: 25px; + height: auto; } #prev { @@ -100,6 +115,67 @@ body { color: #000; } +th, td { + padding: 5px; +} + +th { + text-align: right; + vertical-align: top; +} + +.modal { + /* Makes the modal responsive. Note sure if this should be moved to main.css */ + margin: 0; + max-width: 96%; + transform: translate(-50%, -50%); +} + +.md-content { + min-height: 320px; + height: auto; +} + +.md-content > div { + overflow: hidden; +} + +.md-content > div p { + padding: 5px 0; +} + +.settings-column { + float: left; + min-width: 35%; + padding-bottom: 10px; +} +.inputs { + margin: -5px; +} + +.inputs input { + vertical-align: middle; +} +.inputs label { + display: inline-block; + margin: 5px; + white-space: nowrap; +} + +.dark-theme #main { + background-color: #000; +} +.dark-theme #titlebar { + color: #DDD; +} + +.dark-theme #titlebar a:active { + color: #FFF; +} + +.dark-theme .overlay { + background-color: rgba(0,0,0,0.8); +} diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 0dd41322..72c1d04d 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -55,9 +55,6 @@ kthoom.Key = { RIGHT_SQUARE_BRACKET: 221 }; -// The rotation orientation of the comic. -kthoom.rotateTimes = 0; - // global variables var unarchiver = null; var currentImage = 0; @@ -66,33 +63,45 @@ var imageFilenames = []; var totalImages = 0; var lastCompletion = 0; -var hflip = false, vflip = false, fitMode = kthoom.Key.B; +var settings = { + hflip: false, + vflip: false, + rotateTimes: 0, + fitMode: kthoom.Key.B, + theme: 'light' +}; + var canKeyNext = true, canKeyPrev = true; kthoom.saveSettings = function() { - localStorage.kthoomSettings = JSON.stringify({ - rotateTimes: kthoom.rotateTimes, - hflip: hflip, - vflip: vflip, - fitMode: fitMode - }); + localStorage.kthoomSettings = JSON.stringify(settings); }; kthoom.loadSettings = function() { try { - if (localStorage.kthoomSettings.length < 10){ + if (!localStorage.kthoomSettings){ return; } - var s = JSON.parse(localStorage.kthoomSettings); - kthoom.rotateTimes = s.rotateTimes; - hflip = s.hflip; - vflip = s.vflip; - fitMode = s.fitMode; + + $.extend(settings, JSON.parse(localStorage.kthoomSettings)); + + kthoom.setSettings(); } catch (err) { alert("Error load settings"); } }; +kthoom.setSettings = function() { + // Set settings control values + $.each(settings, function(key, value) { + if (typeof value === "boolean") { + $('input[name='+key+']').prop('checked', value); + } else { + $('input[name='+key+']').val([value]); + } + }); +}; + var createURLFromArray = function(array, mimeType) { var offset = array.byteOffset, len = array.byteLength; var url; @@ -279,6 +288,17 @@ function loadFromArrayBuffer(ab) { if (imageFilenames.indexOf(f.filename) === -1) { imageFilenames.push(f.filename); imageFiles.push(new kthoom.ImageFile(f)); + + // add thumbnails to the TOC list + $('#thumbnails').append( + "
  • \ + \ + \ + "+ imageFiles.length +" \ + \ +
  • " + ); + //} } var percentage = (ab.page+1) / (ab.last+1); totalImages = ab.last+1; @@ -304,6 +324,11 @@ function updatePage() { } else { setImage("loading"); } + + $('body').toggleClass('dark-theme', settings.theme === 'dark'); + + kthoom.setSettings(); + kthoom.saveSettings(); } function setImage(url) { @@ -359,22 +384,22 @@ function setImage(url) { w = img.width, sw = w, sh = h; - kthoom.rotateTimes = (4 + kthoom.rotateTimes) % 4; + settings.rotateTimes = (4 + settings.rotateTimes) % 4; x.save(); - if (kthoom.rotateTimes % 2 === 1) { + if (settings.rotateTimes % 2 === 1) { sh = w; sw = h; } canvas.height = sh; canvas.width = sw; x.translate(sw / 2, sh / 2); - x.rotate(Math.PI / 2 * kthoom.rotateTimes); + x.rotate(Math.PI / 2 * settings.rotateTimes); x.translate(-w / 2, -h / 2); - if (vflip) { + if (settings.vflip) { x.scale(1, -1); x.translate(0, -h); } - if (hflip) { + if (settings.hflip) { x.scale(-1, 1); x.translate(-w, 0); } @@ -418,19 +443,19 @@ function updateScale(clear) { mainImageStyle.height = ""; mainImageStyle.maxWidth = ""; mainImageStyle.maxHeight = ""; - var maxheight = innerHeight - 15; - if (!/main/.test(getElem("titlebar").className)) { - maxheight -= 25; - } - if (clear || fitMode === kthoom.Key.N) { - } else if (fitMode === kthoom.Key.B) { + var maxheight = innerHeight - 50; + + if (clear || settings.fitMode === kthoom.Key.N) { + } else if (settings.fitMode === kthoom.Key.B) { mainImageStyle.maxWidth = "100%"; mainImageStyle.maxHeight = maxheight + "px"; - } else if (fitMode === kthoom.Key.H) { + } else if (settings.fitMode === kthoom.Key.H) { mainImageStyle.height = maxheight + "px"; - } else if (fitMode === kthoom.Key.W) { + } else if (settings.fitMode === kthoom.Key.W) { mainImageStyle.width = "100%"; } + $('#mainContent').css({maxHeight: maxheight + 5}); + kthoom.setSettings(); kthoom.saveSettings(); } @@ -446,50 +471,53 @@ function keyHandler(evt) { if (evt.ctrlKey || evt.shiftKey || evt.metaKey) return; switch (code) { case kthoom.Key.LEFT: - if (canKeyPrev) showPrevPage(); + showPrevPage(); break; case kthoom.Key.RIGHT: - if (canKeyNext) showNextPage(); + showNextPage(); break; case kthoom.Key.L: - kthoom.rotateTimes--; - if (kthoom.rotateTimes < 0) { - kthoom.rotateTimes = 3; + settings.rotateTimes--; + if (settings.rotateTimes < 0) { + settings.rotateTimes = 3; } updatePage(); break; case kthoom.Key.R: - kthoom.rotateTimes++; - if (kthoom.rotateTimes > 3) { - kthoom.rotateTimes = 0; + settings.rotateTimes++; + if (settings.rotateTimes > 3) { + settings.rotateTimes = 0; } updatePage(); break; case kthoom.Key.F: - if (!hflip && !vflip) { - hflip = true; - } else if (hflip === true) { - vflip = true; - hflip = false; - } else if (vflip === true) { - vflip = false; + if (!settings.hflip && !settings.vflip) { + settings.hflip = true; + } else if (settings.hflip === true && settings.vflip === true) { + settings.vflip = false; + settings.hflip = false; + } else if (settings.hflip === true) { + settings.vflip = true; + settings.hflip = false; + } else if (settings.vflip === true) { + settings.hflip = true; } updatePage(); break; case kthoom.Key.W: - fitMode = kthoom.Key.W; + settings.fitMode = kthoom.Key.W; updateScale(); break; case kthoom.Key.H: - fitMode = kthoom.Key.H; + settings.fitMode = kthoom.Key.H; updateScale(); break; case kthoom.Key.B: - fitMode = kthoom.Key.B; + settings.fitMode = kthoom.Key.B; updateScale(); break; case kthoom.Key.N: - fitMode = kthoom.Key.N; + settings.fitMode = kthoom.Key.N; updateScale(); break; default: @@ -520,35 +548,70 @@ function init(fileid) { request.open("GET", fileid); request.responseType = "json"; request.fileid=fileid.substring(0,fileid.length - 2); - request.addEventListener("load",ImageLoadCallback);/* function(event) { - var jso=request.response; - if (jso.page!=jso.length) - { - // var secRequest = new XMLHttpRequest(); - request.open("GET", fileid + "/../"+(jso.page+1)); - request.send(); - //secRequest.responseType = "json"; - //finished; - } - loadFromArrayBuffer(jso); - - // var byteArray = new Uint8Array(request.response); - // if you want to access the bytes: - });*/ + request.addEventListener("load",ImageLoadCallback); request.send(); - kthoom.initProgressMeter(); document.body.className += /AppleWebKit/.test(navigator.userAgent) ? " webkit" : ""; - updateScale(true); kthoom.loadSettings(); + updateScale(true); $(document).keydown(keyHandler); $(window).resize(function() { - var f = (screen.width - innerWidth < 4 && screen.height - innerHeight < 4); - getElem("titlebar").className = f ? "main" : ""; updateScale(); }); + // Open TOC menu + $("#slider").click(function(evt) { + $('#sidebar').toggleClass('open'); + $('#main').toggleClass('closed'); + $(this).toggleClass('icon-menu icon-right'); + }); + + // Open Settings modal + $("#setting").click(function(evt) { + $("#settings-modal").toggleClass('md-show'); + }); + + // On Settings input change + $("#settings input").on("change", function(evt){ + // Get either the checked boolean or the assigned value + var value = this.type === 'checkbox' ? this.checked : this.value; + + // If it's purely numeric, parse it to an integer + value = /^\d+$/.test(value) ? parseInt(value) : value; + + settings[this.name] = value; + updatePage(); + updateScale(); + }); + + // Close modal + $(".closer, .overlay").click(function(evt) { + $(".md-show").removeClass('md-show'); + }); + + // TOC thumbnail pagination + $('#thumbnails').on("click", "a", function(evt) { + currentImage = $(this).data('page') - 1; + updatePage(); + }); + + // Fullscreen mode + if (typeof screenfull !== "undefined") { + $('#fullscreen').click(function(evt) { + screenfull.toggle($("#container")[0]) + }); + + if (screenfull.raw) { + var $button = $('#fullscreen'); + document.addEventListener(screenfull.raw.fullscreenchange,function(){ + screenfull.isFullscreen + ? $button.addClass("icon-resize-small").removeClass("icon-resize-full") + : $button.addClass("icon-resize-full").removeClass("icon-resize-small") + }); + } + } + $("#mainImage").click(function(evt) { // Firefox does not support offsetX/Y so we have to manually calculate // where the user clicked in the image. @@ -564,7 +627,7 @@ function init(fileid) { // Determine if the user clicked/tapped the left side or the // right side of the page. var clickedPrev = false; - switch (kthoom.rotateTimes) { + switch (settings.rotateTimes) { case 0: clickedPrev = clickX < (comicWidth / 2); break; diff --git a/cps/templates/readcbr.html b/cps/templates/readcbr.html index cf2753d2..59296a7a 100644 --- a/cps/templates/readcbr.html +++ b/cps/templates/readcbr.html @@ -7,13 +7,14 @@ + + + - - - + + - -
    -
    + + +
    +
    +
    + Menu +
    +
    + +   –   + +
    + +
    +
    @@ -40,5 +68,85 @@
    + + +
    + From ec12181803a578c543b5a12cf703a7c4748b83aa Mon Sep 17 00:00:00 2001 From: Andriy Zasypkin Date: Sun, 19 Nov 2017 08:49:40 -0500 Subject: [PATCH 021/180] added python3 compatibility for comic reader --- cps/web.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/cps/web.py b/cps/web.py index ec002fc8..7fb64aa5 100755 --- a/cps/web.py +++ b/cps/web.py @@ -99,6 +99,9 @@ try: except ImportError: from flask_login.__about__ import __version__ as flask_loginVersion +if sys.version_info.major >= 3: + import codecs + import time current_milli_time = lambda: int(round(time.time() * 1000)) @@ -931,25 +934,38 @@ def get_comic_book(book_id, book_format, page): try: rf = rarfile.RarFile(cbr_file) rarNames = rf.namelist() - extractedfile="data:image/png;base64," + (rf.read(rarNames[page])).encode('base64') + if sys.version_info.major >= 3: + b64 = codecs.encode(rf.read(rarNames[page]), 'base64').decode() + else: + b64 = rf.read(rarNames[page]).encode('base64') + extractedfile="data:image/png;base64," + b64 fileData={"name": rarNames[page],"page":page, "last":rarNames.__len__()-1, "content": extractedfile} except: return "" # rarfile not valid # ToDo: error handling else: + # no support means return nothing return "" if book_format == "cbz": zf = zipfile.ZipFile(cbr_file) zipNames=zf.namelist() - extractedfile="data:image/png;base64," + (zf.read(zipNames[page])).encode('base64') + if sys.version_info.major >= 3: + b64 = codecs.encode(zf.read(zipNames[page]), 'base64').decode() + else: + b64 = zf.read(zipNames[page]).encode('base64') + extractedfile="data:image/png;base64," + b64 fileData={"name": zipNames[page],"page":page, "last":zipNames.__len__()-1, "content": extractedfile} if book_format == "cbt": tf = tarfile.TarFile(u'D:\\zip\\test.cbt') tarNames=tf.getnames() - extractedfile="data:image/png;base64," + (tf.extractfile(tarNames[page]).read()).encode('base64') + if sys.version_info.major >= 3: + b64 = codecs.encode(tf.extractfile(tarNames[page]).read(), 'base64').decode() + else: + b64 = (tf.extractfile(tarNames[page]).read()).encode('base64') + extractedfile="data:image/png;base64," + bs fileData={"name": tarNames[page],"page":page, "last":tarNames.__len__()-1, "content": extractedfile} return make_response(json.dumps(fileData)) From 57567850739de958a03d1bfd5042e28bff178e65 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 19 Nov 2017 18:08:55 +0100 Subject: [PATCH 022/180] Error handling rarfiles --- cps/helper.py | 19 ++++ cps/static/js/kthoom.js | 192 +++++++++++++++++++++------------------ cps/templates/stats.html | 4 + cps/web.py | 23 ++++- 4 files changed, 146 insertions(+), 92 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index 52e96b6c..60c9e5fc 100755 --- a/cps/helper.py +++ b/cps/helper.py @@ -508,3 +508,22 @@ class Updater(threading.Thread): logging.getLogger('cps.web').debug("Could not remove:" + item_path) shutil.rmtree(source, ignore_errors=True) +def check_unrar(unrarLocation): + error = False + if os.path.exists(unrarLocation): + try: + p = subprocess.Popen(unrarLocation, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p.wait() + for lines in p.stdout.readlines(): + if isinstance(lines, bytes): + lines = lines.decode('utf-8') + value=re.search('UNRAR (.*) freeware', lines) + if value: + version = value.group(1) + except Exception: + error = True + version=_(u'Excecution permissions missing') + else: + version = _(u'Unrar binary file not found') + error=True + return (error, version) diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 72c1d04d..032f5220 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -289,16 +289,15 @@ function loadFromArrayBuffer(ab) { imageFilenames.push(f.filename); imageFiles.push(new kthoom.ImageFile(f)); - // add thumbnails to the TOC list - $('#thumbnails').append( - "
  • \ - \ - \ - "+ imageFiles.length +" \ - \ -
  • " - ); - //} + // add thumbnails to the TOC list + $('#thumbnails').append( + "
  • \ + \ + \ + "+ imageFiles.length +" \ + \ +
  • " + ); } var percentage = (ab.page+1) / (ab.last+1); totalImages = ab.last+1; @@ -339,81 +338,93 @@ function setImage(url) { updateScale(true); canvas.width = innerWidth - 100; canvas.height = 200; - x.fillStyle = "red"; - x.font = "50px sans-serif"; + x.fillStyle = "black"; + x.textAlign="center"; + x.font = "24px sans-serif"; x.strokeStyle = "black"; - x.fillText("Loading Page #" + (currentImage + 1), 100, 100); + x.fillText("Loading Page #" + (currentImage + 1), innerWidth/2, 100); } else { - if ($("body").css("scrollHeight") / innerHeight > 1) { - $("body").css("overflowY", "scroll"); - } - - var img = new Image(); - img.onerror = function() { - canvas.width = innerWidth - 100; - canvas.height = 300; + if (url === "error") { updateScale(true); - x.fillStyle = "orange"; - x.font = "50px sans-serif"; + canvas.width = innerWidth - 100; + canvas.height = 200; + x.fillStyle = "black"; + x.textAlign="center"; + x.font = "24px sans-serif"; x.strokeStyle = "black"; - x.fillText("Page #" + (currentImage + 1) + " (" + - imageFiles[currentImage].filename + ")", 100, 100); - x.fillStyle = "red"; - x.fillText("Is corrupt or not an image", 100, 200); - - var xhr = new XMLHttpRequest(); - if (/(html|htm)$/.test(imageFiles[currentImage].filename)) { - xhr.open("GET", url, true); - xhr.onload = function() { - //document.getElementById('mainText').style.display = ''; - $("#mainText").css("display", ""); - $("#mainText").innerHTML(""); - } - xhr.send(null); - } else if (!/(jpg|jpeg|png|gif)$/.test(imageFiles[currentImage].filename) && imageFiles[currentImage].data.uncompressedSize < 10 * 1024) { - xhr.open("GET", url, true); - xhr.onload = function() { - $("#mainText").css("display", ""); - $("#mainText").innerText(xhr.responseText); - }; - xhr.send(null); - } - }; - img.onload = function() { - var h = img.height, - w = img.width, - sw = w, - sh = h; - settings.rotateTimes = (4 + settings.rotateTimes) % 4; - x.save(); - if (settings.rotateTimes % 2 === 1) { - sh = w; - sw = h; - } - canvas.height = sh; - canvas.width = sw; - x.translate(sw / 2, sh / 2); - x.rotate(Math.PI / 2 * settings.rotateTimes); - x.translate(-w / 2, -h / 2); - if (settings.vflip) { - x.scale(1, -1); - x.translate(0, -h); - } - if (settings.hflip) { - x.scale(-1, 1); - x.translate(-w, 0); + x.fillText("Unable to decompress image #" + (currentImage + 1), innerWidth/2, 100); + } else { + if ($("body").css("scrollHeight") / innerHeight > 1) { + $("body").css("overflowY", "scroll"); } - canvas.style.display = "none"; - scrollTo(0, 0); - x.drawImage(img, 0, 0); - updateScale(); + var img = new Image(); + img.onerror = function() { + canvas.width = innerWidth - 100; + canvas.height = 300; + updateScale(true); + x.fillStyle = "black"; + x.font = "50px sans-serif"; + x.strokeStyle = "black"; + x.fillText("Page #" + (currentImage + 1) + " (" + + imageFiles[currentImage].filename + ")", innerWidth/2, 100); + x.fillStyle = "black"; + x.fillText("Is corrupt or not an image", innerWidth/2, 200); + + var xhr = new XMLHttpRequest(); + if (/(html|htm)$/.test(imageFiles[currentImage].filename)) { + xhr.open("GET", url, true); + xhr.onload = function() { + //document.getElementById('mainText').style.display = ''; + $("#mainText").css("display", ""); + $("#mainText").innerHTML(""); + } + xhr.send(null); + } else if (!/(jpg|jpeg|png|gif)$/.test(imageFiles[currentImage].filename) && imageFiles[currentImage].data.uncompressedSize < 10 * 1024) { + xhr.open("GET", url, true); + xhr.onload = function() { + $("#mainText").css("display", ""); + $("#mainText").innerText(xhr.responseText); + }; + xhr.send(null); + } + }; + img.onload = function() { + var h = img.height, + w = img.width, + sw = w, + sh = h; + settings.rotateTimes = (4 + settings.rotateTimes) % 4; + x.save(); + if (settings.rotateTimes % 2 === 1) { + sh = w; + sw = h; + } + canvas.height = sh; + canvas.width = sw; + x.translate(sw / 2, sh / 2); + x.rotate(Math.PI / 2 * settings.rotateTimes); + x.translate(-w / 2, -h / 2); + if (settings.vflip) { + x.scale(1, -1); + x.translate(0, -h); + } + if (settings.hflip) { + x.scale(-1, 1); + x.translate(-w, 0); + } + canvas.style.display = "none"; + scrollTo(0, 0); + x.drawImage(img, 0, 0); + + updateScale(); - canvas.style.display = ""; - $("body").css("overflowY", ""); - x.restore(); - }; - img.src = url; + canvas.style.display = ""; + $("body").css("overflowY", ""); + x.restore(); + }; + img.src = url; + } } } @@ -528,19 +539,26 @@ function keyHandler(evt) { function ImageLoadCallback(event) { var jso=this.response; - if (jso.page !== jso.last) - { - // var secRequest = new XMLHttpRequest(); - this.open("GET", this.fileid + "/"+(jso.page+1)); - this.addEventListener("load",ImageLoadCallback); - this.send(); + // Unable to decompress file, or no response from server + if (jso === null){ + setImage("error"); } else { - var diff = ((new Date).getTime() - start)/1000; - console.log('Transfer done in ' + diff + 's'); + if (jso.page !== jso.last) + { + // var secRequest = new XMLHttpRequest(); + this.open("GET", this.fileid + "/"+(jso.page+1)); + this.addEventListener("load",ImageLoadCallback); + this.send(); + } + else + { + var diff = ((new Date).getTime() - start)/1000; + console.log('Transfer done in ' + diff + 's'); + } + loadFromArrayBuffer(jso); } - loadFromArrayBuffer(jso); } function init(fileid) { start = (new Date).getTime(); diff --git a/cps/templates/stats.html b/cps/templates/stats.html index 7be8f613..a313e1c4 100644 --- a/cps/templates/stats.html +++ b/cps/templates/stats.html @@ -42,6 +42,10 @@ Kindlegen {{versions['KindlegenVersion']}} + + Unrar + {{versions['unrarVersion']}} + ImageMagick {{versions['ImageVersion']}} diff --git a/cps/web.py b/cps/web.py index ec002fc8..f14a601d 100755 --- a/cps/web.py +++ b/cps/web.py @@ -934,10 +934,11 @@ def get_comic_book(book_id, book_format, page): extractedfile="data:image/png;base64," + (rf.read(rarNames[page])).encode('base64') fileData={"name": rarNames[page],"page":page, "last":rarNames.__len__()-1, "content": extractedfile} except: - return "" # rarfile not valid - # ToDo: error handling + app.logger.error('Unrar binary not found unable to decompress file ' + cbr_file) + return "" else: + app.logger.info('Unrar is not supported please install python rarfile extension') # no support means return nothing return "" if book_format == "cbz": @@ -1507,7 +1508,13 @@ def stats(): versions['requests'] = requests.__version__ versions['pysqlite'] = db.engine.dialect.dbapi.version versions['sqlite'] = db.engine.dialect.dbapi.sqlite_version - + if rar_support: + rarVersion = helper.check_unrar(config.config_rarfile_location) + if not rarVersion[0]: + versions['unrarVersion'] = rarVersion[1] + else: + versions['unrarVersion'] = _('not installed') + app.logger.info(rarVersion[1]) return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=versions, categorycounter=categorys, seriecounter=series, title=_(u"Statistics")) @@ -2535,8 +2542,14 @@ def configuration_helper(origin): # Rarfile Content configuration # ToDo check: location valid if "config_rarfile_location" in to_save: - content.config_rarfile_location = to_save["config_rarfile_location"].strip() - + check = helper.check_unrar(to_save["config_rarfile_location"].strip()) + if not check[0] : + content.config_rarfile_location = to_save["config_rarfile_location"].strip() + else: + flash(check[1], category="error") + return render_title_template("config_edit.html", content=config, origin=origin, gdrive=gdrive_support, + goodreads=goodreads_support, rarfile_support=rar_support, + title=_(u"Basic Configuration")) content.config_default_role = 0 if "admin_role" in to_save: From e7b6963afdec2433ae5bfa91529361f9748b0946 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sun, 19 Nov 2017 20:37:43 +0100 Subject: [PATCH 023/180] Small improvements for comic reader calls --- cps/web.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/cps/web.py b/cps/web.py index f14a601d..2e0aec9e 100755 --- a/cps/web.py +++ b/cps/web.py @@ -920,7 +920,7 @@ def get_metadata_calibre_companion(uuid): def get_comic_book(book_id, book_format, page): book = db.session.query(db.Books).filter(db.Books.id == book_id).first() if not book: - return "" + return "", 204 else: for bookformat in book.data: if bookformat.format.lower() == book_format.lower(): @@ -935,12 +935,12 @@ def get_comic_book(book_id, book_format, page): fileData={"name": rarNames[page],"page":page, "last":rarNames.__len__()-1, "content": extractedfile} except: # rarfile not valid - app.logger.error('Unrar binary not found unable to decompress file ' + cbr_file) - return "" + app.logger.error('Unrar binary not found, or unable to decompress file ' + cbr_file) + return "", 204 else: app.logger.info('Unrar is not supported please install python rarfile extension') # no support means return nothing - return "" + return "", 204 if book_format == "cbz": zf = zipfile.ZipFile(cbr_file) zipNames=zf.namelist() @@ -1961,9 +1961,8 @@ def read_book(book_id, book_format): for fileext in extensionList: if book_format.lower() == fileext: return render_title_template('readcbr.html', comicfile=book_id, extension=fileext, title=_(u"Read a Book")) - else: - flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error") - + flash(_(u"Error opening eBook. File does not exist or file is not accessible."), category="error") + return redirect(url_for("index")) @app.route("/download//") @login_required_if_no_ano From aae9e285a83e7f1a829431966a283adfbb31e2f6 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Mon, 20 Nov 2017 21:54:55 +0100 Subject: [PATCH 024/180] Code cosmetics --- cps/static/js/edit_books.js | 2 +- cps/static/js/kthoom.js | 203 +++++++++++++++++------------------- 2 files changed, 98 insertions(+), 107 deletions(-) diff --git a/cps/static/js/edit_books.js b/cps/static/js/edit_books.js index 96fcc848..f4b42e2c 100644 --- a/cps/static/js/edit_books.js +++ b/cps/static/js/edit_books.js @@ -46,7 +46,7 @@ function prefixedSource(prefix, query, cb, bhAdapter) { function getPath() { var jsFileLocation = $("script[src*=edit_books]").attr("src"); // the js file path - return jsFileLocation.substr(0,jsFileLocation.search("/static/js/edit_books.js")); // the js folder path + return jsFileLocation.substr(0, jsFileLocation.search("/static/js/edit_books.js")); // the js folder path } var authors = new Bloodhound({ diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 032f5220..5fd8a06a 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -15,9 +15,8 @@ * Typed Arrays: http://www.khronos.org/registry/typedarray/specs/latest/#6 */ -/* global bitjs */ -var start=0; +var start = 0; if (window.opera) { window.console.log = function(str) { @@ -56,7 +55,7 @@ kthoom.Key = { }; // global variables -var unarchiver = null; +// var unarchiver = null; var currentImage = 0; var imageFiles = []; var imageFilenames = []; @@ -68,10 +67,10 @@ var settings = { vflip: false, rotateTimes: 0, fitMode: kthoom.Key.B, - theme: 'light' + theme: "light" }; -var canKeyNext = true, canKeyPrev = true; +// var canKeyNext = true, canKeyPrev = true; kthoom.saveSettings = function() { localStorage.kthoomSettings = JSON.stringify(settings); @@ -79,7 +78,7 @@ kthoom.saveSettings = function() { kthoom.loadSettings = function() { try { - if (!localStorage.kthoomSettings){ + if (!localStorage.kthoomSettings) { return; } @@ -95,14 +94,14 @@ kthoom.setSettings = function() { // Set settings control values $.each(settings, function(key, value) { if (typeof value === "boolean") { - $('input[name='+key+']').prop('checked', value); + $("input[name=" + key + "]").prop("checked", value); } else { - $('input[name='+key+']').val([value]); + $("input[name=" + key + "]").val([value]); } }); }; -var createURLFromArray = function(array, mimeType) { +/* var createURLFromArray = function(array, mimeType) { var offset = array.byteOffset, len = array.byteLength; var url; var blob; @@ -129,20 +128,13 @@ var createURLFromArray = function(array, mimeType) { } return URL.createObjectURL(blob); -}; +};*/ // Stores an image filename and its data: URI. -// TODO: investigate if we really need to store as base64 (leave off ;base64 and just -// non-safe URL characters are encoded as %xx ?) -// This would save 25% on memory since base64-encoded strings are 4/3 the size of the binary kthoom.ImageFile = function(file) { this.filename = file.filename; - /*var fileExtension = file.filename.split(".").pop().toLowerCase(); - var mimeType = fileExtension === "png" ? "image/png" : - (fileExtension === "jpg" || fileExtension === "jpeg") ? "image/jpeg" : - fileExtension === "gif" ? "image/gif" : null;*/ - this.dataURI = file.fileData; // createURLFromArray(file.fileData, mimeType); + this.dataURI = file.fileData; this.data = file; }; @@ -231,14 +223,14 @@ kthoom.initProgressMeter = function() { svg.appendChild(g); pdiv.appendChild(svg); - var l; + var l = 0; svg.onclick = function(e) { - for (var x = pdiv, l = 0; x !== document.documentElement; x = x.parentNode) l += x.offsetLeft; + for (var x = pdiv; x !== document.documentElement; x = x.parentNode) l += x.offsetLeft; var page = Math.max(1, Math.ceil(((e.clientX - l) / pdiv.offsetWidth) * totalImages)) - 1; currentImage = page; updatePage(); }; -} +}; kthoom.setProgressMeter = function(pct, optLabel) { pct = (pct * 100); @@ -281,26 +273,26 @@ kthoom.setProgressMeter = function(pct, optLabel) { } function loadFromArrayBuffer(ab) { - var f=[]; - f.fileData=ab.content; - f.filename=ab.name; + var f = []; + f.fileData = ab.content; + f.filename = ab.name; // add any new pages based on the filename if (imageFilenames.indexOf(f.filename) === -1) { imageFilenames.push(f.filename); imageFiles.push(new kthoom.ImageFile(f)); // add thumbnails to the TOC list - $('#thumbnails').append( - "
  • \ - \ - \ - "+ imageFiles.length +" \ - \ -
  • " + $("#thumbnails").append( + "
  • " + + "" + + "" + + "" + imageFiles.length + "" + + "" + + "
  • " ); } - var percentage = (ab.page+1) / (ab.last+1); - totalImages = ab.last+1; + var percentage = (ab.page + 1) / (ab.last + 1); + totalImages = ab.last + 1; kthoom.setProgressMeter(percentage, "Unzipping"); lastCompletion = percentage * 100; @@ -324,7 +316,7 @@ function updatePage() { setImage("loading"); } - $('body').toggleClass('dark-theme', settings.theme === 'dark'); + $("body").toggleClass("dark-theme", settings.theme === "dark"); kthoom.setSettings(); kthoom.saveSettings(); @@ -339,20 +331,20 @@ function setImage(url) { canvas.width = innerWidth - 100; canvas.height = 200; x.fillStyle = "black"; - x.textAlign="center"; + x.textAlign = "center"; x.font = "24px sans-serif"; x.strokeStyle = "black"; - x.fillText("Loading Page #" + (currentImage + 1), innerWidth/2, 100); + x.fillText("Loading Page #" + (currentImage + 1), innerWidth / 2, 100); } else { if (url === "error") { updateScale(true); canvas.width = innerWidth - 100; canvas.height = 200; x.fillStyle = "black"; - x.textAlign="center"; + x.textAlign = "center"; x.font = "24px sans-serif"; x.strokeStyle = "black"; - x.fillText("Unable to decompress image #" + (currentImage + 1), innerWidth/2, 100); + x.fillText("Unable to decompress image #" + (currentImage + 1), innerWidth / 2, 100); } else { if ($("body").css("scrollHeight") / innerHeight > 1) { $("body").css("overflowY", "scroll"); @@ -367,15 +359,14 @@ function setImage(url) { x.font = "50px sans-serif"; x.strokeStyle = "black"; x.fillText("Page #" + (currentImage + 1) + " (" + - imageFiles[currentImage].filename + ")", innerWidth/2, 100); + imageFiles[currentImage].filename + ")", innerWidth / 2, 100); x.fillStyle = "black"; - x.fillText("Is corrupt or not an image", innerWidth/2, 200); + x.fillText("Is corrupt or not an image", innerWidth / 2, 200); var xhr = new XMLHttpRequest(); if (/(html|htm)$/.test(imageFiles[currentImage].filename)) { xhr.open("GET", url, true); xhr.onload = function() { - //document.getElementById('mainText').style.display = ''; $("#mainText").css("display", ""); $("#mainText").innerHTML(""); } @@ -465,7 +456,7 @@ function updateScale(clear) { } else if (settings.fitMode === kthoom.Key.W) { mainImageStyle.width = "100%"; } - $('#mainContent').css({maxHeight: maxheight + 5}); + $("#mainContent").css({maxHeight: maxheight + 5}); kthoom.setSettings(); kthoom.saveSettings(); } @@ -473,11 +464,11 @@ function updateScale(clear) { function keyHandler(evt) { var code = evt.keyCode; - if ($("#progress").css("display") === "none"){ + if ($("#progress").css("display") === "none") { return; } - canKeyNext = (($("body").css("offsetWidth") + $("body").css("scrollLeft")) / $("body").css("scrollWidth")) >= 1; - canKeyPrev = (scrollX <= 0); + // canKeyNext = (($("body").css("offsetWidth") + $("body").css("scrollLeft")) / $("body").css("scrollWidth")) >= 1; + // canKeyPrev = (scrollX <= 0); if (evt.ctrlKey || evt.shiftKey || evt.metaKey) return; switch (code) { @@ -540,7 +531,7 @@ function keyHandler(evt) { function ImageLoadCallback(event) { var jso=this.response; // Unable to decompress file, or no response from server - if (jso === null){ + if (jso === null) { setImage("error"); } else @@ -554,8 +545,8 @@ function ImageLoadCallback(event) { } else { - var diff = ((new Date).getTime() - start)/1000; - console.log('Transfer done in ' + diff + 's'); + var diff = ((new Date).getTime() - start) / 1000; + console.log("Transfer done in " + diff + "s"); } loadFromArrayBuffer(jso); } @@ -571,64 +562,64 @@ function init(fileid) { kthoom.initProgressMeter(); document.body.className += /AppleWebKit/.test(navigator.userAgent) ? " webkit" : ""; kthoom.loadSettings(); - updateScale(true); + updateScale(true); $(document).keydown(keyHandler); $(window).resize(function() { updateScale(); }); - // Open TOC menu - $("#slider").click(function(evt) { - $('#sidebar').toggleClass('open'); - $('#main').toggleClass('closed'); - $(this).toggleClass('icon-menu icon-right'); - }); + // Open TOC menu + $("#slider").click(function(evt) { + $("#sidebar").toggleClass("open"); + $("#main").toggleClass("closed"); + $(this).toggleClass("icon-menu icon-right"); + }); - // Open Settings modal - $("#setting").click(function(evt) { - $("#settings-modal").toggleClass('md-show'); - }); + // Open Settings modal + $("#setting").click(function(evt) { + $("#settings-modal").toggleClass("md-show"); + }); - // On Settings input change - $("#settings input").on("change", function(evt){ - // Get either the checked boolean or the assigned value - var value = this.type === 'checkbox' ? this.checked : this.value; + // On Settings input change + $("#settings input").on("change", function(evt) { + // Get either the checked boolean or the assigned value + var value = this.type === "checkbox" ? this.checked : this.value; - // If it's purely numeric, parse it to an integer - value = /^\d+$/.test(value) ? parseInt(value) : value; - - settings[this.name] = value; - updatePage(); - updateScale(); - }); + // If it's purely numeric, parse it to an integer + value = /^\d+$/.test(value) ? parseInt(value) : value; - // Close modal - $(".closer, .overlay").click(function(evt) { - $(".md-show").removeClass('md-show'); - }); + settings[this.name] = value; + updatePage(); + updateScale(); + }); - // TOC thumbnail pagination - $('#thumbnails').on("click", "a", function(evt) { - currentImage = $(this).data('page') - 1; - updatePage(); + // Close modal + $(".closer, .overlay").click(function(evt) { + $(".md-show").removeClass("md-show"); + }); + + // TOC thumbnail pagination + $("#thumbnails").on("click", "a", function(evt) { + currentImage = $(this).data("page") - 1; + updatePage(); + }); + + // Fullscreen mode + if (typeof screenfull !== "undefined") { + $('#fullscreen').click(function(evt) { + screenfull.toggle($("#container")[0]) }); - // Fullscreen mode - if (typeof screenfull !== "undefined") { - $('#fullscreen').click(function(evt) { - screenfull.toggle($("#container")[0]) + if (screenfull.raw) { + var $button = $("#fullscreen"); + document.addEventListener(screenfull.raw.fullscreenchange,function() { + screenfull.isFullscreen + ? $button.addClass("icon-resize-small").removeClass("icon-resize-full") + : $button.addClass("icon-resize-full").removeClass("icon-resize-small") }); - - if (screenfull.raw) { - var $button = $('#fullscreen'); - document.addEventListener(screenfull.raw.fullscreenchange,function(){ - screenfull.isFullscreen - ? $button.addClass("icon-resize-small").removeClass("icon-resize-full") - : $button.addClass("icon-resize-full").removeClass("icon-resize-small") - }); - } } + } $("#mainImage").click(function(evt) { // Firefox does not support offsetX/Y so we have to manually calculate @@ -639,25 +630,25 @@ function init(fileid) { var comicHeight = evt.target.clientHeight; var offsetX = (mainContentWidth - comicWidth) / 2; var offsetY = (mainContentHeight - comicHeight) / 2; - var clickX = !!evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); - var clickY = !!evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); + var clickX = evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); + var clickY = evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); // Determine if the user clicked/tapped the left side or the // right side of the page. var clickedPrev = false; - switch (settings.rotateTimes) { - case 0: - clickedPrev = clickX < (comicWidth / 2); - break; - case 1: - clickedPrev = clickY < (comicHeight / 2); - break; - case 2: - clickedPrev = clickX > (comicWidth / 2); - break; - case 3: - clickedPrev = clickY > (comicHeight / 2); - break; + switch (settings.rotateTimes) { + case 0: + clickedPrev = clickX < (comicWidth / 2); + break; + case 1: + clickedPrev = clickY < (comicHeight / 2); + break; + case 2: + clickedPrev = clickX > (comicWidth / 2); + break; + case 3: + clickedPrev = clickY > (comicHeight / 2); + break; } if (clickedPrev) { showPrevPage(); From 0943d508763fce1f78a652a085af8d4d411ac57b Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Tue, 21 Nov 2017 12:46:03 +0100 Subject: [PATCH 025/180] Code cosmetics Bugfix click on progressbar --- cps/static/js/kthoom.js | 92 +++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 44 deletions(-) diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 5fd8a06a..28d6ecd2 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -15,6 +15,7 @@ * Typed Arrays: http://www.khronos.org/registry/typedarray/specs/latest/#6 */ +/* global screenfull */ var start = 0; @@ -36,7 +37,7 @@ function getElem(id) { return document.getElementById(id); } -if (window.kthoom === undefined) { +if (typeof window.kthoom === "undefined" ) { kthoom = {}; } @@ -223,8 +224,8 @@ kthoom.initProgressMeter = function() { svg.appendChild(g); pdiv.appendChild(svg); - var l = 0; svg.onclick = function(e) { + var l = 0; for (var x = pdiv; x !== document.documentElement; x = x.parentNode) l += x.offsetLeft; var page = Math.max(1, Math.ceil(((e.clientX - l) / pdiv.offsetWidth) * totalImages)) - 1; currentImage = page; @@ -300,7 +301,7 @@ function loadFromArrayBuffer(ab) { if (imageFiles.length === currentImage + 1) { updatePage(); } -} +}; function updatePage() { @@ -408,7 +409,7 @@ function setImage(url) { scrollTo(0, 0); x.drawImage(img, 0, 0); - updateScale(); + updateScale(false); canvas.style.display = ""; $("body").css("overflowY", ""); @@ -447,14 +448,21 @@ function updateScale(clear) { mainImageStyle.maxHeight = ""; var maxheight = innerHeight - 50; - if (clear || settings.fitMode === kthoom.Key.N) { - } else if (settings.fitMode === kthoom.Key.B) { - mainImageStyle.maxWidth = "100%"; - mainImageStyle.maxHeight = maxheight + "px"; - } else if (settings.fitMode === kthoom.Key.H) { - mainImageStyle.height = maxheight + "px"; - } else if (settings.fitMode === kthoom.Key.W) { - mainImageStyle.width = "100%"; + if (!clear) { + switch(settings.fitMode) { + case kthoom.Key.B: + mainImageStyle.maxWidth = "100%"; + mainImageStyle.maxHeight = maxheight + "px"; + break; + case kthoom.Key.H: + mainImageStyle.height = maxheight + "px"; + break; + case kthoom.Key.W: + mainImageStyle.width = "100%"; + break; + default: + break; + } } $("#mainContent").css({maxHeight: maxheight + 5}); kthoom.setSettings(); @@ -508,19 +516,19 @@ function keyHandler(evt) { break; case kthoom.Key.W: settings.fitMode = kthoom.Key.W; - updateScale(); + updateScale(false); break; case kthoom.Key.H: settings.fitMode = kthoom.Key.H; - updateScale(); + updateScale(false); break; case kthoom.Key.B: settings.fitMode = kthoom.Key.B; - updateScale(); + updateScale(false); break; case kthoom.Key.N: settings.fitMode = kthoom.Key.N; - updateScale(); + updateScale(false); break; default: //console.log('KeyCode = ' + code); @@ -528,26 +536,22 @@ function keyHandler(evt) { } } -function ImageLoadCallback(event) { - var jso=this.response; +function ImageLoadCallback() { + var jso = this.response; // Unable to decompress file, or no response from server if (jso === null) { setImage("error"); - } - else - { - if (jso.page !== jso.last) - { - // var secRequest = new XMLHttpRequest(); - this.open("GET", this.fileid + "/"+(jso.page+1)); - this.addEventListener("load",ImageLoadCallback); + } else { + if (jso.page !== jso.last) { + this.open("GET", this.fileid + "/" + (jso.page + 1)); + this.addEventListener("load", ImageLoadCallback); this.send(); } - else + /*else { var diff = ((new Date).getTime() - start) / 1000; console.log("Transfer done in " + diff + "s"); - } + }*/ loadFromArrayBuffer(jso); } } @@ -556,8 +560,8 @@ function init(fileid) { var request = new XMLHttpRequest(); request.open("GET", fileid); request.responseType = "json"; - request.fileid=fileid.substring(0,fileid.length - 2); - request.addEventListener("load",ImageLoadCallback); + request.fileid = fileid.substring(0, fileid.length - 2); + request.addEventListener("load", ImageLoadCallback); request.send(); kthoom.initProgressMeter(); document.body.className += /AppleWebKit/.test(navigator.userAgent) ? " webkit" : ""; @@ -566,23 +570,23 @@ function init(fileid) { $(document).keydown(keyHandler); $(window).resize(function() { - updateScale(); + updateScale(false); }); // Open TOC menu - $("#slider").click(function(evt) { + $("#slider").click(function() { $("#sidebar").toggleClass("open"); $("#main").toggleClass("closed"); $(this).toggleClass("icon-menu icon-right"); }); // Open Settings modal - $("#setting").click(function(evt) { + $("#setting").click(function() { $("#settings-modal").toggleClass("md-show"); }); // On Settings input change - $("#settings input").on("change", function(evt) { + $("#settings input").on("change", function() { // Get either the checked boolean or the assigned value var value = this.type === "checkbox" ? this.checked : this.value; @@ -591,32 +595,32 @@ function init(fileid) { settings[this.name] = value; updatePage(); - updateScale(); + updateScale(false); }); // Close modal - $(".closer, .overlay").click(function(evt) { + $(".closer, .overlay").click(function() { $(".md-show").removeClass("md-show"); }); // TOC thumbnail pagination - $("#thumbnails").on("click", "a", function(evt) { + $("#thumbnails").on("click", "a", function() { currentImage = $(this).data("page") - 1; updatePage(); }); // Fullscreen mode if (typeof screenfull !== "undefined") { - $('#fullscreen').click(function(evt) { - screenfull.toggle($("#container")[0]) + $("#fullscreen").click(function(evt) { + screenfull.toggle($("#container")[0]); }); if (screenfull.raw) { var $button = $("#fullscreen"); - document.addEventListener(screenfull.raw.fullscreenchange,function() { + document.addEventListener(screenfull.raw.fullscreenchange, function() { screenfull.isFullscreen - ? $button.addClass("icon-resize-small").removeClass("icon-resize-full") - : $button.addClass("icon-resize-full").removeClass("icon-resize-small") + ? $button.addClass("icon-resize-small").removeClass("icon-resize-full") + : $button.addClass("icon-resize-full").removeClass("icon-resize-small"); }); } } @@ -630,8 +634,8 @@ function init(fileid) { var comicHeight = evt.target.clientHeight; var offsetX = (mainContentWidth - comicWidth) / 2; var offsetY = (mainContentHeight - comicHeight) / 2; - var clickX = evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); - var clickY = evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); + var clickX = !!evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); + var clickY = !!evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); // Determine if the user clicked/tapped the left side or the // right side of the page. From 03ab03f06ef1aa695037aa736e5a4ca849a00f73 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Wed, 22 Nov 2017 22:08:29 +0100 Subject: [PATCH 026/180] Code cosmetics --- cps/static/js/kthoom.js | 16 ++++++++-------- cps/web.py | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 28d6ecd2..2f82503f 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -17,7 +17,7 @@ */ /* global screenfull */ -var start = 0; +// var start = 0; if (window.opera) { window.console.log = function(str) { @@ -271,7 +271,7 @@ kthoom.setProgressMeter = function(pct, optLabel) { //getElem('nav').className = ''; getElem("progress").className = ""; } -} +}; function loadFromArrayBuffer(ab) { var f = []; @@ -301,7 +301,7 @@ function loadFromArrayBuffer(ab) { if (imageFiles.length === currentImage + 1) { updatePage(); } -}; +} function updatePage() { @@ -449,7 +449,7 @@ function updateScale(clear) { var maxheight = innerHeight - 50; if (!clear) { - switch(settings.fitMode) { + switch (settings.fitMode) { case kthoom.Key.B: mainImageStyle.maxWidth = "100%"; mainImageStyle.maxHeight = maxheight + "px"; @@ -556,7 +556,7 @@ function ImageLoadCallback() { } } function init(fileid) { - start = (new Date).getTime(); + // start = (new Date).getTime(); var request = new XMLHttpRequest(); request.open("GET", fileid); request.responseType = "json"; @@ -611,7 +611,7 @@ function init(fileid) { // Fullscreen mode if (typeof screenfull !== "undefined") { - $("#fullscreen").click(function(evt) { + $("#fullscreen").click(function() { screenfull.toggle($("#container")[0]); }); @@ -634,8 +634,8 @@ function init(fileid) { var comicHeight = evt.target.clientHeight; var offsetX = (mainContentWidth - comicWidth) / 2; var offsetY = (mainContentHeight - comicHeight) / 2; - var clickX = !!evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); - var clickY = !!evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); + var clickX = evt.offsetX ? evt.offsetX : (evt.clientX - offsetX); + var clickY = evt.offsetY ? evt.offsetY : (evt.clientY - offsetY); // Determine if the user clicked/tapped the left side or the // right side of the page. diff --git a/cps/web.py b/cps/web.py index 4ae940b3..8c5fff61 100755 --- a/cps/web.py +++ b/cps/web.py @@ -838,7 +838,7 @@ def feed_series(book_id): off = request.args.get("offset") if not off: off = 0 - entries, random, pagination = fill_indexpage((int(off) / (int(config.config_books_per_page)) + 1), + entries, __, pagination = fill_indexpage((int(off) / (int(config.config_books_per_page)) + 1), db.Books, db.Books.series.any(db.Series.id == book_id),db.Books.series_index) xml = render_title_template('feed.xml', entries=entries, pagination=pagination) response = make_response(xml) From b4aede78bcaee1e95e4b7e524e5a0771b5e907de Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Tue, 28 Nov 2017 08:54:21 +0100 Subject: [PATCH 027/180] Fix for the piping problem (#395) --- cps/helper.py | 3 ++- cps/web.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index 52e96b6c..2a85f8fc 100755 --- a/cps/helper.py +++ b/cps/helper.py @@ -281,7 +281,8 @@ def get_valid_filename(value, replace_whitespace=True): if replace_whitespace: #*+:\"/<>? are replaced by _ value = re.sub(r'[\*\+:\\\"/<>\?]+', u'_', value, flags=re.U) - + # pipe has to be replaced with comma + value = re.sub(r'[\|]+', u',', value, flags=re.U) value = value[:128] if not value: raise ValueError("Filename cannot be empty") diff --git a/cps/web.py b/cps/web.py index 8f6c9046..61122591 100755 --- a/cps/web.py +++ b/cps/web.py @@ -600,7 +600,7 @@ def modify_database_object(input_elements, db_book_object, db_object, db_session # if no element is found add it if new_element is None: if db_type == 'author': - new_element = db_object(add_element, add_element, "") + new_element = db_object(add_element, add_element.replace('|',','), "") elif db_type == 'series': new_element = db_object(add_element, add_element) elif db_type == 'custom': From f890fc155332cc1911cae2f1e3efd9142a24e697 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Wed, 29 Nov 2017 15:54:17 +0100 Subject: [PATCH 028/180] New progress bar --- cps/helper.py | 3 +- cps/static/css/kthoom.css | 37 ++++++++ cps/static/js/kthoom.js | 189 +++++-------------------------------- cps/templates/readcbr.html | 16 ++-- cps/web.py | 2 +- 5 files changed, 70 insertions(+), 177 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index 60c9e5fc..3209d4c7 100755 --- a/cps/helper.py +++ b/cps/helper.py @@ -281,7 +281,8 @@ def get_valid_filename(value, replace_whitespace=True): if replace_whitespace: #*+:\"/<>? are replaced by _ value = re.sub(r'[\*\+:\\\"/<>\?]+', u'_', value, flags=re.U) - + # pipe has to be replaced with comma + value = re.sub(r'[\|]+', u',', value, flags=re.U) value = value[:128] if not value: raise ValueError("Filename cannot be empty") diff --git a/cps/static/css/kthoom.css b/cps/static/css/kthoom.css index 061d171b..7e175de9 100644 --- a/cps/static/css/kthoom.css +++ b/cps/static/css/kthoom.css @@ -179,3 +179,40 @@ th { .dark-theme .overlay { background-color: rgba(0,0,0,0.8); } + +.view { + padding-top:0px; +} + +#Progress { + margin: auto; + width: 80%; + background-color: #ddd; + display: inline-block; + margin-top: 5px; +} + +#meter { + width: 0%; + height: 5px; + background-color: #1C5484; +} + +#meter2 { + width: 0%; + height: 15px; + background-color: #028138; +} + +#page { + text-align:left; + margin-top:-20px; + font-size:80%; + width: 0%; +} + +#progress_title { + text-align:right; + margin-top:-15px; + font-size:80%; +} diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 2f82503f..63b12ca6 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -56,12 +56,10 @@ kthoom.Key = { }; // global variables -// var unarchiver = null; var currentImage = 0; var imageFiles = []; var imageFilenames = []; var totalImages = 0; -var lastCompletion = 0; var settings = { hflip: false, @@ -71,8 +69,6 @@ var settings = { theme: "light" }; -// var canKeyNext = true, canKeyPrev = true; - kthoom.saveSettings = function() { localStorage.kthoomSettings = JSON.stringify(settings); }; @@ -102,35 +98,6 @@ kthoom.setSettings = function() { }); }; -/* var createURLFromArray = function(array, mimeType) { - var offset = array.byteOffset, len = array.byteLength; - var url; - var blob; - - // TODO: Move all this browser support testing to a common place - // and do it just once. - - // Blob constructor, see http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob. - if (typeof Blob === "function") { - blob = new Blob([array], {type: mimeType}); - } else { - throw "Browser support for Blobs is missing."; - } - - if (blob.slice) { - blob = blob.slice(offset, offset + len, mimeType); - } else { - throw "Browser support for Blobs is missing."; - } - - if ((typeof URL !== "function" && typeof URL !== "object") || - typeof URL.createObjectURL !== "function") { - throw "Browser support for Object URLs is missing"; - } - - return URL.createObjectURL(blob); -};*/ - // Stores an image filename and its data: URI. kthoom.ImageFile = function(file) { @@ -141,136 +108,32 @@ kthoom.ImageFile = function(file) { kthoom.initProgressMeter = function() { - var svgns = "http://www.w3.org/2000/svg"; - var pdiv = $("#progress")[0]; - var svg = document.createElementNS(svgns, "svg"); - svg.style.width = "100%"; - svg.style.height = "100%"; - - var defs = document.createElementNS(svgns, "defs"); - - var patt = document.createElementNS(svgns, "pattern"); - patt.id = "progress_pattern"; - patt.setAttribute("width", "30"); - patt.setAttribute("height", "20"); - patt.setAttribute("patternUnits", "userSpaceOnUse"); - - var rect = document.createElementNS(svgns, "rect"); - rect.setAttribute("width", "100%"); - rect.setAttribute("height", "100%"); - rect.setAttribute("fill", "#cc2929"); - - var poly = document.createElementNS(svgns, "polygon"); - poly.setAttribute("fill", "yellow"); - poly.setAttribute("points", "15,0 30,0 15,20 0,20"); - - patt.appendChild(rect); - patt.appendChild(poly); - defs.appendChild(patt); - - svg.appendChild(defs); - - var g = document.createElementNS(svgns, "g"); - - var outline = document.createElementNS(svgns, "rect"); - outline.setAttribute("y", "1"); - outline.setAttribute("width", "100%"); - outline.setAttribute("height", "15"); - outline.setAttribute("fill", "#777"); - outline.setAttribute("stroke", "white"); - outline.setAttribute("rx", "5"); - outline.setAttribute("ry", "5"); - g.appendChild(outline); - - var title = document.createElementNS(svgns, "text"); - title.id = "progress_title"; - title.appendChild(document.createTextNode("0%")); - title.setAttribute("y", "13"); - title.setAttribute("x", "99.5%"); - title.setAttribute("fill", "white"); - title.setAttribute("font-size", "12px"); - title.setAttribute("text-anchor", "end"); - g.appendChild(title); - - var meter = document.createElementNS(svgns, "rect"); - meter.id = "meter"; - meter.setAttribute("width", "0%"); - meter.setAttribute("height", "17"); - meter.setAttribute("fill", "url(#progress_pattern)"); - meter.setAttribute("rx", "5"); - meter.setAttribute("ry", "5"); - - var meter2 = document.createElementNS(svgns, "rect"); - meter2.id = "meter2"; - meter2.setAttribute("width", "0%"); - meter2.setAttribute("height", "17"); - meter2.setAttribute("opacity", "0.8"); - meter2.setAttribute("fill", "#007fff"); - meter2.setAttribute("rx", "5"); - meter2.setAttribute("ry", "5"); - - g.appendChild(meter); - g.appendChild(meter2); - - var page = document.createElementNS(svgns, "text"); - page.id = "page"; - page.appendChild(document.createTextNode("0/0")); - page.setAttribute("y", "13"); - page.setAttribute("x", "0.5%"); - page.setAttribute("fill", "white"); - page.setAttribute("font-size", "12px"); - g.appendChild(page); - - - svg.appendChild(g); - pdiv.appendChild(svg); - svg.onclick = function(e) { - var l = 0; - for (var x = pdiv; x !== document.documentElement; x = x.parentNode) l += x.offsetLeft; - var page = Math.max(1, Math.ceil(((e.clientX - l) / pdiv.offsetWidth) * totalImages)) - 1; + $("#Progress").removeClass("hide"); + $("#Progress").click(function(e) { + var page = Math.max(1, Math.ceil((e.offsetX / $(this).width()) * totalImages)) - 1; currentImage = page; updatePage(); - }; + }); }; -kthoom.setProgressMeter = function(pct, optLabel) { - pct = (pct * 100); - var part = 1 / totalImages; - var remain = ((pct - lastCompletion) / 100) / part; - var fract = Math.min(1, remain); - var smartpct = ((imageFiles.length / totalImages) + (fract * part)) * 100; - if (totalImages === 0) smartpct = pct; - - // + Math.min((pct - lastCompletion), 100/totalImages * 0.9 + (pct - lastCompletion - 100/totalImages)/2, 100/totalImages); - var oldval = parseFloat(getElem("meter").getAttribute("width")); - if (isNaN(oldval)) oldval = 0; - var weight = 0.5; - smartpct = ((weight * smartpct) + ((1 - weight) * oldval)); - if (pct === 100) smartpct = 100; - - if (!isNaN(smartpct)) { - getElem("meter").setAttribute("width", smartpct + "%"); +kthoom.setProgressMeter = function(optLabel) { + var pct = imageFiles.length / totalImages * 100; + if (pct === 100) { + //smartpct = 100; + getElem("progress_title").innerHTML = "Complete"; + } else { + var labelText = pct.toFixed(2) + "% " + imageFiles.length + "/" + totalImages + ""; + if (optLabel) { + labelText = optLabel + " " + labelText; + } + getElem("progress_title").innerHTML=labelText; } - var title = getElem("progress_title"); - while (title.firstChild) title.removeChild(title.firstChild); - - var labelText = pct.toFixed(2) + "% " + imageFiles.length + "/" + totalImages + ""; - if (optLabel) { - labelText = optLabel + " " + labelText; + if (!isNaN(pct)) { + getElem("meter").style.width = pct + "%"; } - title.appendChild(document.createTextNode(labelText)); - - getElem("meter2").setAttribute("width", - 100 * (totalImages === 0 ? 0 : ((currentImage + 1) / totalImages)) + "%"); - - var titlePage = getElem("page"); - while (titlePage.firstChild) titlePage.removeChild(titlePage.firstChild); - titlePage.appendChild(document.createTextNode( (currentImage + 1) + "/" + totalImages )); - if (pct > 0) { - //getElem('nav').className = ''; - getElem("progress").className = ""; - } + getElem("meter2").style.width= 100 * (totalImages === 0 ? 0 : ((currentImage + 1) / totalImages)) + "%"; + getElem("page").innerHTML=(currentImage + 1) + "/" + totalImages ; }; function loadFromArrayBuffer(ab) { @@ -292,10 +155,10 @@ function loadFromArrayBuffer(ab) { "" ); } - var percentage = (ab.page + 1) / (ab.last + 1); + // var percentage = (ab.page + 1) / (ab.last + 1); totalImages = ab.last + 1; - kthoom.setProgressMeter(percentage, "Unzipping"); - lastCompletion = percentage * 100; + kthoom.setProgressMeter("Unzipping"); + // lastCompletion = percentage * 100; // display first page if we haven't yet if (imageFiles.length === currentImage + 1) { @@ -305,12 +168,8 @@ function loadFromArrayBuffer(ab) { function updatePage() { - var title = getElem("page"); - while (title.firstChild) title.removeChild(title.firstChild); - title.appendChild(document.createTextNode( (currentImage + 1 ) + "/" + totalImages )); - - getElem("meter2").setAttribute("width", - 100 * (totalImages === 0 ? 0 : ((currentImage + 1 ) / totalImages)) + "%"); + getElem("page").innerHTML=(currentImage + 1) + "/" + totalImages ; + getElem("meter2").style.width= 100 * (totalImages === 0 ? 0 : ((currentImage + 1) / totalImages)) + "%"; if (imageFiles[currentImage]) { setImage(imageFiles[currentImage].dataURI); } else { diff --git a/cps/templates/readcbr.html b/cps/templates/readcbr.html index 59296a7a..5eefa5df 100644 --- a/cps/templates/readcbr.html +++ b/cps/templates/readcbr.html @@ -25,10 +25,10 @@ +
    +
    +
    +
    - -
    -
    diff --git a/cps/web.py b/cps/web.py index 8c5fff61..f823ec30 100755 --- a/cps/web.py +++ b/cps/web.py @@ -608,7 +608,7 @@ def modify_database_object(input_elements, db_book_object, db_object, db_session # if no element is found add it if new_element is None: if db_type == 'author': - new_element = db_object(add_element, add_element, "") + new_element = db_object(add_element, add_element.replace('|',','), "") elif db_type == 'series': new_element = db_object(add_element, add_element) elif db_type == 'custom': From f1fac282034f2a796a1678ec36a6948e883f391e Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Thu, 30 Nov 2017 16:49:46 +0100 Subject: [PATCH 029/180] Improved error handling for renaming authors and titles (changes related to filesystem and not only to database) --- cps/book_formats.py | 7 +- cps/db.py | 14 +- cps/epub.py | 4 +- cps/fb2.py | 5 +- cps/helper.py | 118 ++++--- cps/translations/de/LC_MESSAGES/messages.mo | Bin 302739 -> 303031 bytes cps/translations/de/LC_MESSAGES/messages.po | 212 ++++++------ cps/translations/es/LC_MESSAGES/messages.po | 204 +++++------ cps/translations/fr/LC_MESSAGES/messages.po | 204 +++++------ cps/translations/it/LC_MESSAGES/messages.po | 204 +++++------ cps/translations/nl/LC_MESSAGES/messages.po | 204 +++++------ cps/translations/pl/LC_MESSAGES/messages.po | 204 +++++------ cps/translations/ru/LC_MESSAGES/messages.po | 204 +++++------ .../zh_Hans_CN/LC_MESSAGES/messages.po | 204 +++++------ cps/ub.py | 22 +- cps/uploader.py | 6 +- cps/web.py | 325 +++++++++--------- messages.pot | 204 +++++------ 18 files changed, 1235 insertions(+), 1110 deletions(-) diff --git a/cps/book_formats.py b/cps/book_formats.py index 5acbc4c4..5cff0232 100644 --- a/cps/book_formats.py +++ b/cps/book_formats.py @@ -49,8 +49,8 @@ def process(tmp_file_path, original_file_name, original_file_extension): meta = epub.get_epub_info(tmp_file_path, original_file_name, original_file_extension) if ".FB2" == original_file_extension.upper() and use_fb2_meta is True: meta = fb2.get_fb2_info(tmp_file_path, original_file_extension) - except Exception as e: - logger.warning('cannot parse metadata, using default: %s', e) + except Exception as ex: + logger.warning('cannot parse metadata, using default: %s', ex) if meta and meta.title.strip() and meta.author.strip(): return meta @@ -111,6 +111,7 @@ def pdf_preview(tmp_file_path, tmp_dir): img.save(filename=os.path.join(tmp_dir, cover_file_name)) return cover_file_name + def get_versions(): if not use_generic_pdf_cover: IVersion=ImageVersion.MAGICK_VERSION @@ -120,4 +121,4 @@ def get_versions(): PVersion=PyPdfVersion else: PVersion=_(u'not installed') - return {'ImageVersion':IVersion,'PyPdfVersion':PVersion} + return {'ImageVersion': IVersion, 'PyPdfVersion': PVersion} diff --git a/cps/db.py b/cps/db.py index 7428eba1..1c274baa 100755 --- a/cps/db.py +++ b/cps/db.py @@ -26,12 +26,15 @@ def title_sort(title): title = title.replace(prep, '') + ', ' + prep return title.strip() + def lcase(s): return s.lower() + def ucase(s): return s.upper() + Base = declarative_base() books_authors_link = Table('books_authors_link', Base.metadata, @@ -64,6 +67,7 @@ books_publishers_link = Table('books_publishers_link', Base.metadata, Column('publisher', Integer, ForeignKey('publishers.id'), primary_key=True) ) + class Identifiers(Base): __tablename__ = 'identifiers' @@ -197,6 +201,7 @@ class Languages(Base): def __repr__(self): return u"".format(self.lang_code) + class Publishers(Base): __tablename__ = 'publishers' @@ -204,7 +209,7 @@ class Publishers(Base): name = Column(String) sort = Column(String) - def __init__(self, name,sort): + def __init__(self, name, sort): self.name = name self.sort = sort @@ -212,7 +217,6 @@ class Publishers(Base): return u"".format(self.name, self.sort) - class Data(Base): __tablename__ = 'data' @@ -260,7 +264,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, languages = None): + authors, tags, languages=None): self.title = title self.sort = sort self.author_sort = author_sort @@ -300,7 +304,7 @@ def setup_db(): global session global cc_classes - if config.config_calibre_dir is None or config.config_calibre_dir == u'': + if config.config_calibre_dir is None or config.config_calibre_dir == u'': content = ub.session.query(ub.Settings).first() content.config_calibre_dir = None content.db_configured = False @@ -309,7 +313,7 @@ def setup_db(): return False dbpath = os.path.join(config.config_calibre_dir, "metadata.db") - engine = create_engine('sqlite:///'+ dbpath, echo=False, isolation_level="SERIALIZABLE") + engine = create_engine('sqlite:///' + dbpath, echo=False, isolation_level="SERIALIZABLE") try: conn = engine.connect() except Exception: diff --git a/cps/epub.py b/cps/epub.py index dd9ad28b..10665576 100644 --- a/cps/epub.py +++ b/cps/epub.py @@ -12,7 +12,7 @@ def extractCover(zipFile, coverFile, coverpath, tmp_file_name): if coverFile is None: return None else: - zipCoverPath = os.path.join(coverpath , coverFile).replace('\\','/') + zipCoverPath = os.path.join(coverpath, coverFile).replace('\\', '/') cf = zipFile.read(zipCoverPath) prefix = os.path.splitext(tmp_file_name)[0] tmp_cover_name = prefix + '.' + os.path.basename(zipCoverPath) @@ -93,7 +93,7 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension): coversection = tree.xpath("/pkg:package/pkg:manifest/pkg:item[@id='"+meta_cover[0]+"']/@href", namespaces=ns) if len(coversection) > 0: filetype = coversection[0].rsplit('.', 1)[-1] - if filetype == "xhtml" or filetype == "html": #if cover is (x)html format + if filetype == "xhtml" or filetype == "html": # if cover is (x)html format markup = epubZip.read(os.path.join(coverpath, coversection[0])) markupTree = etree.fromstring(markup) # no matter xhtml or html with no namespace diff --git a/cps/fb2.py b/cps/fb2.py index 65d44848..262a084f 100644 --- a/cps/fb2.py +++ b/cps/fb2.py @@ -3,10 +3,7 @@ from lxml import etree import uploader -#try: -# from io import StringIO -#except ImportError: -# import StringIO + def get_fb2_info(tmp_file_path, original_file_extension): diff --git a/cps/helper.py b/cps/helper.py index 2a85f8fc..efb88203 100755 --- a/cps/helper.py +++ b/cps/helper.py @@ -45,7 +45,7 @@ import web try: import unidecode use_unidecode = True -except Exception as e: +except ImportError: use_unidecode = False # Global variables @@ -55,6 +55,7 @@ updater_thread = None RET_SUCCESS = 1 RET_FAIL = 0 + def update_download(book_id, user_id): check = ub.session.query(ub.Downloads).filter(ub.Downloads.user_id == user_id).filter(ub.Downloads.book_id == book_id).first() @@ -101,7 +102,7 @@ def make_mobi(book_id, calibrepath): if nextline != "\r\n": # Format of error message (kindlegen translates its output texts): # Error(prcgen):E23006: Language not recognized in metadata.The dc:Language field is mandatory.Aborting. - conv_error=re.search(".*\(.*\):(E\d+):\s(.*)",nextline) + conv_error = re.search(".*\(.*\):(E\d+):\s(.*)", nextline) # If error occoures, log in every case if conv_error: error_message = _(u"Kindlegen failed with Error %(error)s. Message: %(message)s", @@ -123,7 +124,7 @@ def make_mobi(book_id, calibrepath): else: app.logger.info("make_mobi: kindlegen failed with error while converting book") if not error_message: - error_message='kindlegen failed, no excecution permissions' + error_message = 'kindlegen failed, no excecution permissions' return error_message, RET_FAIL else: error_message = "make_mobi: epub not found: %s.epub" % file_path @@ -182,9 +183,9 @@ def send_raw_email(kindle_mail, msg): smtplib.stderr = org_stderr - except (socket.error, smtplib.SMTPRecipientsRefused, smtplib.SMTPException) as e: + except (socket.error, smtplib.SMTPRecipientsRefused, smtplib.SMTPException) as ex: app.logger.error(traceback.print_exc()) - return _("Failed to send mail: %s" % str(e)) + return _("Failed to send mail: %s" % str(ex)) return None @@ -230,8 +231,8 @@ def send_mail(book_id, kindle_mail, calibrepath): if resultCode == RET_SUCCESS: msg.attach(get_attachment(data)) else: - app.logger.error = (data) - return data #_("Could not convert epub to mobi") + app.logger.error = data + return data # _("Could not convert epub to mobi") elif 'pdf' in formats: msg.attach(get_attachment(formats['pdf'])) else: @@ -255,7 +256,7 @@ def get_attachment(file_path): return attachment except IOError: traceback.print_exc() - app.logger.error = (u'The requested file could not be read. Maybe wrong permissions?') + app.logger.error = u'The requested file could not be read. Maybe wrong permissions?' return None @@ -268,18 +269,18 @@ def get_valid_filename(value, replace_whitespace=True): value = value[:-1]+u'_' value = value.replace("/", "_").replace(":", "_").strip('\0') if use_unidecode: - value=(unidecode.unidecode(value)).strip() + value = (unidecode.unidecode(value)).strip() else: - value=value.replace(u'§',u'SS') - value=value.replace(u'ß',u'ss') + value = value.replace(u'§', u'SS') + value = value.replace(u'ß', u'ss') value = unicodedata.normalize('NFKD', value) re_slugify = re.compile('[\W\s-]', re.UNICODE) - if isinstance(value, str): #Python3 str, Python2 unicode + if isinstance(value, str): # Python3 str, Python2 unicode value = re_slugify.sub('', value).strip() else: value = unicode(re_slugify.sub('', value).strip()) if replace_whitespace: - #*+:\"/<>? are replaced by _ + # *+:\"/<>? are replaced by _ value = re.sub(r'[\*\+:\\\"/<>\?]+', u'_', value, flags=re.U) # pipe has to be replaced with comma value = re.sub(r'[\|]+', u',', value, flags=re.U) @@ -289,48 +290,66 @@ def get_valid_filename(value, replace_whitespace=True): return value + def get_sorted_author(value): - regexes = ["^(JR|SR)\.?$","^I{1,3}\.?$","^IV\.?$"] + 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]) + try: + 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]) + except Exception: + logging.getLogger('cps.web').error("Sorting author " + str(value) + "failed") + value2 = value return value2 + def delete_book(book, calibrepath): - path = os.path.join(calibrepath, book.path)#.replace('/',os.path.sep)).replace('\\',os.path.sep) + path = os.path.join(calibrepath, book.path) # .replace('/',os.path.sep)).replace('\\',os.path.sep) shutil.rmtree(path, ignore_errors=True) + +# ToDo: Implement delete book on gdrive def delete_book_gdrive(book): pass + 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) + localbook = db.session.query(db.Books).filter(db.Books.id == book_id).first() + path = os.path.join(calibrepath, localbook.path) - 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) + ")" + authordir = localbook.path.split('/')[0] + new_authordir = get_valid_filename(localbook.authors[0].name) - 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('/')[0] + '/' + new_titledir + titledir = localbook.path.split('/')[1] + new_titledir = get_valid_filename(localbook.title) + " (" + str(book_id) + ")" + if titledir != new_titledir: + try: + new_title_path = os.path.join(os.path.dirname(path), new_titledir) + os.renames(path, new_title_path) + path = new_title_path + localbook.path = localbook.path.split('/')[0] + '/' + new_titledir + except OSError as ex: + logging.getLogger('cps.web').error("Rename title from: " + path + " to " + new_title_path) + logging.getLogger('cps.web').error(ex, exc_info=True) + return _('Rename title from: "%s" to "%s" failed with error: %s' % (path, new_title_path, str(ex))) 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 + '/' + book.path.split('/')[1] - db.session.commit() + try: + new_author_path = os.path.join(os.path.join(calibrepath, new_authordir), os.path.basename(path)) + os.renames(path, new_author_path) + localbook.path = new_authordir + '/' + localbook.path.split('/')[1] + except OSError as ex: + logging.getLogger('cps.web').error("Rename author from: " + path + " to " + new_author_path) + logging.getLogger('cps.web').error(ex, exc_info=True) + return _('Rename author from: "%s" to "%s" failed with error: %s' % (path, new_title_path, str(ex))) + return False def update_dir_structure_gdrive(book_id): - db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort) + error = False book = db.session.query(db.Books).filter(db.Books.id == book_id).first() authordir = book.path.split('/')[0] @@ -340,24 +359,24 @@ def update_dir_structure_gdrive(book_id): if titledir != new_titledir: print (titledir) - gFile=gd.getFileFromEbooksFolder(web.Gdrive.Instance().drive,os.path.dirname(book.path),titledir) - gFile['title']= new_titledir + gFile = gd.getFileFromEbooksFolder(web.Gdrive.Instance().drive, os.path.dirname(book.path), titledir) + gFile['title'] = new_titledir gFile.Upload() book.path = book.path.split('/')[0] + '/' + new_titledir if authordir != new_authordir: - gFile=gd.getFileFromEbooksFolder(web.Gdrive.Instance().drive,None,authordir) + gFile = gd.getFileFromEbooksFolder(web.Gdrive.Instance().drive, None, authordir) gFile['title'] = new_authordir gFile.Upload() book.path = new_authordir + '/' + book.path.split('/')[1] + return error - db.session.commit() class Updater(threading.Thread): def __init__(self): threading.Thread.__init__(self) - self.status=0 + self.status = 0 def run(self): global global_task @@ -370,7 +389,7 @@ class Updater(threading.Thread): tmp_dir = gettempdir() z.extractall(tmp_dir) self.status = 4 - self.update_source(os.path.join(tmp_dir,os.path.splitext(fname)[0]),ub.config.get_main_dir) + self.update_source(os.path.join(tmp_dir, os.path.splitext(fname)[0]), ub.config.get_main_dir) self.status = 5 global_task = 0 db.session.close() @@ -391,8 +410,8 @@ class Updater(threading.Thread): return self.status @classmethod - def file_to_list(self, file): - return [x.strip() for x in open(file, 'r') if not x.startswith('#EXT')] + def file_to_list(self, filelist): + return [x.strip() for x in open(filelist, 'r') if not x.startswith('#EXT')] @classmethod def one_minus_two(self, one, two): @@ -401,8 +420,8 @@ class Updater(threading.Thread): @classmethod def reduce_dirs(self, delete_files, new_list): new_delete = [] - for file in delete_files: - parts = file.split(os.sep) + for filename in delete_files: + parts = filename.split(os.sep) sub = '' for part in parts: sub = os.path.join(sub, part) @@ -460,8 +479,8 @@ class Updater(threading.Thread): if change_permissions: try: os.chown(dst_file, permission.st_uid, permission.st_gid) - except Exception as e: - e = sys.exc_info() + except Exception: + # ex = sys.exc_info() old_permissions = os.stat(dst_file) logging.getLogger('cps.web').debug('Fail change permissions of ' + str(dst_file) + '. Before: ' + str(old_permissions.st_uid) + ':' + str(old_permissions.st_gid) + ' After: ' @@ -508,4 +527,3 @@ class Updater(threading.Thread): except Exception: logging.getLogger('cps.web').debug("Could not remove:" + item_path) shutil.rmtree(source, ignore_errors=True) - diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo index 9474ea9a162fb4d87d44c65acc8fc788f075ee95..d19f5e449639ade4125949586cdf8ec738073b98 100644 GIT binary patch delta 129616 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

    E@*p&UE8=i;2X09FUFc3s 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 bbM(0*hxQ)bVBoprM$W_L4Y;Igvt9llo?HA_ delta 129342 zcmYJ+dE8c0`@iwKl$1y%l2S@CR3e2+GDU`DNTL!-h~kklc8MZGl#mRG43*3&ArUe} znLBRm4D<8fFOPe%KnhShK=R>2YRVx(WGViXsf z&~PR0iZ`JHU&b1^1Rc0M^`D>id(rbv%AwU z!v@L^r91~s@M(0VFXE>7X6jd>6MU8W?^9lf#@*nLqP+&Xkj-#QtcN8Bw&KDG+s2M) z$NkX&2V+er%c6-Rc=w51&WlzmLZIqQr$;`&%k1|5Y^9 zK|3}@SJDOzcp$o^z0m{)peq}UE?^jzZ$TW5_PY*E@FsNSx29aWJ00#v13Z)tvs3>} z$}gn68146V${(b>GUYGO1$`U;O8bU?7ZcY+$8U}-uvF223lGH(=!<3#^pqbQk3k3Y zkEh}ml+VPG|W9gQ;$O>8>a?@=t-VICK*{5f>sYiP$e(Nnt|J%m4? zx2np&g>}*XP0@fmq}&EQyzS9jbpSg41azLW(H*_;U!H#_8cBtLu0$V~ap;H3z35}| zBzo#!!L9Kfbb=qyiPxbkth%miuW=j*Gxgdzp2G49&;YNbekq#B zvb2AT-pgOnz<;7!zb^GP|10V@Lldi)@-{`eRMCtJPj5@~9_@`=;o)%*`n_Njn#kkm z&OC)q_)>fgO?W9f(fjB^K8;_d{oD8}Zo>Pg;$JQdRD;)v)*7F*Pv3J>2&@tlc2)u>zY<$70!JddvR?etiQ zp7S5j59amgb5Uo5%H>zoj%fKn^xfA7?SD?nm!hfMgzn9K=&NrwHo(_6U~g<#lMcV3 zDQ-}u2vj#VMF;MR2J9A(M_=B9(TPW;etgPzp?m%ay4O#o{W)w&`K>CYVkPUTa3>m6 zE$&(e^jP&mZ^jwuO*=Q`i_k(RiI(Bn8IcF1nJB z(2PGv&%zI}@;1SNJS? zk6uJyT}#sbA-bZ~XuzM)2`j1><2FJQ-4xyOZP9za8``fuI!|YGp$B2fhVEQA;j!p| z{wWVY2Mj?I8-ez}B<*8Te?8joCN$wGXo54*70*K_T!h|=H_&)*R_FQm;=NR?Kqpug zzrkjde@5SBThu7FbQd&WS9HR|(Q&=er{W~^9$yegq6uD(o{ekK1y8NP^KYP;R2bk< zbl|*{pT%P>1G>@;H!dcsi%!rG9lt#qw^iH?UHBfQbl5u;2gE~C z-y`K-=nDFxiJqGJA#oUb>n=nm8kzdbQ@#p4%-5j{n2aub~J>`$bMd*r`$4}yFG@-B11^kfuKhYgrSC;3$>Lx`-o1hstKnLuM2G~7zjQgPz zc0>DhN5}O-PyK1=xDi;s73hSQqy4WzclJi>nZM#zE*x-oI?S+v@?-HSbjuc^1DD2S z=#G38*Pw^)7qtJn)YsUwC~twrZ5DUNk{#P}Vc;%kB3C1v^{1o#{}(Sn z6Sx$;Wmlu|uS0L;ZE*%VZtkW$|7P?o6(+DK4X>m3_#Jd>zeEH4f%dCft8ioVGoyBF zh9=w&JyV_01iGjG1a#s7XrhB_@%(#_&P&6EaTFS8Y@Cq#ThW1crTzglvDxT^3se6# zn&?O90zX4vWM89aWRuN`_zg>3m_T!Mr8}W3>X`E3XrO*^0QwxCfd)Pg{eEx>y0RP4 z1Sh9F4ed7*UC?7_0#B!0dW{Pccn1yq0XpGobl}%1|AapGf1v$0tzAr57frYUx)UwY zL)ih{`mU)zI-Z2Sf`=lBmntsj!T`6VVJ4cuvuFY@qKUm8-%tH2bVc8wEB__+f1^84 zxlR$MCfctK+HdQWn_>+=|99rX0qxVFOFSrcM-%9oa(^_jL2+o>N2L8SG~QKdpBQgL z7d9>B8MvX(|D&mR(hADYp&7r74tNtiT<@WQzeE%IG421L<0{oHZox)z3-n%Zhqkvx zZ(WC!_rdb-M!Irgz{AlAk3(13550${q5;m07oz<}#Vg}DG|`FZ#M98YkD+nqqvKwS zZ`S4ccSY|};e?-}hvO^sY4|twn`~YrP!A2z5S^$gI&L>~$2y=Z+#l_CFdC;jdN@x+ z59e8EVi#=A^KXaI>3CBb?n47ViUyj8?!bc7FG3Sof{yZhVHI-q&Vtjf-kG>4zJcEJchLzyL*smj#`zu@SE~4?}OgM!_a`o;da;`J#=Hx1>BhOt>~?qflfRx?F-BD{JoNjC1|Ga zro0@TU}ao`1$;Q{d|tm^aMp9=$>Y6T9B z=f#WAz@t(g8?QqH-x%*r{T#IaGiV|&pl9Y4^e3cu(*8A;Z1^!1|HR7mi>Kb9XqG~NaE^Z9=%6%HJW1|E-QesjvVrTwnd z&p-n|gno9+#clA__!XK^wXKSKzd5?{?a&|DI-m(0vlY+36Q4kZo`Oz1IOVg`@q9F~ zQrgF){^~d(?YE$ZZ3>#eL+Cw!8ogDoq6vS9#{2gF0{%>eEBXUH^%V_@4mHqBH$xNK zGW88p-!$bN<1T2wb}4s2$9F-Wj)Tyr=~#5W(hx43a0EJVRJ;Ps@EWw^1ayaPjd!D8 zJZ8oP=-GG|jk6M+_;WPQ+LV8aevN>wx%vRQFAmvD>T6Fu>;z_3%a#O zp#A!yhigE}XQSgrpz$t=V^Tj3tN8gpkqh6=x1fP;Plsu72D+k$Q=X09%ctUEbO%?Y z{Yx~?w<-UECiWNFuWG~MFxJA2eEyqr;egiY%G#k59Du%Xdd4%+TX8wMvTLz1-hdvq z$Ix4_08RL{xD<{5Zu}^&!t&?;*IXFzM>Npy=(p7k8Wj_^Km)Wv`|W{Fus6E3`=xvc zy22ySe!b&~XupBzg3dz6k8Z^CZ{VxaaeO-7jIMM_>hDKy(Szu~N6~m0!`=(biTDI|J;b@-+_NpVZch;6dkI^&CvQS(EyEO^SE=`cSYmug-);^`X1;O zd!x7X^mrlq^juTo!WB(LxBg!A9zKRGa6aygU*HZ{yK&`;ov;Hs(LnTYof*$Z-*ltV z=loXmjrUl}ucK$|b9CO)FS+;=O<-NhHJTJFu7%rCUk_bT2ejWIXac=rKXj)CqC0U` z%ERMGbYWMdJOLSBs+e3{R7^#m=ljuDuy^lULWnh z4LZI#x>LKSz6+Lr|921Yqb@yY(`9SYJcW z%o22A@1o;Yp^5*XKL5XRVaLDF1pY$@RBKvvtcOnAAa0BH-yya}$L$_Fp$j-5<-^hb zJ>v;zypyo}cOy>Y!U03jKqF!a9e5==U|hTrea>$~xBgyq+UW~5j?bNSA$A6RdAJAL)JGv89wkr~- zhsNCwjki-N7rUXEc1Zakbl?$a=KaxuL(wfgFXjImKZdf2k3$o_1)bndG_m{9@w3wY zSjwe&TzKynpdDXH!yECPxE!5eCEEX+)c=Bx`wLyb`nYlPVgdEh_8rk%+Zr9e8xpTn z(UA*(*VDDAsOXKZU;vu&;CN0Pfv)TlH1HU7r>;h~{5EvQW}tDNMEfm3ckV?rfhFZK z&)@r8IMHWuP5iFhfnO}31J5C;hp3H>-2B*V$XyB3PmX3)N(|#Aaf|+Q-PoS^t`EhC5KTG?!=o|LelxyrzjIXl; z&%ayLhzcj#6U%1--I3mCVke@Bo{lE=zjy(fz@_MpjZOJR^swEIj-QIgn~9Ep1Wjn} z4m|$`c!LTjSe6c-pj-3>+Wt-Ie?|lSh4%jsO?;yr3%5Wg+zxGTjgH?V_4}mUE#)Ii zT-fmh^b5fN^f9^sJv3LK0jHx|{utVSKDv@cXhLtGhwdFLziQFnq^wJQ?VXC9-5H&y zGa9dSG#5_L4-I%)%0tuP0(2`!qbnJUp7!zRM0dqU(SXmR3BHcTU51WZ8P~)gkooxe zp9=@9kJWZARS z9gjxKr=@&xoPfT$?o0c8^s#*l-O_K-!?zBdc+1wsgpJXJ+Mx^B5AAx?{C=DJI$)ZQlt^XphwIlX7=-$B*5G=iiI| zRCuq?K)3c>^h}IQc{CdEdi2oUj*gp&PB0ritk1+3(D%n{XUJD&pADyTPn#lHPZ-p$lRM9>S2ch?{J38_4 z=)i&KmJdb)UJyrNOUhTFiOfO!J%^54g2sCn9rr1^!(XNR7jDS>6_s`?25yAq7Y-Vr z5&Gt9hTftU=*ss&Z_U9eACD$*3Yz#?=<|Jk9Er{FSK9Hw#CY7qZ4k09?~7raqZE^a-WoYMsN@HqN+9~YyUuR$M^O6`gO4bbv#@ldqi0Q7}4GEPS0%*H18X6k=Je@|GmebK&i zd!BzYJBSJcpBT?a>nEh+40NKG&=svjSMqzxHTNjSH$(e%LK8R^?e{-)%g4rBQa`&I=-E!_@1YG(qF-jLciA zXvc+tIusQZ`=Oa16uZZsY43xs@FX;$bJ6GeGBmM?XuQcO-<9(HXxxX<19ycOuD>uPkz{zMb2(XohM3(LR% ztILHGG(ZP7K?k%zw{owzZ|sH!IuaY>v8f-P`jO~PT#m*Yho1f$(RuDc7dW#c&%ay# z5ETZT9~YtnUye)Afy+|<2z`!Mp@AxOD*9KAHPOWDqC2)V8h`uL?~IOX+llAjd$I== zZvFn~VLA*=pfB1!0Ns(Z(|#Ema3UJ$mXvQt$K8b{JRQ9y4`CC027PmWjK=+@#D$su zjt*Rp2Clky5uirgEN+1&*bv>hR_M4+=t}oT19wL!IzH`#;t+Jc^J3|eG>k#-*|jO( z9PdEy-92bxv(cTJm-dD6RW$IMDSv?WTbc4#@dtFrelOZf6@PPK;0-z#E7=ImycRlf zLo{$pwBPRN*6x+^K4`!L&~XQ&{d=apFS{)cnnyZYiZ+){4fD-`-h zn-=GykJI9mKaIbl6Ku3kF>x(4(Jj&XhG@dgQokd*Gp%t;pZ`6$aO;mqLvM7z$>=>j zE#-63dwv0WkH?}by%C-0c68h{G~SG~Kc4od(TNwv#aL=V#k*YWg#V)D7F~)!N1!X| ziEi=nDfdGsJ_SA9gV95I0s53&o%-8TKNG!`Pp5t{daIUq;rVyKm+AOtI#%De*y^p& zfvwS%cSa{V939s$<+ITp7=3L4<7I1J73qLi;h z6TA+c@W#|nM(^oV^c&EO)W3+nnir?M79Ia{{4R!Wp#ga{IRL;oASv>LZyn+(=ap*!_XC7gzms-H1qN3gg3|A(5GW6 zI>7_+u{aMM{~UVQUPt>cM{mjJ<$9jKU%2p)RUA;b89HGT^!eW&{r!IjG{AA_88`*K zhZmv!$HZ&mgg7bQf%czlOFkY4bKyk&;s7*(GvYbu7moAM1SX(~-iog1?v!Vt zTRR(__yu%lUqR2p2k6Szru^rDJpaBxHtt#^uoW7(amp>wK&{Y$yTyIb9XTxRJqqrI! zw>JKSj{76!e`Dp+LB$qsgl1L;ooFjGU?X&3b95_rLIZa|cdkp?yQBS&MsL9h@r-x@ z+J7v125v^UsK%i@|4y_O7Y1$`cR&NSMt7tw8n^?NSCaZ}=-2Qb=++NK1CK&? zY<#=}jW-ir=)-8-d57}+x8mYCD)f6aKXl>|Xd;)O^Nmh>=|(PG$z=52+<|tyKOG)Q`{U@ubJ2hc;!CMtj86Ct8s`Jt z8&~13*yM;Jv7^xVCm`RZOBE+`;R;5ehiMG@Vz~$XuD1X^TyLWHcvb3uKv!DPqqyhQ z(TVG!2{uN@HII9sEANJWGwNNg=lQ>Y3%B|j^zcnVS2`y?i|)`OH1pR|ehXdkGBmLd z;~F%9U(s=Yr@S8RU**Wc>d5)$FA#F!gtg;V=)i5!0nO2XJE8A`Ht2*0p({Ej^#jlZ zFGAy8hK{=$jWZs7I&MPy-GwDj|8y?g>gUk`Z>PftaU~ky%e1dWxBjQp|DF2((8Q}A zRU}Xy?N=L}utD55?r;?Ax5F;!xF4cOVJ%$j^2WA&B_ zCira1rI%Cj1~#GLJ@j$>16^6wV~WF853O&CuDng$7oGShG@;|rgib+sYB2g3o|pD3 z(ZhQ~(O#;!GYvE1?4qG!L3|Yr@J`ylKv(!98t6Cli%I34MSWE?ff{IHby8nHHi}Kl z?L2=ixG+#FbOjw!J`kPgDD>XLqEZ{hXvPW1ip zFxqbsmjC|Gn_ReM@1ZOFBpp6a{rBk3{EjA2saMf|qqrHm6ZO&Y+r}1YZ-tI)hsNoY z@=qq>#8t4i%v1{Xv=tQ@pfOZB*L zWsT$Zu~pn1-MWq`cS8g8h{vK6^+6LIgx@mcVsah&;<_7+_b9T^QpJMeqGBo9 zaV2^denFpxn#UK9O=EP$?a&0e#>3Ewk3w(d3FwLkp*uDhP4HZFp(D|ikHJm-{onOm z7dNVrkb~K@BX@3}9`BUh7;DxlmiN0u7r2Xgk4;rURpW^+pF_!<^ z2s?9Opgqvcx}Xyuf+p4@?LE-|{o=sXpNaNA58e8UQZ8Y6t5d!n9e-2mZ|}qN@4)-0 zaK*FYTr{DD>9`mjxD4Ie73i(_JmsI`-?4JvqF)Vk0d>$@wPkD(_vp*>ZvqEVp@*Xr z9F0zR0vh1tln0^xhM+4QhOY2@^wwO4CVm~-Z&JJ?PDA_8Ncr&+7fvt_{S%2v z7R4p;Jv8tq@$>ji+J8*>PjtoWF7jfr#u{8 z;U%fRDqfG?x|>p-8t+5<&q61965X){X@8+;FIBwCg)3c#Ch&1wg}x8gr2QW>&;}6+yc#b>(p->cZj>7 z3A9K1?-LJ5dpC4vdZ7J|L*t!VnYWQQpb7pMe?uRiztK;* z+9wz7JI2~|u zbZZ|%<2)5#Kv(`cn#j9o0;P|*@HGE{eoAeAO3}~?O{^O_usb^OvFJVSj~?2y(X&!Q zCmfHCo1F5LlND=I2pLj$~tPP{DbAER5o2A%jnbiz#s6bWpJ zPOt+yZkLqzK;v~zd4F`r4#8@E{`W}5ap;!zLkFCUCN?PT=fn|dzXVO-GIZi=;tgn= z$tmA~#=9rw8E68JSZ4l;Ib4|W{B(FJ9bS)bqX9oi`wBF%)##3VhdvEe2NsEJhJGR0 zGUb-&gl*$qXuN%}LWPTmKI_VU<&h(_a^jvjsYFgOr<~ z3)&9-w!8~^%l18$=ih(_r=kZMuooKO)YPAe20j<l=4+*LKDz&x2Aq7x)amU z2_H=TY;^oH2C!jK8s0!NU6u}?rv4lBp8kw(eYHVFzb(0k`clPsF3fNi8sLfebbKC7@MZK3w+{sO#8R-m(>4_eymrV zo);a~_4#kbg@|;|1~cBQ28Vczo8x1p#kfjQB2eT4cIj9fZn3k=sj(Vo{cW(W7#A1{Zc;|J=_=uti6Yh;p*dHB#D*8QOD7wSfp||kf zv_CwU=iiP`rr~)sz~Xdx3my0&x}`s%0sccLtbS&Z_-5$1dgvB!jh?BU(%uoBr%UXH z9>$|eT=+PgimueMJ8@;a7M*AUx&ybM6Wt!~M*B~X526!2hK_q0JxdEy{s5h4B|5IO zCKunP!%yf0f5!Fbp{jCLv9it4fz8kz*#SK}?a^`jr@dS3jwXI|%DvEdeUPW7RBGh_1k0l`EQ*L?a{5;8x3%1 zJTmq|1NDsq&{IAb{cyS%edkX=ckV%S#dFYjPpABR%8Q2b{2TCfDqQ(HX!+y#d0dMI z`WX%MM_h;Q+y-YC<2Odz>!I~qr`#;=h`z9Pi5<`8`M2UADtw0@jSlRGuHaPk@fnIH zHYV-YqC0gXn%Ldw#P_599!&jgG~T?_KcDg|@y${iK1jt%bmBEB{}}&7C#pE7n5Zh6 zz{cnTwnBHXIXZq9bmBc@7xZa37)`VnnrNvn7Y-N@&q4~#8{b=-6JuXf~`#m0? zM&rDI9nXpDj$4ktfL5dN)};N1vOIskb7AJ|&;T2rTLi3$*4ItBA==(7zD#pYlR9(5q-- zZ=r|yeKe6(Y5x`-|7*(sq`bkfJpVPgFhCtNV10DrCaG_p`km30v`x7a`n(^2-m?Da zMCZp6mcJRHw{8L&|86wS%watLUOY~P1D{EU7tnjW7)|VBbVaMtL--vUsN%e0+(u}> zT4;SebODXh-V}W^?uaJR9^L7K&dc+EY&xEd-m}xuTQDN!E71Wrp^4su9;ydYemLbh zXd+Lc2|tI9dkr1899{6IXrf=2xNyKv=zu@4F;*I0WV|i9wXM;Fx}wkfvFHw+9EYX- z3N+5m=mb;I{?pL}W~csX^wyMKNW+p;EKB)QG{71(;16h`f5rdMfK^8n)6_{Yn)>xiFK9ii(OW;tl9Mn}Xi62U7n`d?oeoqG#d@^yB-_lxv<} zjBkwI(w6A0=#X+ZEdTxAUR-!s`l2g68O`*}l+Qy0l+Z-Sp)0>7?RTOpo{{<|(4BZD z<%Q_@SJ7Mee%jZl&;NH^82A@7@OpIXt6oq9+5|1vMHAZ^O>{eS;@0Sd9ngMV;=!r! zk@B(V_~M zwUmqYXyA@$!2Quo4@r9u^o7$i^}SPnV#)*1@n>K&{2%(*-JJS|Qa>m4AENV=e&)hV z{z4~QAFEtkte^(Eg1YE{MycN}wn8UvA3LM{x~Bc`)E}Gre&{>{i}q5*;4}8HepS)LHcq(?mjC>(e))pm zT%<$$xHme{0r4>O794|4cpN&xDd-NJh9>mCw4Wa@N6*4_XuL^i|2wh#`@b1pQ1J-5 z;<;$YMd+8$CFst49)C*xdUV|8BMY}iCu)i&vUAG2ro982@V+T`#qyv39nOUVddCyf zVIaEVGgCeronS<~6kW+xXu=cGIJd>S&;;*C7xobPRLw^dd1EBczXRV+#}CmL#%EZ5 zBcc)KTb84MZmz5l5m=!5DP>gg7bQ5vQREmu95mF*LI$(Jfwx?!e3F1WVBY z@1dXTE76_#5ADCfsABv^=)`r<`uga-Z-g$OB^tLA(yvr;KyguV2s%*@bU-g`j;E&n zTJ(FsL^RMn=#I_Ca>7_nI4(thPw+k(_ruhGhW7uuT;}uldoIlQ_xNu*RKBd}SPczO zGuA~XYLND(==c_?Z4dGX4v6}Lkt-U~fs z`=W^*j*dS8UBDSBpNsap42^dkx>FO;g-pIYpZ`;-aNzyv_z3#Odjbux5Pgi6U^85v z_H}5W8l#KEYNP$PO1U{YVXN2{jk8zU4;Y=t>@X^PK953Iaw>Yr&O`t0#~AeEbQ-$i zr_qF8MJISW^&g<)zeMBxhW4vIrbw_3+P^_;QsTlDY>#$qg>G^Cbm*M&0qBk#h9=NE zEDJm+a#{1C;A3_JtjW41JzJ+e_ z8gznx&_h=F%ED^sL^Wfb)YnJ*H!92Xw;dNgW;>@tr*zmi<%7`#4^MqhG;p7^pPc$Z zsUL#&AC~%y(H*=T-RT=rf4BPl&q&21Xvev6QRk6?*T!PW>-v;J?rvs6MuE zQ*>NibjP+zd6(D@%isSya^Y6*haRp&(Z{Gay7dFo{y#L}Md%A^6guG;bj4SrTYCc< zZ*to2j`zn|@zJq){^wBP!1-vP7ts~Ip8EIDi9bdYTaB*xhqV8PekyKwRWW`mG{J3C zZjQ!pg~r((eGhcFis#>e2U4L&#=hxrI=TbH(3OrtC%OW?Rg=-c)6u{Wqbq*`jrT0t z?=|#{El2x*gZBTal#4&mj_c4JsCjkq`Mx>YaeFjiOLT%g(H+_s?SCj5_~?|6N5`F< z@@eQo&PM0C1npnCmJ7FHB069S+VLKAf=AJnKaKW#4oze+n#lX{Q?%dLXut1M{}&pk z@-;>Ln&`xJigKx9t28u5?^$y+(2lWn+S{Um_CovZj|Msj-GT1$SahrVq2G{(#!+b8 ziReOa!Sa9qZweQ#WI7t?(R7%X`UU7juf(P34!ws?uo~Uc-(r<(iv;ST_1mFORaZhQ$;J(y9ijJFu?%*@% z4lcs-@Bd#*#oK70_s|SKLIcrKdA1?aeu=njra`_1UYx2Jqh$}>}bY#h(O1D~Wq z7o=ekn$YX$1k2)wXKXeNZ zLlZsRdSCCb1qmuu;lw&_wo3c^@?4gU~Z` zSjv6SekY}T8k)#iaX310DeYq>@cf(E)oHjf4Y#5L??e-uj(&rA1l{6A=%M=nO=JZc z__MeseuusZe?b?t9_?TIhNAx#H}L%1p&=D+WsBGjO<@0c7@9~=bmG2fpp(!QpPKSn z=q>mk8gC?;*tKZ98_@o@p$oseln%4f@L0<8&_D~Y87@Wx{($}9_MSEKR1!Sd(-kE!?*4ZPk4taejz25O-{>1>S-+y$Me9hzt-bi%GFABy(tiN-qt zjW+-tcV_C(#qz)Zy_gHPehj*ziRhN!hX$UT@-t|FH&XvD`XRI&y;WbLhw%5bSG~Eo zMK#dB2(J}D^G?A0hr(zJA@VV$;ULA$TnS$=f zJ?Jko9!mX7aWNX_t(4!pndje$S5Tp!qZ5CNPV@`9!v9iVb5b!;T{O^EX#Z_eZl3m? zQf?F5q5V3a zt+aoD#`zSTr}Skienjud@94_@j{l{-$}L5}8t86 zW1phFRB=i=oEFbQ1N;x&`t#8Zt54Lei543;&MHo zze~9=(0k~_pP*awIhw%t=*0h|z4GLu-$rO6o1*>eroIt+3!0(hTB5hME&3GfhmJeJ zdO!dBr^8S*k&)=YE6_tY4jnKV-H9n^qBGEb563y^r{jF|#kCY2_c?mYzDE21fsS8~ z<$wQI<<_F1My!plpg#KI*%nQ#UECYp!UJ(z?1moV!RWYA=mb}z?}hOxPesSwm-5V8 zdH&7t5h`5i6X>CO9-Z)QG~*BBXK4Sg&@KNi{((+h>9)LZ(8TMZadt%G?~0Dw8|{D4 zZ9M-5>_LSS^+X5sK{FqK-n(Jwy}KM;+3oRebo_KQ;Dd1vy3z${e*um2O3Lq}aaNSL zaNNl8D)Ym|Fq%L}Iw?Y$cgig34`qgYtG)|Ay_eMWePs1j75t``j*8BWFl!oWgKlxmR zp5Arny{dg@VNwaF zdIsJ?w`>i%(mzt(U}{lc7oD(KY!mlJcjOTCMbta>L*hl~*%&*O=idbGqQaFvj86C* zTK^`R$R{cPiUzKHS21yIwEs5f*0)Ai*cHpS0KK)n)7~HLe}2ki?Kw^BNELRYpQdbo~6 z1N2P$@#uj5XrMFDmHjVX5HCd!*OlmwPDcCBL~qq&=)xAD<4dn_Vc?~ySdJc+Ptk#2 zru==%zoG&DML&$HPAdX!hEBXCx`R8S3G9LPI~a|3H2O50fFw|=7{Y~z>%5|(ViekO zY#bkNK_{MyW=(s*;oPqJo)SrtU!i%xC&;PYv;1u-vegxgR7gJt_2KpKe z{3E)uzf!JtZ?U4y(5g6_zi>lzf|_yj)Hh7IDSB&mDsf?ez0#p8`WbK-`V-6`^j?pQ*T!4pbo3U@ zK?5#D7xW35z#261AJ7Ec&yT!dy-vv$V5H#>f=!9pY z6P$;RzbNG~=#E~49=;pmG^AgtVm24vn`h%|Xy)%>WBdf2U_F{>wHZkmy_egf{kKOC zb8GZ4cTWA0u{WCFNhuG)^6&qKa^XsbqX9;t6HSOy&;%by`&@LZUq%yqFRn!6e1+b! zU(l6Tnpq^c5!!zY#zPPJL4>pB;1u zc0+fh3;O;z6dl(W9e3&jJpWdlMTILFo`#Fk@iO$#T!XIcb~Ld^QvVE^_!}vIf!_Py z(Wj#NtfJf$JxlG-I6cu%+0$p``9F&aS2!F^=wfsW$D}+C&G_cj-+`{^Ui7TYP5DJM z&Ui^l)4#Dy9CiEdfV2a5m=ViWWhY>!Q`9UAbswD*mtpb4Ii20lCW z=f{!gxY6+{w14Tkbhs%Mx21eHx)ak=eiX|qP5DLi-oAzgUWNwzFn$)lia($`^Eq zRzLr{bK$@f(XAPT4j7CE8Wt}^6S_2BiT1k=O?(m>=k~PUlllkHevhE>=B0fBmjC>J zQ98Vl4)3A=<%1RIgulmi=(pD@j}(C##3pFJ?a>5UrM?}SSjUvRpyRuuJJ{zDo_~Mf zI42F`&<~esDL;iCx;N3M=V(3M_>2D~19(@jDT(KK|z2UDJd_InN;_X_$rE<^i$n)a{JiGE7?&y*`3FX~Ix zxG>{Q(TO%kGu|d0n#G;az`Lg00evy;n{p2{POp^vqKA0^8t*hT!L!g?a6XcFsp2{= zTW z-|cC52o3ZiI^hRspf%_%`WFpY^NHf{G(snAhmJcKeLwU;`<;hQbVa-c?LQOkKOYb7XyZs=ov0=n`M zslVn)o__<~L4^}MgdUdX(Nnu9z7gL=PyI(|zt!lW`zr0Af1YcA~gLpuDL z@;~U7R?IIZsDZAuHd?5MMuz_j;3`yZS3{^)#z=JWhJ@XS=4jb?UU zI$o0c(ebLZUl(siC!7-RMH8Bp_Q%l2>?t&%S5tmB<<;|f{tfUw75W<*;9vA(weqvY zi>Vg6f~IJ~Ez$mM(3R|gj_ZWp~C!pg_K@&Qol!o)-C2>p~hX%eW-i8La zE9L2EVh^D!eG+|>zMS%h=;8hvy>)-1d{-OFOOHDE4?1wsaw&0cNXoXiu<^5f>~(bd1%Ll@nv+t>*%R|C$2;j zSc~@m3GMfL>erz=v%zyk`zC1rI_RybkDK}PM-wjGfnCuR?}K(c0u9&`O{`BG7>A&N zMxY6l(6ccb{f7r*(Ky$j{U)IOCZ~RiWk3J#;lfO3#K+Nz=c5z9hz@)M4fuB2KR|b6 zCAx!a(f)s?zS8qW{U)&i+P_80ZL#FQE?jtM4o^e>cow=d7ozumEP9wGp@F8O<7da` z(Si<=tTYEV07I1X&)VLKtBtn zqH*S+i9e6_e>3$f(706b;ZAUC~bHE!Z6mxK}(Fy;Z$pzc>)x zsWZ{9aF?JTVw2FFei;2`w6Mg59p6PeevyX%u>7ihvG~fg6Z%!GGy0vb586H=?c>on z_oV)bxCEVOP1^rL(L#lvZy%q8>8jA=ngiBjgkJPitUPvik;HXCgpZ1cSIkbF6h=DjBaHwbmF1t z#OI^;cqDoTu1@__G=ck4elX?7aSNaSr_%5in&JECJzr7oz~??1U>!P9m6wZzYM|vh zu|C>w8+0d|qlvdqduKH60jckf<>&v{RGeT19Zo?5pO*R|DG!eqqx~*R`AYQgjzbUa zt*O5k-Ju6ko}KbjXkss5I|nZ2!hs*e)#>nk{2g7{dNg3wiIt{oUH<0K{FNfrozWh< zro3m$ozVyFz|!!_KLiaXL_8k)%T z)IXg1C(wXTp$WZ+o~F0sXXv;e(SCoRTTsz4# zcSHAhuavvS!_k!<6OT`Q|2PPZGX#BOoQo!O1-c^>O1ZcdUC}i3+&_x$%**HmOVP}i zrG7aY__O$BTpNEx`~Q~mU+6;Cqj9UgmN&;HT=-L6GxSZdPa2L!-x#N(Z<3K{fSb^X zZ%4QIF7%D^0J?ye&R(64EsHDA z30B9i(DC1;{r8mDp>a0!U+_9$(}9XJGiDu$y8j6)x{ z8`1H%r2Z~6{&aNQgQZDvBjoTOq}Vv{C_nKOVLE$OZlU?Dt?Ww^vAe9^)=rv#??jdeSI{M?NYxJdUkd}6WI?< z;F!1blf!XTIA8#J3(i0@|6j@%#mmtTn`_V=x;OQYpou?;#+i?fe*wMcucL8SpyNJA z`~C1X&%dYqH!8HsJH^1dXt^P}^*f^zv`c*lbSt}|fqTT`&6LCH|@Fle0>+!v`e;U6+C;k!b|1TPEgLjK~HPJ*iN9#*l zabd@%aYuCGHfYB^Q{Efhkpt21#mAtxVqnT8G~jqN-eh#;Q{#PcR(uTUU#fVL3kN)p zPW(#IQ1K?Z(&edNjrLoM2L3tqf1-!0Vp(x->!OKogC^7rjngvq?NjcE<=-40$c3l! zP;`R6aRB=6AB?_8O6bIwp^1)7c|1Dd&FJ{s(9?Z)+V6|A(1adCZ_(3O{>kBGF5J@B zW@GZJ`tVpWb}*;Mi+2Cy5Nyma^QF_+@d?v zVFo(!!*Nd9=c6y2m*Yxwft+6JzCx$ z-J(O%@mO@r`=DDr0PS}=8u;wg4@><8X#Y#oJ{Aw4d@cI?zlFwM@jlPL6MvP4-_SQ) z#Rr9(q7yYlCu)W!&;s4UmgtH)r~LqQCl5w<<|uUh3Fw3;qlpbc;|woxVStO`D7531 zXd)BQ0e7W+Mtm5(bx)vyUW~7z6D~m$UWSfej?VL0T!W4)eaD5F{+xz?&;gZ}7XzxJ z_q-N5VGH!BXpc^G2pagv*b5EZH|3M#X>mv#R>=QzAQvWZDS9ieO8MrZL&crwO72Ay znSuV!m^4}adgbOn}65Yz=xlW0 z1?a$0=ogdg& z33NaM?vHNiq47wxUoUjxKJgTE+!<(M=caxHn!rdjp=(#<^Zzy~oM2`;J{ISpfu2K8 z{j1m*KSo!uF6~=gkp6}lcxo|6YLAP?B*aMyTBs9TO(ZFZL;i)g7 zXX6Sqkz3Inn2PqFp7Nt{Uh1D$zyH6+g%i9JKTLUmpVR&aI$_19#VyLOC3rcmO)_VDz4zg9g4h^`qjI z=tSetaW|o#p0}qw9X*5(r~C>UZz&r8!_P`Z#iyxQi#{elrQ>=mzfxBffwx4rv{`J4 z25N^U(lO=z(S*9C+#}^G1}v|JngMQ0=Q7Vm}Se>u>Vi#Akr$F^8PJ3fy7AJRGn&vpvGNy1;?>di zx@iA~XuoY!zeCEqqC2#wWuO1fT=@7Mh-P{``bs_(4Ri*&-YnDi+)4d}=%konRQcBNw7O zHU^#O>Npu4KOOD=DB6E++83fvLFp|n+<{NxH)zM-(Sen|DJG~EYoZC)MibjAHbHM; z3v_38MH4$5jr0F#y6=E3$NrDwcO(%-iDadnQAT#MlhCkAWTs@4$VhV8QA9?fWLC0M zMo~g#G-RYud5p{yp)$(v{l3o6@1N&&9_xF2kK;Vf^SbW)#&ZHXPZzXb_oAMEbBGHA z^(!hW2E^;p6%0ZH-Gyd+AKL#hG?DQsPl&Ig{og>Jq8aE}dKXRPQ#66ab3@V#A+{`s!$a+Gt|iq3sP*Zh_v@{bO4+UYB?#`c(8l=Nq6t|2J~s;TVE$ z-NWd&;@8l}YcBdC`X3r#J^Gl{T3*-?J*@kn{X3wa0q3A+;%fA4-4>s~rj*~nk{y5G z!jIpIUy2E~K@-{y8{(np=lFSO{{boAgY_woM-!ft_NC~SuSOHDyrOu2Y>UowAR4FB z3Z8!h^rFHQ+#biGTR9!w!ujadFGP1}3HliRh5p&Q=E`D)Ezk+tq4Ca6{Q$JzaC9LP z(OdZ5N}hi&KBB^V@33qWvC-kH+z6yb0($)6h6G z(_WgFi%-*GDVpiBlz&DiSe5dcw69Nn<=={xY=ZWyh3-rp^m%W9-pUr}p*;jWlpT?? zQK~qT3lBp-G{EiH0EeNOzJ%V>Y1jl8U_)GouBiU1VqCM>98F+vbVpjFiL^=k3FwY= z#`5p~x|c8bm_;YN1P$CD&HOs_u-%0Q9*-WbNofChSU#L_N&E(Vihe{VT!-HCO@A-? zZ-wRW|8=?WacO`~xTg(x7#g@8x-%Wo04Jj>J2UM)Q-5*FSE5@y5Z&_I<3nhi=g{~Q zv1G;Tsdy8e@O?DE{P-n$npdFDbEQ9ugttbY`-bQW_f7o~=mee6Th|p`SYNdN_3@rR zc>WzYh6*Qq5gqs@y2AI-Tk#Qk4?n~5;Y|I{=u@yN^{Z3=Z`|TWCv2)r_kLRG{&yRi3d9FZTK-Z!RzqiDNfgg?I z;FXQbQ<-O}FZz^mf5 zXaYCI+tD4oH|3G&ht1>Ysh^G}Ha~ubj{h3#`1$`67vAFy*A|Ivj1Jrkz31Db&+#tk zQ*scRSUWV~lhA-?qKWoQ{l#dUtI#;NrhPa%eiWAf%YkFl@Em$7C!t&SCOW~~)GtC4 zSeE)f(0>1=zS>_!;JUFPy0gvEetVuZzf#3_TsYxx=zujTSNXT7-wd6wCK_m4^gCk{G*CM< z@eXL5E@=NV(tcjb7oZF2ize6~H)H;ao47F0Ff_n$^mBU@8u$e?;AAv`>1h9X=-K!f z-QsW2@hi}Y{)qpg<14Q#tcLchsXqU8Qn6z?G)#HdxM%A3Lm$u9DIbeYbOIW%Yue93 zck*I1(QDAh@A`NLI_?21c_<#`!VF(c!y9P8cT%34_62b9&S%2%QN|4n&=^~Dx% zh91ss&(Ds2q<(1X??Z3l zNc2`c5nqb4*7N+E;X*3>IQkCnJ^WlyEUWOTr^lxLt@_8z*`^U+)OIeJfjLla$x_N&2L!|_|A6K#)9 z+%Wac(D_=RPeG|Q7X~^84RkU##GdHD+tEP7Qhoqk>1cGqaVbBS_E*ps*X#VR?bFeO z-a+S?i;n-SD3>a}=EBEn1v=5c=}@^+k-+BY%4?zlw@6CSK~B ziUH`ro6w1dpl4thI&gfPfDW9DPVhE5ZVtM0AEVCla?*@i!L+ z+Mr5dH8j9h=%K5NJ{7y6i5wh{ipR&3(Q)0-3D1q^qZ40@&eJdT1F`(~zZtjTd{F5aeXwACMoZZCcYQCLkGszSpNP0;a<>i44Qez zlut$josJGXC-pthi7!rhK)fN|hK{={4v(YI$Ne$%GvqZa`P_b#4nLqPT!C)YS}gy( zU$qFhb=)3ZQGK-EE@*;#$NkcN5W1iv&=*wO*cn|wkE%TX2I@zJhvgb{!dv4*X#0!k z`(O&1;5+D3^I`l7P2e|lC;vphZ2pT*TxXLaktS%o-D1m4c>djiR#bS8Pe3QSARVqm zS6E8@t>_lshi>t6=sSKAx}rDYTr|!XXhJ`rhj=AAu42<7kt!uF+@k8S7CNvFI-n8y z6zm(@qF+?Hru|}c{I%#rH^#we;=`~JKA8IHsecDeq%@xk1AK~Z%@^oaev|s|<8pL@ z-_U_;(f;exUZq-5UoCEl_TL7LzayGZgS794j4xH}#f2RYOozkLp&fd!JEpxW8t7~^ z!5(S9AocywThTxDH>Erjo%jKCp2y;Ntl{_n7r5}=O-Cn~hpy~nbifz!Yjov5qWxB) z{r*6IJ^wFyhU#us9J;;G{)eIcjz-T~2lTV$JoWqkbzFE_N1`2HK_`9#z4xYHH&qW9JLKEqY4!8o{!hz^5 zxh3s)q2ouS{c&{sGjT%dUq;8hfyR9g9rxkpJpTq>OogX<8M@-NXhNG-FA~@yZiCkE zh)&cH-STE=oWsxw+Mzpf0y^<2sXq%{(D`WpKGk{t-J+|gaBFW#$Gg+vK{UYQDLKJI4f-PbF|I`u-MCbv7+3>+^VLRIwoB?;#C_024nhYWmGbdv z?;N|ubJ2di(4FXu#=RU(`0BKmuFu77=uQkvhlk_X_$<0*lh8m@(G|ay_IJ@8`~ZD5 ze}N|aGkRE|fi=ur8FlzJn@2mp<6!!-P&j4Ec7&g8CRfz*P#hku2r}hI?+~W zdtG#=c22oPEuMe3XkRMITa6}iOv)#shw3ymKumnl4w#+tC+Jpw5tpO=*Ts#tD$1Lq3#g4gB|D*U8ls8pjxKm_ zv|sB|8rsJ8=q)%2&GdZq`R$YPW$|h>;Pq&rLFh!o&k72Q*D0Xk7% zbS3>$e*?PG+fu$04Lm%KMEgI2zG%jyJNP>KaXUZt-=Xi5zv32K=lO5Kg)K zAAlxwC^|vg)OSMrbxHdfu?M>Kz0m~wqg#D#%C}+*%6FjiO;tbtXK-P_*=T?d(ZjYl z@iRm%%Y75{SKJ>9Hc;f`oRd!PaLK_@&2UEz^w?}$!xG8*{w)OSbw z^+H#AIU46WwBIdg{GnL>{r^2&*zv(~1z(xaj?bWnXcBrT-$66~BL0j9{s&E@(#}Pq zRnht_(fV!B!?`0Gcb~K$tbYCmGw7g@=jnRpAM|Wnw*e>neV)u9 zuSRd>^(hao&-3rfhEZYQ5$FmZONS>@em>=w;_K)se;eI_chJCd&^QawiNB2Bqy1K* zJNpOP|G)aBVx?6Z6yF1CU?m#1M?36@CfEcG&^+~fqlvac6FEHXZBl=1>N~}gQ-3NN z?@Tmak5Vo!MDNih=)||69q&XZ8XiZb{xS5Fk5BzeXu#J}o{sLotklm#U+o{GJMa~{ zQ>Eox_`~69G(h!+MMEvLyaRf#>!SnrN&TT{qDP?#7TsWXH+F|!{13w4EL(vJ2M?YLnK>J;Y-h#fk7Y@V*_yQX56EuM@(1rYnK7PNa ze$&SE^ZBpCg@JZL1MiCNz@G5{bY+L3iL{Fy(1}h$S9lsa?##6JMB`nA-r`HqTQC^y ze;=0r{htT8FvBO&L|#M#PeWHQ6a59{$7rCHXd)XoDJIwqO|T|fza5%LJ#?a`=qr9V zbbRZ0N)w)cD|%C50=J-n?m`oI0PEo+Xy7-|ezQ`ZpYj6q75ybT;qU0m*Pshpm-zwx9@$$4^gHC({y7F7lgomOFya$c@ zbbK*RE^%SU>FCO5q54IqlJeK+L_eYl|C0K3=!z;gD<;|$eaCN^a(%SDS;{TY zohj{`hQrYW+M)?`LQngtX}=UbJXfI!--xd0R`izKiH>^!o#;`t|2VYYi|Dw?=seSq zex-_cQZY9jJ}nw5zCZ_lh2GmA(1HKPjdm#lR*$vNiR;82(eVva-ZkYt(M0wympRr4 zr^AuxH=1_k2A=nO_WYq%`M-~GE;Vj?FLda|>2WE#_Wmi~nDStBFYZNC9)+ehCgrEm z)F!3=HMIYmX#Dq5KW`VF50Bv|>F^ag@W+&Yjcd^f_=|lxP?cC6JtbSC;~K}^(TQ53 z6CaTBVQ9i_(0Cno<@xa9x2FA0^qAd;?$o2`gioWVVtg_GIXM!(UDy~8U-w+3<{%$m(QD~x%r~b**zle^Toc1@-PnB7z{{&5NF&gJsh^K4 z(&4Xk_z&I6D$R>PHPFm=h`XQx_d^379FIf;AB!f`5#50zcA%XvHbh7tGO^> zDc+18t|91vJJEo{Qyz`>AA_#+X>_8=DbI)>VfoggX(%NYR>a-ph_)@fE%NM zHb-}$4mxmW^kv-)J*0=D-zHB@dmnV%mFQ00fKGI09GUuYXxvFDPi?{TZ^ipmn8?TI zia*10=ICKrhW1;DCbTx~6?+upHbTc$L;KfE{r2ci)R!bJo1+7_ zjys|WHAW}c3r%GIcv$M&#g1tFQ_zXKq4CbK?DKy?D*D7L(E%lNf?HC5J37(5X@4j_ zfjd$EG`e%Mu>meZ7xXV0ugcy4wxL@KqsDwcAOU%qYxIQpE%=95}hCsF)UKp&8FZ6Iqz@QZ#|@Q~xu%l2zyg>(Q;Ryl)YAGqk)Vx`1ub z{ta+TKmS{#!(r%F9)td9ab~;(P2l=?E1JNa=!Ey66Fh((x<})4=)zt@C!UU;rT5YC z3$XnAvCp`$*B0zik^Wj(Du6MQ?WA| zzY*HMC3?0Fu_2I`dZX=y(jJ&fn4zAyS%U77NY=mfW+@rI&1cpuvD zg_K`M6IzJn|7XqbxbPmXjvF6Rthf&PUT7NkK?fe5awl|W&WOFyIM>EI(H(dMUGWoW zVo#w9nQ%zH|4*U9Pp|3exDZ{*5_G`V=n8&J`=6=*2c2+(LyLP_3ysqVeJ`{^6K;nl zaw@u@ZfN`q4lNZE^r6Cuu1Lc`G~*l47sjpV;kgTahd+)6eh!^zD(;H2u^FzxU2x~a zij^LR#yc79e;WF`m|mrHxCl+)a`dse1{>fAG=bOAEt`R^WG?#Heuz!+J9K=F!wa`Y zC)^=6z}xuEe=~F^CmvDsE4`76S?FUi7oF%!^br1l23i%@q6w`>x3J2Qh1Jl0Tc9i4 z8e3z-)Srv)TrYH7KP2H&MgMfTF5ZG>csn}L2z0wFt<7{*#AEM9sr>Xx9O>7PNc>ag>tI?*2 zyA|5ME|xrO`=p^0nt5mRkez`BIw$QHptt4{G~sLF5cHlui1vRHUBC>V`z zd^G;THa!1Ud_jeW?dvowM+5wdu3$Bqah0Qs06U`ro1)|PL?=Ed9)XTO7EP>E%4ecG zaUL4?f}?r<4RAFTCUO&+*^qR+Gv13n{|}%a$IqZ2E;G;xK1T!ofZp4+DR0!asIQIo zYlJ?wd!rv(ZA)CZlGD)y&P(|sbVZk=2@Z^d(0;?vm5f09J(ThobmdRQ7t;PRI&NCZ zGgB_j<-!4Q|s~)}Zm%WBI?2 zu|d0HE33xMV@)*kZO}js(1~_O1ML%A#Us#L(hgl=2ekjm=mNW?y5T~9y-wibVoi%`+bx0&uGGbpySr3T>01{k?QEv)CkL;|A%tn zY3zs&=#EZw0UD?;`q?l5{XTyO8eklnz+32+&QAFQG|nQl|I)Y?eTr%xSIpPwIG+FA zsW^ZN4@*yUC0C(uzU$CHL(s=-7`ii$q6xo{@(i@!$LP4vQvMd*sh{FX^p^gC9#;PQ zG{p+4A789!8??h-=nk|-S9lbfSbH?!DdGwExX$|J%`o?o0hhG_l9fIM1T* zkC#eZn91yP_zX?pTQtD0Xu#Fz!2i&RHf~>(tD^~Rjn;36p8opijR3WEz6r})isdbhBh&t99FOkg1T@YYsh@$4n-f1u{UY4N&;S2% z;RHXS1Aj*oT8k#IVaH-;s-b~uqwU+FTirPB9S=os;qmDBQ_*o}r`!{rrw^9@`#Al$ zFwj7><6!h&-i1zdKRVzsbZf_@{3<%ZRCL@-bmH0QEnJxTFXC76do-$)8R{WtA9fSZ*XGqlbEYP zRCH*JX1p&NsBJtI{i*l@G|?N;6%NPp7ZEgp8EO9ljk5y1l@%u!TfaFPw-)Y&4Y47X zI&r~Y;HP)?8U zWBLDC?-MSZXj%Lv{)q-&hX$^U_4E2*D$YQF!^qQU|5(Fs362P{P=_#O@POWOZT{eNh`jk*>IS4R`9i{9&I==gon zFSo5yJ_H?iR4Enh(Fsn9r(+|^-O(4vVDxbsiw2y9PA~@@_Zj+Be1&f9`ncg~#Y9!n zL%Aioz{aUB?ZJfs4nPMUmJV&ut?HQe&gd;T6TLMTqc5WVXd-u_D;kAPFa{m}JR0}q z_!_!^=|y{~VpbaFrs1Qap<+?WU!sARp^2_Y{p$EHdh0egy_l#9IzhFRw?rSmtxt{0mpmb=1uA~zh;0$!)?kQi4uK2Q)Z;N-LE4>eW-bbN_@R`(4MJJwt#{URC zBVS?-pZ^u9SRXgpj&%MygXiwCRB>Ir2YLf<(Sf~VKlC169dAJsx*P33D)r-2ehE$Ft@wWGKRScw-@so|VIs@o zax~-L(e{7i24@!aRnh)i#yV&MJE6C%8JfuM=*}F7o`GY~ah=hG&M0x=1U=GlQ5r6b z1JD3BqW$iUBhalM9bZ5behckC8%^Nz)PIjo{A=phptq=0`K+R0leh&MXq#9Mowymg z!WOAN0A11H=&A3R`m@mfz0ei*!G?Gxn%F4x);*0RP^x%^3s>?w`VOC$^4DmfKjPo$ zb6jzDv9fCD<5&k>S#vbOeNsLIO`r|Bp!R42om1|C<=_AHNku<&!hz_(8&e*FK6b;< zEgO$c_#FD__!2tqU36vhu)Ou?4t*d0MEh@ePT|(LrO$seE?oIRXy6WL0;ixWJ|p%* zC+df;=xVh8jcEVDSbhr7exp+V7~1bCble0q?i4J4{?AN@58|h2pe1Oa?^FK^I?*5T zUo=qVbBhUTpyRei$JImoH%_^E$}Q1^TAj=DZ-*mNaV(nQ321=R(8G0h>ieP-UY+)v z(Lh7ct-d=xg5K-r(moZvbu&_aFU~)=R0Lc|g%f@qe?afyigf%ZZqU8xw@Ivl2Cj`x zST{C96Wt$;a|9Z{V>|`jsnbj8&;vaKm!TgXgV3EBf$qp7Xn^tPjy#|CH`4wNn#g># z-vTtw7wFC`M-S)UXkt~)E80t2=Au5@us1q!YcxHm{fX#GPeUKu3($$LiPxj! zZb9SRj=mA^MdOT!4;S+Ptj&c3o<#>tO!+l*egqT^S_HL3p( z9lueJBGJv_mRSDxW410|@ckW4q+#3z4Y&uI$o}X`4~uQk{>P#dbV9ed3wqDHqqnLr z8s~cSp5KP{zej!kALPOTkD~YLIke;J=+Abu(!K(Oc4>XOYleXnB7$ zfuqp{bVkRWg(iMJmVf^5&4nxLmxli6R+rELgV8tO-6=nX27EE)*U%NcjmCLD^&g;z za3Q+DAJ7H9e5HNxNFL1rv1FsUyKI66kX{6^hdBe;*;ovZ=?5qKKd#7 zKlF#w)#yB1Tu>xX+Bz3IqR(mLly^Zp?iKe(6KjpG;E32R?VZpGJEIBoMDKM!^u=}q zn(%Nm?vqHoQpIyzxT1+zKK1D^3!P{VI`PM;UzGZ#DKCpZqy2tMd3DPFqEADm3yU+b z1v+07EdTy*4=x;dU_1oP@JO^{JM>1 zb)Wy|xo~Typ%cwV11v%Vd>NOaEBP5s;BT~F)r*S5RRb+=hmNa{#%mh)KquZm9*mrS zzQb|hz&7Z>6Ul_lmFPzF37mwri=ztbzg8O3wY>iHE4tfhNK@%PjuR{~MIo=-ci4R`P`VIIf z6`tC0Xy8fcgp1PgD>U#A@fUP!SEc=LG=WOJi+G#GnrOc|=#S_1&^QO9i5*_z!UT>% zJ9a=P?wtCw&;dQ-g=oJ^;#KI@UYGX4slOAAb3YpY5p=?_DL8G7&ch^^5rJ`VjwW-qLVgHrz_dU$7|JGv0dfB##|g&BUGhLz<8 zzU5*=>iYNYeU7g5J2YVBON)EG2|8g7^uw$!dP{c4a^mPtABpAvK4yC^%(y4I zf}wu?NXk9JFcd}1pY+_ zRKBd}SQA~zHfZMc(f-Y13v}E*@nCdkj!L-`+W*veCK~6wlrOrB=ie1yN`-+2#2eFL z2s&U`9DyeEF#56k6gqAuy282WE&Lqaq2=f;T#bGK*{EN!L))Wq>y@}L<0fg?8{MM) z(xDZ)f+JEs2A!}Y+OJE>-O_#@+W#Unp-a&O{(qjKseds2O5?aN(6i{uUQEMOG{d*i z3ExloBlKzbEcHL3<5!{M*PuJF!R5t@w?g~xitcnPG~Q82|5C;ATzERWq~Uxtz$Iwr zH=rvThHmNoDL;w^8i!8&Jeu&7)W3-)_8vNZUfMrN`HONppTA#~FL;d7@N@hvu0bbQ zhpwRN6-B@;(FwLew|e{73|;ZQX+Ii$Dvm?PcSPfziZ%WG@1BY)(G}c)W_(+`Gv0@; zcqBUUu;e-`e7FIzAY=#cl8V$4) z?t~4|TXQ7(f;kaQqzC#X^9uCOYj@#p_&oY?z8H=BM_hkpp8u*>6)UTbu4HR8q59}b znxX?+pc5UC`eRbxG3Bmk!e^)cf|UEkf#^bRNqNXsJpTs1mkJ$?bW6^tmBD#}jl(=v!uSLHm-+`|DQ8b}( z=)@DSe7fVCXux;TdpngMOSog%DvNm6*~U<)Zdo!Jt>bw;*=`JaN(=;Idli!!#!~cIzf#A z#RS`;6E{Q?+8s@(CHlF4AbRUMqj7qsegJwaN1$ImpGFg&j^*$Fv$-(ff^r4-I32!2 zxAHeM@So^C-sqa*Ol*VRx~6Er{m=vtM-x95-GP&1w|E{p-^Ez`{oe~J2BIsvB^_=@ zC%y*_^f=n@Y4p%dLMMJJ^>fk3?^85^U(s=Yqlb8dfkk~Sbo>rje*Sk&!=C7^I0&8S zl+>Sz2I_@Q*f(B-?!X{4;PBKxfu8>7Q+_SwS?Gd3O8wUZdH&7xmsG4t#|^G60#rvQ zsGD*#G=Y6mJ~SSOJ_TLSM9)L-^~LB) zQ1tY+M<+Nr=XZuvGC77jEUt=!)OL@>Zc+{VN)v+6_e_ zTcXeN4sj1Op(D_K?PAB&pMoaTE%oQb^ULjg{`M|k@Q+%er~VprCvHytU1)&&Q$Gsb z!g1)&bs`+voa#nx_&PFx#ZNxjrJMgz8tt#EJ3 zN20gpD)da;gyln+`iIeRPoon~OnC;H@Ek08Pd`q@S7@d`pl`lk(C`1hp)0F#Q?d1R z(DJV6idv!*w?-#ACU!+{)rIISy%t^A-EqWCJpU#znhGa=1`Rv`UD*_Li)W#M7GOC+ zwBIl2gsagw8{b^i*G4~HcTBl8wx@hFx>Li^of&&G&!JoKTq<5dAG4|GL?5GxEJ7#v z7JbpIO8LK(H@~ImR~JpJF?z~dpr8M3u|9UkdN>Fh;*%vV>^K+A_&an!l|jWnXjC5^ zcx1{w(e~TWTQdgh;oIo=Z_!V~%C{C1?2LXDYm@SM*og9Av|s53F8n8&=EjxSgz}cR z6~75N0B!GvPEbN0%ZJf7-xPF$Ptbn9qZ8B~T)g29LT}xP=o#pNF8FHXaW7Te!-avK zL=V$j=oZe23(&*36z%sldWimw8w@D|S4H1|+oQL%dE5t$+X}tsZP0k_vHbVH6VlK* zo{7Hmd!hrcMGxVv=*0JtkcvHL`jdw4)vm?>Op1|_I|NkTx27DGh z<*%pwKDxrs&;ZNOiI%6l3Jv%dn%D++6f3KN)^COO-vNC;G(h7uPyK;+Y?#0QQ{jN4 z(abuc6P}cgr=bDPMjy|M(2vg>(9etq)BZdfX9{}A-bN4KVsy(_qVfMgVU!_N< z+yy-gXQQXP5BhiwK?6R726_xlU~GIAO?VPIehT`2co#h*-=h=%fh1but4tA~DjK*3 z8epqfH`YTFXpC;%{^-OD*2N4yN}cOAMjgW{d#dgi~M3-8(Jas@A<_&j>= zUPcp}h3?esw0{!6Km&iB@=s{L-%|cNRvK39SXH!rGc5o6f3>+V!@B6!?2N8(cQkM- zbik45&K!>>bRv2Sx}YmR9qr#M?S0X>SEPPm>TgEl491cl0(Yh2**FnRU^2P`@1pPS zMX6t&`hU;~s@+{oTr<{1>+7QvHA53_fi9#adZrG(o9ExHKQ#^Kq602M@9Cu}4@48X z5#6D?(Up!yCmM^6dlrp1G3`^+J`*_9sfq(Xq(Q_vlJ1Kr`$Y%W~!r|3!-qXGXHzmF@> zFC2fO{cGJ<1l$(wzav`T2#vEVIzbC`!UNOZ2E9ec6_zSa;lcoC#h&PZ-YH*=2EHC$ z!JyRNj^5LI&@UvT&>eUM8{->k{|=465{9M@ltd}{m~t`0Uafv)=+Frc#7cMwn)qSpf=)yiG+;!&|KCN01Mf!@cr1=bKfPW+C;R|SbP>9u|E2sB zy0xoPU+ID33raQgacqEor#uvm*BQ$@TH?Z$4nZ>>mh$kFN1^xf(fBO-cuh|GR5anY zQvV(rZ!Y>&e2jimT7mYf@?f!m&CznHHWyC3eJXa2P0>It&*65BLm2&%( zPe#X`5xb+~E=ajgyd2rVQpEr+%;aWtqTA6ezANPs=;0iN_In21>WOIJx6uCYps(Z) z(!L}vPyIh}laa-^ZLs|NzwNnjiyNn5FLY)5p({BQ{p(g6^i%5?Y=r0GE;t0emoKA< z%|>6j3)Lgx{&p$uRe;zeg12Cf!m=IH$V@|ZfL+G&_i@W+WVk8brpK5uR#|u z6rJ!vbf+Fh59!#{zkn|2rT7|h{`p6&xNyKsbif=m(5LA0`USSfAFu=N_t1tF$KfEf z-zR9`&*GPF<^eJ0|&bPtneEx4Ty4ZnQXvgi)6*oj*rH7#toRs#iDW8ib z&mAHaR_ky0)eViPK=KT`bldtdY?nBHh&gV2F@ zpaJiV51=a_jjrhF_;P#`y#;g7h0R9~=V$0o)1{xdaDvK@7H*1e*%oNPI_Q=*h} zk3bVS8V!70JUR7eqmqg(fxzo%ktq;up}kucZAQ~O0BR`=5 zSH-odUyn{$eh(D%Zq_*~kjqxXD%>VLxW|3B`(TzGnGjVV^zB(^{U?uYKo zK`9@OuDA`lqGQpgqYK)vJ38({bjSLj{V$JKqi@vG7@mK(_690+Fgoz=bR3Qb7>T|S zA4Mm872TPcsb7Fjyc~`5J38(kbmB^5iv+8n{c57OVB4{!;_&QCg#(UFhfe4gcR>T3 zoA&e3)80GvSEl|NH1QkI1a3jk)KGN75%J+THto-rxG>-=ae6wuhX$IDCb9@k@EbJn zkMZ}kuSg$$1Opl4zfn!uB2{Ac6D!cxWLRJ?({I%lHK^P<%MlJf89^IrAIVkO(4E2)nL z-UXd#kCgX86FVs7!_frWrrfDq=K1f;MME0SLf=d`qbs`yJ#3Gs{)N;}i}TQlm!ezy zEt=3ubf?y!@hXik+H0Wk>Z0vUtoQSO&va;&hNELAbj7Eo{Q`7_m!pBMMjxX=sUM6c za3`AB{pk3I(4BY&9X~PcuVVSXk3WqIS1=n5{3+V;8}#1)fCgNS23m!#;4gH74WBCd z*NoesiENL4`D_?lp)aPB(0O`1#q;kkjW46Z7tnp^51Hdreg{2lU!W5&M-SES=q>sW zO|Zt(MMAaEE#Cp{w`<%Fee)fGCf*HQV9%#{{>}6vDqLYd^pISQ*58Qk%n&qz;i-Qp zjzRlBi;jOezMl5C&~fjhiG7&zm+`w27k*Fw1?yqeXNo}0&;(k<{o)~Lz@yQL+o!&B z>d#EM2bxfCbgTQt>r+1z-J#OGTo~{XbZf?;TQecPoc7n^Td999<#}kL3(yIdptt55 zG|um6qHEE4Dm`1&S4H~s_n+dTq86Ibwy_a9a8GoC1JMZ%N6$oCY>cO3J-iP6&i5#K z%ci1d<6U(89CZ9A=%M`_%m4iUk7@W7?YO$!!1r|Yo^AA8k$EjNK;2jmov1OE6GcB% z4orJz^iX$0C+v&HyAECGQ1$tLkPFYiSoE9CoAGn>@%bJ7l3DHfB7vP_6LjL;(R;iv z8u$owAsx^JJEL2F4tk4wp^xEZSaK_G=E4EP(SW1TK;u%Lh-Use`Z4@IdXK+K`8PDt zsxK6A>Y)=iMR#OxG=Yw20-e$M&VGUC-$T-i3hj*!ye#Ew(SbLj2@OvBa5T|J(Um`y z_E*s7{OzEOjV`F}1fG8bHJwmQyeFDSt9TeXuuVKZo`jA&4LuXx(ZhB@ z%DvH*_DlI%G|o+_ACmg}N?f?&k#Q^Y?qWJ#w)xIzcOR!Xwe0I5y>uu`{~TGtdOjL2u1PXyR9)fv=B);vH!G zdr}^W#4lAm%7vd|V~dK4@o2~A;>&Rw8h93(*qoFPqlf9a)W3#KI6dX}(23@uhxN16e~-?y9PR)6B%Xg? zjsK>h+Dk>IHDeugz>cv|+zkz|H=0|xpO<+4ZRk&h ziImWl4UHqwKu@Bt;1|#Uv(Nw^ru+r^<@G!Cjrte*m~HxUkzif)4D5uSjRvW2QR2cC zwoJuA=$0LdPSif0icZ))<=*Hkw?CTTF!U*U0PEo>bmddg1G1`7eJTe}G#%Ui!1_wg$6hbP2gxWfi7smXQLDLLgQVM^5y8bYtVat1D5~!zdN|_bl!sw zxF4N(6gpsRd?xKLq7%M?PBcBfgT|Sc@<(XA&r)8B##@&1&y#un4YVp1|D?kPQ;LpN z(SX&_iE5(vcw6*c-UwaEVQD`OeSw{r^7-h5ed6V4yaBP~Kc8oZ8>ukU+t7eRQ+@z# zAB_%t0zCsyqL1mTDbGT0&8KLbW$3t{;;-oV)#yV0M*CGNy;d|-K?iJ#Hf)jl+USb5 zMel8MbjS8ZUsQ*nZHFQgBp#yhLePi@Z*BpJt zwn5LpspuIv5B*YlJ(~Ck^cIaqCwdNz_e$ztM|WfnR`dB^n2K-E6|O)BtVXx~A9TVk zrWU`m-5xEUh)#SaI`I|g&Rm0zy9NEs7>UN6fc`u%8C}p^EdTSr%eXMWiugzT8{N8! zX~i3EW3;>}+J8$l@HQ#$l=en(x41W&=z-|OozO&jVfp+2KrRe86y36WQ+^1Y@Nsly zPo;hmI`I^AE8jx<%}xC$DKAFjeuMsi^JCg8zfl~<&EDYoH=`Y?a7*_^@9E)az%$T^ z&O-xT94|v}QGfI)xE8(VL(nrcGWFwA|1x^GXQ79A0UGzSH%di-uc$EK3UuP%(a(gx z(T=sI7wy}{dT7FpQr;8ow{Oa=(S(nP$Dk8;NclwcFrQlD!ig_RLtpe3Tp6!J2i}HG za7Vlk?e`Fx@K|)hXVX3r8&ZA^{SoYcX#aJw%9};GRD%oeZ5?!i`YG>%e(1DBx2}Ea zyP*^IL?`SW`=PhsYV<>CaOy{*6F-XOGlV`JlaO0os(6nJCtil`#4mAG>erw<@Eb|Xbjdj!i{A1B7iXyR|6X0b+mA%I{uFego~gew-iF?Sk!S*Au>Adh0vFzsDd>bBpc5=ec`2H}w{bbT z1AnA_gBit6R7LyMjys?`+6di&-BR8&<^5;y{5#-aDtwU~g_b+UF7Yfh(D|`Xydv!b z(OYpdx`4Y=KLTCxBj}DimHH|1tr?|a;`ga=MGMdX-^3r|N;H8#ni*8hYC{1aWlI`q@4%B&*O?a}rI=uYj5CUyXtSZge=JoU$;{ZBww z+BM~~W3QsVRM9sTSD^u}!}5w#KQ!gx=tLvY1Rh1-Y|o=RFb5s~DLV0&@q6?Iwh|q` z9!;q7JND=KuU5X`A0|Nu?tpe|l=@xK04?JYSYBD|icWkEdL}MJ`wu`r+y8s%4LCRD1?Yr}(FDIkZ_!#bPL=lxYoO!m zq+IX4eE)Aog4cWwBL@7zc=NPDL<#uQy?a^Cs5<2b-blk=0Li(W#7>M*Q zRou*lTQvk5;BYkKDd^|-J7_{n(SR$koM_6`<`nI9(TR6KCuoVTuoap>+thbJ<8&_9 z^ZfPT!UQfZSMVE5G(ZUrI0#+Yuy{Wj@S*rbd>W1OBD#>N=mNe%SH2dFS7~l`7|VbE z+l~t}Z5;PPcc3+T&yG#~>GAy3_d{25GrB|f#wXD6lhB=d6Ycjw%1hA&Eywad|G$b0 zGg}iY%`3{)&;Yg3l{G+D-aPI5pot%n`eV_+C#2j3UBH>~lC)nR2hHR8H}D-)76W)v_GA!-GOSyOmeGxr@c6=2LJR|LM(1bolCs>Fk zv?P9q<-?cu)$!ldZ?K@~zX>|NCfdJLCk;ELqA5CY3v|N$Qa&gif!^C=(Lkr5Z@SY{ zz8DRB8QSk^^p@R>?%0U<7}Bp)@eCKu}*jJEDiB5jMh>sqdQlv(Z48pgVRAn!w=H--#wN zGWBE7xKE)IPe}dbl&4|&_y4oFF!MR-@KIcd23Q=wK?D7i_EqS(HK|{h`i&M9^_!yO zw?M~jllq;|Gt+1h&%Z0!mkPJ|AarYwMDKZ9bfsO;Kt0ev7sty}KM-B{O(_pWIM+TTP2%|jDgfc9UK@{j0*zr{6Z zoONlh`gze_+JcMnHz0JYcR^RYKl*Pfv_(Hod#3$bG~wIP3GPe%NOUL0qw!uv`^~{} zf^i9&__D%M#qu=#9{)iDZ}>$qa1(S#wnP)$G3DLReg~id4?!nvgRZm#`rEXwxC>s6 zjqnlltjxk1{`^0m3j_TRUFmmm9lD~e78ijV#NE&d_d&J`*lSZa5mb% zH=1BSEdTw##DyIP#i8hc`{HBh%AZFM=~Q%!KSsxWkDi?s@pp8hwQ+swD=#VfZxXk_ zl9_D7g#qfPp-IZk(Ut9;`h(EGho`-5>W@$TNofDBsXqtZ!CvT@x+?Xz#ygkr{JVnT zRG7#^=qY|O9VVd@zLxTv=)HS4^&g>u7oiLIA^wu~Rp=R5n{utCMZ9g%d3RdM^Y5W) zOodzA0!`px^cEb0uHY0jk@L_O$A##Geb5#6Ljzue#=9}?x5r^|cpQoLf25R)acH3D z&=tO%`swJz@1P0IMPE#xr~YU3Q}H)+eC02T1UEy=Tc8uwLF4R%?sOw`p`|@?(JHo0 zhm+6=&qP;x5js&{bVqJN1K)!Neh^*xBWU39Xup@xglC}r7ohzY7nUl%PKO`RjQ>JE z-z)vE=vWI4xGg$CBXozFqy6_s10S05(dY_0q}&x<$T?_2ebD~b;-)_TH*;Y|ccC4J zqZ2%iuKZav;EQM?Q_)1;iyxu=zCio^FZDm8asEK#uSX}Y{8dq|hUMpfOD;TA+oFMX zi1pEdP0&EQqy6?n1096!z~N{@?a-&;M06qN#!Jw+1JQUlpz&_S^6&rd=E6WD)8TP6 z;COVR7vp3!@O1PR%|*BL%eVr)*XvTQ{&n$G?SRJH6^++29`rTOzZo4)g_*ZSGwp&V z)GeNe_PaRc%TgYI_P;*$x1hIRXzCw`qtS^UM|bckH2!m6mx_v)(=a6+r=b(hjI&e! zAv)nAbVW;2{~h{j{skSk;Wx#Eo1hbIf!5cFJEpy1iHq{qq@rcY2c>)@I`G)oDRxE^ z>4vWC9CYh@rTuDj;_FhrHRYix4@bw9M&;u1G(3eS^a8q7lhKK$ru{86@VjV$`6(|< z`^bqcWCUP)(nvX(X;T_W6 z4NdR@bO-yUd}X{AxAc!TH*?`Bz8?)ZHXWY3zi;nKwMtgKou=7nZXcs_EkcKWm-au= zxz?fmHe6QZP&L*-bKN@SdT75UsoyQ`i^e&084rlJwG9oss%;;(6$~9fRJwD^q_xI_{=;JDSjckPqBa z#Ud`;(znn=-a}XPF}i}!Q~ny=;vdmZ>Wygst=AU)w?ikcize78R+&(2PoTv?Y*xI8L z9*rKVZfM8eXu#9ai3X$NMx_3NcsaWD6VZuoMOQu-jk_3q{aumJcIeL>yPyfRK?8R{6YZS(u4tksq7(Ir1JM3Mkp-73hI3)Y7vrut5e@VJ zx&!mjUk^W%`VZqOG|-nRe}hi=Q~U#+xZ?Zb#Z)!cLhE#uL#u->K*s8jQY4FGCk_1G-bUp$okSjr*wj{LfFtv+1xH9rz|X@MCns zFXFf8N`FQJZ9w~1{7{s)K;Nj_pgUA6)=hgoG+rYt{{wl=xNrpr#?I)#9_R!oqXAD# zeSb8-pm=WTN1^>MO8K&suR`Nri=MGt(ed~E!1HhB_fz4D9#6wFDKAD7S(fsOw11HL zRcK;gq<$?L=g0UvdYJ!36WIF4V&a|9L>vCd^Y6tTR5(!!G@*Udp&fb)4ns5Uir&K> z=%-jeblgSg%1Ut}n#fdi-0kS&JqzvsNXkz*zyzL;FQEgLqtEX<=r`{*=t}=a6R7l4 z(XR$NzINOhow#9aiY{OuG)~*pcaNoBTo||?`uGh*|FYE8=)f811hdf<%uRVd`nR>7 zP5C)=WiO%$E<@k-AEF6;i^f@xF7QvJKj(j4vE`e_8tBAz(Fq%(_pk*Ts9ow0Pq{nV zzZaT7e{_ODX+IYoKRRB8{#~Y23?KT^KncM@oTXV8GpqY1oe#sBW`%+<`1JDT%L*M1cqZ1BJ{pi$Rg?=c_Ncm}W zr&gqXHTvu2ieHPJtB-!{9uSXAeXkN1W;OzS@mzprd<8o3#CQvOOJ<>&KZy2!4DJ6c zy46cl|2CT7N-Y0PUvxp+{Z=frDY}ED)?Ao*XLQ0|@ys|9-I2@Ce%Gh|?)Wg4Kc2Dt zyrV1q7X2;mUua_6{9b%-sE5vTAQG=s(K!{p&;e(n-&ig}SNMPE%4eWEH5;Aq0d%5Q z(3O1@*P;EY{ZUL@10BB$x>JqO_7+(F{NFzn2gMF($0N}Mx}lF#Z*=SXqL0}?G?C$G zzw6R|3%X;sqwkFe(D9F?{Ry=Hf3f@vvZY*@(en6C{1{!~|Il~$dNi@k|17p}TXbdh z(D6;sz%5d4gC^V_9d~%j$E4f?%fBEyg$q|S0G((UdatiSS8^+w$h~O4r{ZF?|LbT1 zU!YIXx9C0o9i6z!hQjKx7Ml3Z8+iU5xH}cz^X6&jl#a)sflfpZQU5p`UD>7R)?SHD zGy&a#DRDX)e>OVd1M!Kta0Ac317D)Tfp4IJKSb+SrQ;ej&``nQiw z(8GKnx^u^%{Z2#UoQ*zyBTHPk!f|MZH=rw;hIX78XQQ{`0d$N1iw1rPee6C!1Ac?v zx(#uwzl#11(Dy)dwEyAgtt*|xg%h8Hu6T6Hm!dmzHM%2H(1dPD`%E;^d(-{^I(}YU zkop(UaWAL*2Abfz$oNvl+I09n9ezO*+K~Fne;0>t3pA1KQ{D+ppfNgeGj!a(DIbhZ z+$rUwV-NHYpHeRK`Fmy>&P8vl{5 zJmvpG`%V8hpa1t!;k|qUUFiaJf)~)OdoT6hp)36*ZcP0qjJAFYbRpZKTfH;-v@}O2 zY?JcgY47e|5H!<%RG8`Tcp)0-3iP?X4xL~+n&91N|NB$_7`g)s(4AY7`d88ZZ>Ibq zI_@*{TlUxf1p$AY{s-NGx|NCn_0Y4>IORiP=Xh-Fi6(X$I`Kd>-q5se$3XWTuihby271PZip_dS<3sQ z+!m|)^G8Q6oaiWYi~69?^Vw*iOXHR3$|j-{ULS8n@9`~YLU*7$_E_qlN8`Mb`Zv(O z2e%T-|3GF%m7>F@aZ5DgZQ~BHe%c$Oi8POUr@eLB+ogP1%15EMpj*nl(5Im>mY_vkRybBuVBy=JD(D-Mfan8o_$1Zx-#%;>;?{hev z3Rmz*IzE;1A~e8DSbiGNt$aWApP~2sD>Q)(Xq;-B6+5#H+P@YWXP3Aen$Vu5T(m+T zp99d$JEDP(Nc(ZA?}-LHCG`X1(0Cpi=R$PCE74c{#I(*zw-D01dDl z?YIiPXX{h0T&?I|2kqAs?RPNxb3nJ$4?^Q!h;H>HbZ2fv7d#Woe?evz7jEg}Xvb&K ztzUw6d@b#7p*!$#>OYHLq5Z!@-ygrAXQA@u#hKX_eY$o^xd}So-j@CO{~#_5&buJXdT{thhG1#f{LdZ<+dzDR)EXIV1JwZNc;JR$WGg_jodTPiLY5 z9zhS;V)Vn~12prm(TRUX`&Zkta7VPhIeI2Kq7(K+;|xUSxd@FnaZ8?mUj);saKgvX zfiI#jmXFeLJvvd9>V>t@{(GSP+oB)4$E7?Z?U$kxO+gd88=dc|)UPPz;&b#l{W(_O zsyNM!(H}C~p%e5*KmA6bUoNMjD|;NB=oK{4kI>(8eTODkZR;Zb&S>JT(VZxD;lhEv z(l7+wvP)8)gl2vR8u$rxXI?@Bf0p`R&^VjbC?=?bo|UHP8Ectx>y+CfXQfopF%8F{ zhwk`vI63uw(S!z|hifGIbX>~!OhXcc0hNc5jyey=nk|)6YPXOOKB1A10&LE}B1`e)IJm!LcFO6uRhlAmhtrNd`w_%ePM*T)TL z=9RWBCfF1`gj=I4-wRFrKy;!*Q|^rJ=rQP_JQ+Px=WomN?^aEu!c#dt4G*D-EkQGX z9X$hY<8JsrG{9yxi@-ah6E;EP?S;Nq4oQ1gG_jM=9Xt))p)+gp{JWxIRJekX=;xc$8HtjuPZ?s=ObO#2b{f4Fe{FKL{30{`^iP(U0X$lukFb@r|5Z#d_Xd*A8D|#dC zAEALhOZzwIgzM08zoonZP3&JZPSsjPzpdkTNPDSbhvK550orko*b+^sb=nU`6X_I> zi@oDObo}r*1|5GX`eAh?`s$s6E?^Gw^DpmwE*v-?UCBZ;^Tp^bS(frU@ss!kI_^6( zvGu9{CvLWV(Y`erZ+kSMUE*%G`}x0TDq5kLwMGLTioRlxMsHDH^iU2(S8_3$z)fi2 z>FBAyE9HmN{sj82e+J!&*U+cwLoEOPZ!H%FSQmds1OJ_JmD)x77HDGIpo#8;_S-$} z&Cv<=L3ge_x}!(NW6=J`qj7rG=K1$x02L-MEFDLs<3*{z9G&p$v`&FI$7KzC*q zx&u$3D_)GoeH)$lLo~6^;@7o#{;l|#3IlCKGp<~xIL+12Kjo^92C9Ju+8*tJG)d-yYquQX?)5v_Cp=hj=Wyl2g(?F!dwQK$oU|QtEF_c{chz;Zbx4 z7RT4oaUY`dtSKy2{KAC^RH|Ea*edRX2HF!1)D}Ipozea$roJB<`0UhQgibIXUEz)B z_*v+J9!77$)8%@ezlG`W3VN^Ji66)Rp@F_ezoKnGAHP~V7F*pMO|(7QuRHqT)IaqX zpr0ud(Z~57^hdAxxTDYiyXo*#I&8jE5oj0myIqTT7&_6(X&-_H8jDUi4NdIfw7-P@ zMDzhV@sDV{$~zbJJ7B3P6)m~&-Q62Kbf=-Ga}c^C=b%r=`6*wFZsE9i4ch;@cw_3P zr93m`S!kR&=;Qh5&OHBS_&gO(`~e#1bMzjsL07y!^_%WeB(x>kuV%_SpkFNNr@k$k zU!g$90OwrM-9T zkM6*bSQ?Rr3*u#IxCWi*dh}LIP5oV|zc1y7(8uqI)Gto`E9k;j#CKEw5gPY%WCu$X zYq)S_>(Buk(&1lpWt-M725g14Z-=g6ht$_k{qE>3X^JMaANs!N7`vn6PDlFcIxZ2i{gigrX_KzpRVBRavcXyPZJJ9aXf_~~(A91@42{m;je9WUU*2`@nd zj7Q&Cld%Ebi#|Rtqc50MY5yI40d2Euu@f!Oc>AL}auE7^|0B=^3`Wn=7<8U-yRv>? z1lLmG8*Dn7$fIbW1?XvBgl_e#XrMP!UWEqyD*l}Mf6$%Tv|-_vXxwe%j%d8y8nS*T zYMO?YX=sCH*d7gZ1iGSQ(%u_)r`#`IjUK88(Q)(9#1^G~S$r3rcomw^S0yf-;K%qY zy44%ejx~2HtcxblAnt|k#6j^$G+<9OfxdB29EQdlgD&_|bl%dqTueX%T%QiNqAR*R z?f0Sq9!&Z1loy}@pHKNkG|qB#hu({Sp%XT2RK(c>DVHi*a$&~%qk-BL4HX^HKu4kz zcaJB>zG*)b4Ll5uGb;6$pyS5J>(KZ&#c5dn2Xbbn!@cDSeo=tsdx#ELgbi>BdJDcp zKNEgNZ&l^piw~(C(Q(bupYirX6X=2EPgit7r=@-nmY@G~xp3gfG>k<%UXl81Q@#;R zXhysXUHO0F192W2?aK8GgqYJ3wN_W_oF|Mw{u2L2Kq_)Yv7UGWC=uvKkb1l%5d zEbGUn=!TjtKJw0Sv+E2uQ93GsS#(A1P?qN|yO zCizf&5)HNx9lta#OZ%HCe~2ctDt>`2DSzEKUqb3ODc*Xm(6?3>bd^KV2}h#|U5ZY0 zb-WHu;KsDymhwI5F5Hh!JRcqROxj;S;(B!A4Om`rv!YxT-H{sTEv$#$ik2yN zK_}{s#ybOD`H(mqx3^++DlSF`Tye|uck|yTd3hUEF76&QhX>JEPoP7eN&O4x7pYg# zU0#Xix)zP|JsRh?)bl5(Nyg9E1SM&lECh~6l1U*ly(E#hw-TxQ8 z8{6zv9H07V!p+eMTc*AZx`4ycSHRKexIS1uZfPG~;=+k9j^ol{BKmH*Dc*-p@C>@* zr76FHCiWH@XLZ`YK@<2P{*v|$=((@dqUc}RnhRIBJvv}l^b9mXx2z=^ct3RFwyAHQ z`c7#7qto64+fhCVJtI@m_;;ccKal#Tk)0@2EGaH3UPmYT0G((Rn!sxGyX#ss!GF?T zrDd^|)zF=(iH_e1ov=859fMxqRma3 zss9e$(SOjLsJ?fxfSR#xY_K=azbj}$g*HbM*gGBeM^|z%`j~Y}`3SWCap*)RpcC~^ z{aNTr&q@6lbn7ok{rJ@1us6@Y18=6niDsZ%KMS4UVRYc*DL;$u#0%)eZ>GE|?LVLs zuTTBo=&7&1Pq71aV*|9lNhuZkp%b-56X}!=UD59vz0ib4$FXSt%g_Z(KyS_UXo7d5 z2|kS8!e`N2_8xks)}jk7ZREnho9$Z!+!9To78-cx*bwcv2YMLyiu++XarD-8O8t>& z0>_~f^@(Sp@kb(Y_#b!{7Zq2e!vrk9`EWNn-iQ9l>}%*mYtR5c#XnMCv0stc=4ksi zXaYN+3u%ld(j1L*0G9uJ^3YTqfp+XxZs12fG*BP(vtS?^a1Yraf!gQ_8=#5qi6+t#P2_--4@rCH)OU?NQr|n} z(^DRV<=;=9lZp$_z?Y(d$H(i?Q+yNpT+c!idKBIA1!;d5-TE)lg=~n`4k{9_jqdEu zDesEq&;KS|IAKdHKffs-iUv9Yo%lpFKz}rWLFkSQPkA(&XbFvXecEqE7d8XE1+&n3 z9!AbT&np+Y5FNM}?f5F%@m=(JUWNAi34JPlMQ>G=w#8Gi4O*^+4X^>4cn36rW3dhP zjMum2`S%Bcm#J_ozd|Rdba1i4&CrBu#M)@UUDDnZ?Z0o@+n@=zPq_=aL*39F>xs_O z7ftk{gIT}N^LQ!@G!fnM>(M~Br+hEEBTuCKT*|Mb6MTrSa8=4{&a}t5FPM3dXGOxZ^=6J&~0)^u~T)h3*~y)8P7r!dl*e* zetaHXaA_GAu6RWnK23Qon%HmX%4@eT+!bAMbM)5igRb;Ibb^ktYubCFTiquPMqgy3 zkgxTniV0jaqv8(qo6a(H!nNo(m-XlytootFz&+534@MI?EOtSEFg_05$-(HvSE4(1 z1G*D;qHn_cu>AYUW#tS0ToMhq5}jam%HNHtv3t;Q&!OX%q7yAcZ^`?q z{~X==H7Rez^7sEr9g7uIMFVYvX1qN*al^Q0Y!wec`yYZnMTcSeg@q<^BAUP{DGx*! zIyB{x9eMukcp(*TX(9E=q?l(O-W5jdrYcc=0$kMc)HQp#l4#hio+3?<(|{tJBem zo<-xli$2cZrChypkzi>zE_{(3f^Ok)=q>4q?!>9+V|5|=s=g6@93Mp|SdLEcW$OPz z`|WT<(cT)}`eWls=q)|HuvBpt7fv`Fy;q~rM8={6uRzbnwdi5G8SQr`+HW?xBM+p0 z5gKnv%CDm1-az|*nD)=GChwn$uedPapJ-^>(0qbLwZH1Mfm7o{QeP$I!=aNy=}< z)#$DH1--bmi}%_x3yV1+)R3sCw6;To>J`X6UVJ zo%$Z=<2ew0QC$+Jpevt^F0Awf7Y2S79qQ& z(1qQICU|SS1Izyd-~Xh;yfn;@3sb)oJ&doS6TFl5PtYx0jZW}m>VHZ7Ms&qhk1Nj1 zR%oI-V)+(f`S<_3apB=>jt*#tW_nmW3LVfr_C!~BN*sVDa!$$@qH(T>*P!txqj9F9 zJA2!4JpWeArot88A0I~pEJRnlB)*0QdMD+N(GQ!|=&7#Mtw?O!xFb4#H}vUfhVH>qw}1Ej4xI6 z;leFD2i^Ly=t?G`9jB!ImXv3s0q3UtIJ$rZ@rC#*8s{xEvG?Pr@k=cK_le(e;i32i z9q$1T9}=l^0Z%}rUzm2GHs}Dp2 zABKJ?bwMXS1w9+5qy0vp{l=m@c6pqDCNw49iuSuB&W>}_{^*H3|8{sP4GYt-1bs}F zrThUp(JHk6nzVn9Zsi6v(an1nXJhNQBRZ}zx}z=71Uskxm=YHTJTVogq{A8L77als z7=^Cgo+Iyo3^+P8bg!Uhq^2KPpYtV#m#`5R?OfDRFFS_yv(Fy0LybxW% z%PGH|_LcDqbo{qy;_J`}enS)d2aUH$?;_6T=sdN0=jZ==RQOYCBlJ%)I%69gh`vf^ zVmYC>5S?%-I?*yT!MD@?DLV0&Xuq$~em|!CJ9;bs?#=UW!`7!1_o_Bp-aYPxX1YI` zKzsC_c1BlvBD%%B(L~Qc6S)}6zc)Y^HUk^sLi9bb8eQnd5*L0y-|^Jqu(dz~9ff=0 z8R$<$Q_$1?DB6E<%I~9ze2pglL;MY0`9CRF=~FDEI@+&xEY;(})7=;yurIpO1LL9S z1V^O3YdjuZ`N?VT7tcg@Y-k*X#xJ39C#C*IaRfiUz7S9(8Q;ud=EPA0W5$1KgNZJ;c0Z>2k3M989ML>bb>$7ftC6er@I=O zaCP)~ubFZ^v|l6i)-^-pwnF2yi5;-~`F|7_9#6S_C;kD*)t6dHed{HQO_zh4a2P~kn=fPPQk^z@?K5Z!^j(18b_k5eaf;xo}i zhNe6MUEyf-`7gzBXo6SA$>{j0r;D zybAqr`UCxOzDB=dp54)fH7jx97VnR4QM+_FKAxQR)6kWji6%HKj!gR)G-2cUW*d+0 z*e&Q;nuX3YFXaVjLZz3v@QwCq8ooyZY(z7x-oLn)wb6hL(F9te6Yh)Nl7rHID!R3U z(FxB*-*}_ZAIB%7J2MAKtW@y=7j|5MuJ8kNqR-I*KcKf}^D~M>YM?9HDej5ovyt{r z=$Yz!IPnZIHz7q0jkH1M=|FB<5HlwU>zyoUz<7(KL~qltfqjqz7> zXLcS?B)l8iza=_;e>9oDj?bc*E=3b~6&&wMJ*EN;gZP2LRV5R^?RngH@d|KqX7<&N1+oQhmP-w#yuU4 za~3*oB)W4KqYEqD$b}irMgz=^^HTpbI?*C@3zwi1tU)JOhwj9mssB6mRnIEo)j%h% zjqYfD^j7YLj4xFjm<}D#z(=KgLeZh3PwEGv2@XRO9-Z>Vaa`&rq7&T^XQGKdkoL#X zGqeCX|NMaf7oPr4)8Sh*k#*?6jVV_iTui)G+%DEd`_)Hxq6xZV&CrBfrTu`|9!>BF zt;0Jd(lJuDEe8l1bys2O#Rm>|Aoe{ zK7{ofaCA3mOqP-TH;LhmdxL4{AMgw+26F4sROnV=6p##yK9Fg`h zL-YB6DHTq9RT?Iv2~9-<-;S>2KJ>Afm+}%c@ayPSe}o>cZ_q?GKf9Q48#I1xG){eV z=k_ddQU2UVS9W|F&Pe?j^j=TG@|z9~JO>T<2%6~A=*pf?`%7s5*Hd1JCi(^1|0i@| zr9VH$mrVf#sk7Tc@EtmhWlGUD2)W z5l=?9xDWciI1@d^7ouM#uR{;rJy?E9(0)tMIPaqgeuB=kdKk~Y6<2{ z;YG*I(e@g#4!ZUA(Vc6GZuJ4^L>+Kn?2N|0C|-_Ed<{B&@^GGiGo6--xoChV(JlWk zdT$q@hjAIY(ht!Ie@y+KXuzr?3TvVX?}ARaI~uoH>RX|Ydz%s$-qS9r=!I_K5Om@T z(Lh(l>(IoeqVJ7q=;!%E*aDa0KKKhZ#U|%fspy2qqY2!C?(htBXG*iVa3v3*6Fr%R zg()vZ2P{Wd@?QKT{x7aYWy*-PHX%k zeuoD91s(Ti$`$7q32chCZ-q`+Gwy&UTrcenvHbUcns`COK51x&2JVO^)CGNvjzg<9eolNc9T%f3 zd=s7ELo~t9QvMoE^rzJSicb7b%GE{}*cV0*OvXmp}(XyB7l-xuvS z0A1;DG|pJG-{t7|3F!FAXuqi`-+2+wza8(T!Z+N*=&5`G{ZxDpeII;<240T_`V&pG zVr)^rIa*%>{Ue*&Xxx3$eo#C#^_}CfV_Cl$^`ydk+Yb#i6rJ$AlrKP6QbPM(nfA%( zL^q{=2AaTs&==ba@niIi{DOO7<%^4*+q=Yt6ShMGbxOG_I#CaFV4rw)+Q-H#;skX3 z4d{;DijJS1_J`w>secw-VCkhaEKkKdDSs3{M^E|Mw10}7 zI`N+9_|91V{(p2TPDG!A-sr${Qhxz@s4hV#nuhMoU1);$qX8dBcj#$!{Ih9)Ipw#| zaVt~)3d`UB*KuK>4Y3MOg^%CXXnj3&XZAoRYJmpY7u`Ak7QOe>zfEfb{;eAOpMb8| zKV`Fh4BG$7v|n4|`FF)r(qR@l!K3IGiYL?YHT1LKEo_Htuqp0-S&?8j^uw!n%4ebD z&rAI^=)^apxAJy0!8w-^$Sr-C3Z0)0i_k=t#T96PchMDog7*I`?Q7A1-=m+7>(N`V z<>f{H+UR4vBf6t|qKWKV;=;h~(G_$?x9kM;7YQTKL~cMQn2K)w^wiHn6PXhqMOXeb z`Z4|nHo))ExLaRQ%+n0LC8YzoFoDjvJ062hI1-)cf|M^uGarwhjT_LNxD!om7P_MQ zQ~xBI*aCFi3+TAl;wQ+w{13djFq8FYApTYC@|VTU(8P9$jnMXH=)`-Y6YP&B+z#tw zM|52OI5-YR`;S3yO{rYw=kJN>@PBBaX(`V{Cz_3BJ}320qlrA1@{8!l>hjco8ox;U zH|Wl+Oa0&Ij#R!9{rP_@E*fARG;kXD>)tQe-?Un&PDrOjE)KrwKSTq6p7K{{;2+TOzofh|Sp)6y^#y=Sw~fRCU9pGtXAd4?z<Mu+EM0DJgv`<6N!pzh^faT}^aV`wB01fm! zn&FG+mcE(x_tC^YMFXutck0(zX+qI|D>UAAaYr=nu4qDy(fBPUDVD1jzkA^ zOUDz@L{3K!*O}-9L(qUDQoaz~!OPGeUMHd-yED)oo*SP+<1d|%=l|6-yoCl_g-*C8 zevf9n9^HX|(0)}X7T@!0poer1^y9ZZ+I}KBt`C~PS?G?9ikFwta2*=>wv_Kl`4Kdc zr_mKJLNk96UFkA(+`H(6pQimQblkV-xOHg%KT^NRwZ%@Bs&Qd}>S)L9BD zzEAc4)v(=vH+_2lh<+DQLj{ z=<|OTdN0SKU5`#ME#4jH#>de(&#KS=VlE8u3OeDN>F^$!@h52D)oK48o#1D5 z+{Re>x+0-1vAlA$-!8Fn>RZPBvHbhLwp=)IM>OCODIb^e3Gq}kp#kUwLsLH@UYPdF z<2C3lydFLMkEQ$^x}Yzv%jf?OR2cBrxDlPG(&VCJH8jDRDc3;{(XJ^sPkU?hFt$a< zcR`>3Zs@J*i@q0zq6@ubGS9ygUqyvpiw>NU4!6cT(|#YC$V2D~9!veRDKAFHFOTn_ ziGGZZ`wHEOZ_xz)DCMH!`l6y58ep50>%{tKf=$qSx)&O_b?gwkqL1ZCXo7>{2z2~d zbmGg=H)&}?Dy~BZOilR?bilpwL3HBB&;*}}i_`upy22G`zjx6e**-y<%3f`5>23cJQ+>AFS??^sXr&4k0v%YUY7c+%JTe8 z;=+~Q7^k6IbO$={-jpARkE01cgC?>x<=4<}weP0>19Ty)(D>h?iLOKAZp8BM|0<>w z4b{*AHPKUA51ptL`rGjX(bIhbdaC=Q356bb>xR3R@RTQ`ac)B6Oh?DvfzEdy`qS`(|Ht$1 zR=-MxTmK0fa4ovUKcEx;jSj4NW6@p*UCAzJ{qAW0rs&WA2coyCd&+&&J_e0H9!+Rc zDHT)EfYZ^;?@9T7bOrNLei99^5Dl;d{m*lkr@RIo{}Z~x-_b)?>!u=pJ#?Xs(Z{m1 zPcDu`56Nj*ABUpfXs$(f;BNFcn)6d$f&NnJOEgfWsYSm!Xt_BWr(^2-$1&&*O+w)4j-k%kLZL|Z!SJ=8=!&rja|?{ebF;A2JL?>Ho#eE;!Dv#U-$@j#lO+S z>ffR~|LwW3p)WSZ%TvA&8&Q50-O3+vcdUMEk?=lfeRp)CbJ6bw|{|35%_tO5q)UQP+{1JV>RLm$ASQC9O z?1?6PK#2=8>5K+E3Z0;P$~|MB)DJ)t8;rg$hG7F7gPxUJ(K9p`JsZ#CzW6S-!p(25 zQqdj{LdTab;=+JepqXBSCUhH?Z%x|o$0pQ2g3a&)^u_4I9(oyn$y7Joo$t{f7-3I\n" "Language: es\n" @@ -25,180 +25,190 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "No instalado" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "Fallo al enviar el correo : %s" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "Prueba de Correo Calibre-web" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "Este mensaje ha sido enviado via Calibre Web." -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "Enviar a Kindle" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "Formato no compatible para enviar por correo electronico" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "Invitado" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "Solicitando paquete de actualización" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "Descargando paquete de actualización" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "Descomprimiendo paquete de actualización" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "Ficheros sustituidos" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "Los conexiones de base datos están cerradas" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "El servidor está detenido" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "Libros populares (los mas descargados)" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "Libros mejor valorados" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "Libros al azar" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "Lista de autores" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Error en la apertura del eBook. El archivo no existe o no es accesible:" -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "Lista de series" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "Series : %(serie)s" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "Lenguajes disponibles" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "Lenguaje: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "Lista de categorias" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "Categoría : %(name)s" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "Estadisticas" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "Servidor reiniciado. Por favor, recargue la página" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana." -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "Actualización realizada" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "búsqueda" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "Libros leídos" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "Libros no leídos" @@ -206,7 +216,7 @@ msgstr "Libros no leídos" msgid "Read a Book" msgstr "Leer un libro" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "¡Por favor completar todos los campos!" @@ -261,7 +271,7 @@ msgstr "Envio de Libro a %(kindlemail)s correctamente" 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:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "Configurar primero la dirección de correo Kindle por favor..." @@ -270,179 +280,179 @@ msgstr "Configurar primero la dirección de correo Kindle por favor..." msgid "Book has been added to shelf: %(sname)s" msgstr "El libro fue agregado a el estante: %(sname)s" -#: cps/web.py:2164 +#: cps/web.py:2166 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "El libro fue removido del estante: %(sname)s" -#: cps/web.py:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, 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:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "Estante %(title)s creado" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "Ha sucedido un error" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "crear un estante" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "Estante %(title)s cambiado" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "Editar un estante" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Estante %(name)s fue borrado correctamente" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "Estante: '%(name)s'" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Cambiar orden del estante: '%(name)s'" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "Existe una cuenta vinculada a esta dirección de correo." -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "Perfil actualizado" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "Página de administración" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "Configuración de Calibre-web actualizada" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "Configuración básica" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "Localicación de la BD inválida. Por favor, introduzca la ruta correcta." -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "Agregar un nuevo usuario" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "Usuario '%(user)s' creado" -#: cps/web.py:2606 +#: cps/web.py:2607 msgid "Found an existing account for this email address or nickname." msgstr "" "Se ha encontrado una cuenta vinculada a esta dirección de correo o nombre" " de usuario." -#: cps/web.py:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "Parámetros de correo actualizados" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Exito al realizar envio de prueba a %(kindlemail)s" -#: cps/web.py:2638 +#: cps/web.py:2639 #, 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:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "Ajustes de correo electrónico actualizados" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "Editar parametros de correo" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuario '%(nick)s' borrado" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuario '%(nick)s' actualizado" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "Error inesperado." -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "Editar Usuario %(nick)s" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "editar metainformación" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "No se permite subir archivos con la extensión \"%s\" a este servidor" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "El archivo a subir debe tener una extensión" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Fallo al crear la ruta %s (permiso negado)" -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Fallo al almacenar el archivo %s (permiso negado)" -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Fallo al borrar el archivo %s (permiso negado)" @@ -647,7 +657,7 @@ msgstr "Descripcion" msgid "Tags" msgstr "Etiqueta" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Series" @@ -734,7 +744,7 @@ msgstr "Haga clic en la portada para cargar la metainformación en el formulario msgid "Loading..." msgstr "Cargando..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "Cerrar" @@ -943,7 +953,7 @@ msgstr "Guardar cambios" msgid "Save settings and send Test E-Mail" msgstr "Guardar cambios y enviar un correo de prueba" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "Siguiente" @@ -988,7 +998,7 @@ msgstr "Libros recientes" msgid "Show Random Books" msgstr "Mostrar libros al azar" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "Autores" @@ -1053,39 +1063,39 @@ msgstr "" msgid "Descending" msgstr "" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "Descubrir" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "Categoria" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "Lenguaje" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "Estantes públicos" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "Sus estantes" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Crear un estante" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "Acerca de" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "" diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index 01a46efb..28fc847b 100644 --- a/cps/translations/fr/LC_MESSAGES/messages.po +++ b/cps/translations/fr/LC_MESSAGES/messages.po @@ -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-11-12 14:54+0100\n" +"POT-Creation-Date: 2017-11-30 16:45+0100\n" "PO-Revision-Date: 2017-10-26 22:42+0200\n" "Last-Translator: Nicolas Roudninski \n" "Language: fr\n" @@ -31,182 +31,192 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "non installé" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "Impossible d'envoyer le courriel : %s" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "Ce message a été envoyé depuis calibre web." -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "Envoyer vers Kindle" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "Impossible de trouver un format adapté à envoyer par courriel" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "Invité" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "Téléchargement la mise à jour" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "Décompression de la mise à jour" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "Fichiers remplacés" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "Connexion à la base de donnée fermée" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "Serveur arrêté" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la page" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "Ajouts récents" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "Livres récents" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "Anciens livres" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "Livres (A-Z)" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "Livres (Z-A)" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "Livres populaires (les plus téléchargés)" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "Livres les mieux notés" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "Livres au hasard" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "Liste des auteurs" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est " "pas accessible :" -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "Liste des séries" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "Séries : %(serie)s" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "Langues disponibles" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "Langue : %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "Liste des catégories" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "Catégorie : %(name)s" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "Statistiques" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "Serveur redémarré, merci de rafraîchir la page" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "Mise à jour effectuée" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "recherche" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "Livres lus" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "Livres non-lus" @@ -214,7 +224,7 @@ msgstr "Livres non-lus" msgid "Read a Book" msgstr "Lire un livre" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "SVP, complétez tous les champs !" @@ -269,7 +279,7 @@ msgstr "Livres envoyés à %(kindlemail)s avec succès" 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:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "Veuillez configurer votre adresse kindle d'abord..." @@ -278,179 +288,179 @@ msgstr "Veuillez configurer votre adresse kindle d'abord..." msgid "Book has been added to shelf: %(sname)s" msgstr "Le livre a bien été ajouté à l'étagère : %(sname)s" -#: cps/web.py:2164 +#: cps/web.py:2166 #, 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:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, 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:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "Étagère %(title)s créée" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "Il y a eu une erreur" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "créer une étagère" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "Modifier une étagère" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "l’étagère %(name)s a été supprimé avec succès" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "Étagère : '%(name)s'" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "Un compte avec cette adresse de courriel existe déjà." -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "Profil de %(name)s" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "Profil mis à jour" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "Page administrateur" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "Configuration de Calibre-web mise à jour" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "Configuration basique" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "Ajouter un nouvel utilisateur" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "Utilisateur '%(user)s' créé" -#: cps/web.py:2606 +#: cps/web.py:2607 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:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "Paramètres de courriel mis à jour" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2638 +#: cps/web.py:2639 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "Préférences e-mail mises à jour" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "Éditer les paramètres de courriel" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "Utilisateur '%(nick)s' supprimé" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "Utilisateur '%(nick)s' mis à jour" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "Oups ! Une erreur inconnue a eu lieu." -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "Éditer l'utilisateur %(nick)s" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" "Erreur à l’ouverture du livre. Le fichier n’existe pas ou n’est pas " "accessible" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "modifier les métadonnées" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "inconnu" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "Pour être téléverser le fichier doit avoir une extension" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossible de créer le chemin %s (permission refusée)" -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossible d'enregistrer le fichier %s (permission refusée)" -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossible de supprimer le fichier %s (permission refusée)" @@ -655,7 +665,7 @@ msgstr "Description" msgid "Tags" msgstr "Étiquette" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Séries" @@ -742,7 +752,7 @@ msgstr "" msgid "Loading..." msgstr "Chargement…" -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "Fermer" @@ -951,7 +961,7 @@ msgstr "Sauvegarder les réglages" msgid "Save settings and send Test E-Mail" msgstr "Sauvegarder les réglages et tester l’envoi d’e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "Suivant" @@ -998,7 +1008,7 @@ msgstr "Les derniers livres" msgid "Show Random Books" msgstr "Montrer des livres au hasard" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "Auteurs" @@ -1063,39 +1073,39 @@ msgstr "Ascendant" msgid "Descending" msgstr "Descendant" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "Découvrir" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "Catégories" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "Langues" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "Étagères publiques" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "Vos étagères" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Créer une étagère" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "À propos" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "Précédent" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "Détails du livre" diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 39e0bbc9..1e2febe8 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -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-11-12 14:54+0100\n" +"POT-Creation-Date: 2017-11-30 16:45+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: Marco Picone \n" "Language: it\n" @@ -25,182 +25,192 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "non installato" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "Non trovato" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "formato epub non trovato" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "non ci sono permessi" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "errore" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "Impossibile inviare email: %s" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "test email Calibre-web" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "L'email è stata inviata tramite Calibre Web." -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "Invia a Kindle" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "Impossibile trovare i formati adatti per l'invio tramite email" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "ospite" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "Richiesta del pacchetto di aggiornamento" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "Scaricare il pacchetto di aggiornamento" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "Decomprimere pacchetto di aggiornamento" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "I file vengono sostituiti" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "Le connessioni di database sono chiuse" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "Il server viene arrestato" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "Aggiornamento completato, prego premere bene e ricaricare pagina" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "Libri aggiunti di recente" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "I più nuovi libri" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "Libri più vecchi" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "Ebook (A-Z)" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "Ebook (Z-A)" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "Hot Books (più scaricati)" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "I migliori libri valutati" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "Libri casuali" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "Elenco degli autori" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile:" -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "Lista delle serie" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "Serie :" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "Lingue disponibili" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "Lingue: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "Elenco categorie" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "Categoria : %(name)s" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "Mancano autorizzazioni di esecuzione" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "Statistica" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "Server riavviato, ricarica pagina" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "Eseguire l'arresto del server, chiudi la finestra." -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "Aggiornamento fatto" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "ricerca" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "Leggere libri" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "Libri non letti" @@ -208,7 +218,7 @@ msgstr "Libri non letti" msgid "Read a Book" msgstr "Leggere un libro" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "Compila tutti i campi" @@ -263,7 +273,7 @@ msgstr "Libro inviare con successo %(kindlemail)s correttamente" msgid "There was an error sending this book: %(res)s" msgstr "Si è verificato un errore durante l'invio di questo libro: %(res)s" -#: cps/web.py:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "Si prega di configurare innanzitutto il tuo indirizzo email..." @@ -272,183 +282,183 @@ msgstr "Si prega di configurare innanzitutto il tuo indirizzo email..." msgid "Book has been added to shelf: %(sname)s" msgstr "Il libro è stato aggiunto alla mensola: %(sname)s" -#: cps/web.py:2164 +#: cps/web.py:2166 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Il libro è stato rimosso dalla mensola: %(sname)s" -#: cps/web.py:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Uno scaffale con il nome '%(title)s' esiste già." -#: cps/web.py:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "Mensola %(title)s creato" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "c'era un errore" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "creare uno scaffale" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "Mensola %(title)s cambiato" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "Modifica un ripiano" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "cancellato con successo il ripiano %(name)s" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "Mensola: '%(name)s'" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" "Errore durante l'apertura dello scaffale. La mensola non esiste o non è " "accessibile" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Modificare l'ordine della mensola: '%(name)s'" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "Trovato un account esistente per questo indirizzo email." -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "Profilo di %(name)s" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "Profilo aggiornato" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "Pagina di amministrazione" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "Aggiornamento della configurazione del calibro-web" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "Configurazione di base" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "Posizione DB non valida. Inserisci il percorso corretto." -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "Aggiungi un nuovo utente" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "utente '%(user)s' creato" -#: cps/web.py:2606 +#: cps/web.py:2607 msgid "Found an existing account for this email address or nickname." msgstr "" "È stato trovato un account collegato a questo indirizzo e-mail o nome " "utente." -#: cps/web.py:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "Parametri di posta aggiornati" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Successo quando invii il test a %(kindlemail)s" -#: cps/web.py:2638 +#: cps/web.py:2639 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Impossibile inviare il test a E-Mail: %(res)s" -#: cps/web.py:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "Impostazioni email aggiornate" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "Modificare i parametri della posta" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "utente '%(nick)s' cancellati" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "utente '%(nick)s' aggiornato" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "Errore imprevisto." -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "Modifica utente %(nick)s" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "modificare la metainformazione" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Non è consentito caricare i file con l'estensione \"%s\" a questo server" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "Sconosciuto" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "Il file da caricare deve avere un'estensione" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossibile creare il percorso %s (autorizzazione negata)" -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossibile archiviare il file %s (autorizzazione negata)" -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossibile eliminare il file %s (autorizzazione negata)" @@ -653,7 +663,7 @@ msgstr "Descrizione" msgid "Tags" msgstr "Tags" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Serie" @@ -740,7 +750,7 @@ msgstr "Fai clic sul coperchio per caricare i metadati nel modulo" msgid "Loading..." msgstr "Caricamento in corso..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "Chiuso" @@ -949,7 +959,7 @@ msgstr "Salva le impostazioni" msgid "Save settings and send Test E-Mail" msgstr "Salvare le impostazioni e inviare Test e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "Prossimo" @@ -994,7 +1004,7 @@ msgstr "Gli ultimi Libri" msgid "Show Random Books" msgstr "Mostra libri casuali" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "Autori" @@ -1059,39 +1069,39 @@ msgstr "Ascendente" msgid "Descending" msgstr "Discendente" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "Per scoprire" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "Categoria" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "lingua" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "Ripiani pubblici" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "I tuoi scaffali" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Crea una mensola" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "Di" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "Precedente" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "Dettagli ebook" diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 2e29210b..18a36030 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web dutch translation by Ed Driesen (GPL V3)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-12 14:54+0100\n" +"POT-Creation-Date: 2017-11-30 16:45+0100\n" "PO-Revision-Date: 2017-06-21 20:15+0200\n" "Last-Translator: \n" "Language: nl\n" @@ -33,182 +33,192 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "niet geïnstalleerd" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "kindlegen binary %(kindlepath)s niet gevonden" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "epub type niet gevonden voor boek met id: %(book)d" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "kindlegen gefaald, geen rechten om uit te voeren" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "Kindlegen gefaald met Error %(error)s. Bericht: %(message)s" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "Mail sturen gefaald: %s" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "Calibre-web test email" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "Deze mail werd verstuurd met calibre web." -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "Stuur naar Kindle:" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "Kon geen geschikte formaten vinden om te verzenden per email" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "Gast" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "Update pakket wordt aangevraagd" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "Update pakket wordt gedownload" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "Update pakket wordt uitgepakt" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "Bestanden zijn vervangen" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "Database verbindingen zijn gesloten" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "Server is gestopt" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "Update voltooid, klik op ok en herlaad de pagina" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "Recent toegevoegde boeken" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "Nieuwste boeken" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "Oudste boeken" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "Boeken (A-Z)" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "Boeken (A-Z)" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "Populaire boeken (meeste downloads)" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "Best beoordeelde boeken" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "Willekeurige boeken" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "Auteur lijst" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Fout bij openen van het boek. Bestand bestaat niet of is niet " "toegankelijk:" -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "Serie lijst" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "Beschikbare talen" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "Categorie lijst" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "Categorie: %(name)s" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "Rechten om uit te voeren ontbreken" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "Statistieken" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "Server herstart, gelieve de pagina herladen" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "Bezig met het stoppen van de server, gelieve venster te sluiten" -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "Update voltooid" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "zoek" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "Gelezen Boeken" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "Ongelezen Boeken" @@ -216,7 +226,7 @@ msgstr "Ongelezen Boeken" msgid "Read a Book" msgstr "Lees een boek" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "Gelieve alle velden in te vullen!" @@ -271,7 +281,7 @@ msgstr "Boek met succes verstuurd naar %(kindlemail)s" msgid "There was an error sending this book: %(res)s" msgstr "Er trad een fout op bij het versturen van dit boek: %(res)s" -#: cps/web.py:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "Gelieve eerst je kindle email adres te configureren..." @@ -280,179 +290,179 @@ msgstr "Gelieve eerst je kindle email adres te configureren..." msgid "Book has been added to shelf: %(sname)s" msgstr "Boek werd toegevoegd aan boekenplank: %(sname)s" -#: cps/web.py:2164 +#: cps/web.py:2166 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Boek werd verwijderd van boekenplank: %(sname)s" -#: cps/web.py:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Een boekenplank met de naam '%(title)s' bestaat reeds." -#: cps/web.py:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "Boekenplank %(title)s aangemaakt" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "Er deed zich een fout voor" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "maak een boekenplank" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "Boekenplank %(title)s gewijzigd" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "Bewerk een boekenplank" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Boekenplank %(name)s succesvol gewist" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "Boekenplank: '%(name)s'" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" "Fout bij openen boekenplank. Boekenplank bestaat niet of is niet " "toegankelijk" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Verander volgorde van Boekenplank: '%(name)s'" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "Een bestaand gebruiker gevonden voor dit email adres." -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's profiel" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "Profiel aangepast" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "Administratie pagina" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "Calibre-web configuratie aangepast" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "Basis configuratie" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "DB locatie is niet geldig, gelieve het correcte pad in te geven" -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "Voeg nieuwe gebruiker toe" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "Gebruiker '%(user)s' aangemaakt" -#: cps/web.py:2606 +#: cps/web.py:2607 msgid "Found an existing account for this email address or nickname." msgstr "Een bestaande gebruiker gevonden voor dit emailadres of gebruikersnaam." -#: cps/web.py:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "Mail instellingen aangepast" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Test email met succes verstuurd naar %(kindlemail)s" -#: cps/web.py:2638 +#: cps/web.py:2639 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Er trad een fout op met het versturen van de test email: %(res)s" -#: cps/web.py:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "Email instellingen aangepast" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "Bewerk mail instellingen" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "Gebruiker '%(nick)s' verwijderd" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "Gebruiker '%(nick)s' aangepast" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "Een onbekende fout deed zich voor." -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "Bewerk gebruiker '%(nick)s'" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Fout bij openen eBook. Het bestand bestaat niet of is niet toegankelijk" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "Bewerk metadata" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Het uploaden van bestandsextensie \"%s\" is niet toegestaan op deze server" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "Bestand opslaan niet gelukt voor %s." -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "onbekend" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "Up te loaden bestanden dienen een extensie te hebben" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Het pad %s aanmaken mislukt (Geen toestemming)." -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Bestand %s opslaan mislukt (Geen toestemming)." -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Bestand %s wissen mislukt (Geen toestemming)." @@ -657,7 +667,7 @@ msgstr "Omschrijving" msgid "Tags" msgstr "Tags" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Series" @@ -744,7 +754,7 @@ msgstr "Klik op de omslag om de metatadata in het formulier te laden" msgid "Loading..." msgstr "Aan het laden..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "Sluit" @@ -953,7 +963,7 @@ msgstr "Bewaar instelling" msgid "Save settings and send Test E-Mail" msgstr "Bewaar instellingen en stuur test email" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "Volgende" @@ -998,7 +1008,7 @@ msgstr "Recentste boeken" msgid "Show Random Books" msgstr "Toon Willekeurige Boeken" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "Auteurs" @@ -1063,39 +1073,39 @@ msgstr "Oplopend" msgid "Descending" msgstr "Aflopend" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "Ontdek" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "Categorieën" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "Talen" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "Publieke Boekenplanken" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "Jou Boekenplanken" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Maak een boekenplank" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "Over" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "Vorige" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "Boek Details" diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index 4e00030b..6adf346c 100644 --- a/cps/translations/pl/LC_MESSAGES/messages.po +++ b/cps/translations/pl/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre Web - polski (POT: 2017-04-11 22:51)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-12 14:54+0100\n" +"POT-Creation-Date: 2017-11-30 16:45+0100\n" "PO-Revision-Date: 2017-04-11 22:51+0200\n" "Last-Translator: Radosław Kierznowski \n" "Language: pl\n" @@ -24,182 +24,192 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "nie zainstalowane" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "Nie można wysłać poczty: %s" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "Calibre-web testowy email" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "Ten e-mail został wysłany przez Calibre Web." -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "Wyślij do Kindle" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "" "Nie można znaleźć żadnych formatów przystosowane do wysyłania pocztą " "e-mail" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "Gość" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "Żądanie o pakiet aktualizacji" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "Pobieranie pakietu aktualizacji" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "Rozpakowywanie pakietu aktualizacji" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "Pliki zostały zastąpione" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "Połączenia z bazą danych zostały zakończone" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "Serwer jest zatrzymany" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "Najpopularniejsze książki (najczęściej pobierane)" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "Najlepiej oceniane książki" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "Losowe książki" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "Lista autorów" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:" -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "Lista serii" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "Seria: %(serie)s" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "Dostępne języki" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "Język: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "Lista kategorii" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "Statystyki" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno" -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "Aktualizacja zakończona" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "szukaj" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "Przeczytane książki" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "Nieprzeczytane książki" @@ -207,7 +217,7 @@ msgstr "Nieprzeczytane książki" msgid "Read a Book" msgstr "Czytaj książkę" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "Proszę wypełnić wszystkie pola!" @@ -262,7 +272,7 @@ msgstr "Książka została pomyślnie wysłana do %(kindlemail)s" msgid "There was an error sending this book: %(res)s" msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s" -#: cps/web.py:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..." @@ -271,177 +281,177 @@ msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..." msgid "Book has been added to shelf: %(sname)s" msgstr "Książka została dodana do półki: %(sname)s" -#: cps/web.py:2164 +#: cps/web.py:2166 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Książka została usunięta z półki: %(sname)s" -#: cps/web.py:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Półka o nazwie '%(title)s' już istnieje." -#: cps/web.py:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "Półka %(title)s została utworzona" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "Wystąpił błąd" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "utwórz półkę" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "Półka %(title)s została zmieniona" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "Edytuj półkę" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "pomyślnie usunięto półkę %(name)s" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "Półka: '%(name)s'" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Zmieniono kolejność półki: '%(name)s'" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "Znaleziono istniejące konto dla tego adresu e-mail." -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "Profil użytkownika %(name)s" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "Zaktualizowano profil" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "Portal administracyjny" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "Konfiguracja Calibre-web została zaktualizowana" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "Podstawowa konfiguracja" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę" -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "Dodaj nowego użytkownika" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "Użytkownik '%(user)s' został utworzony" -#: cps/web.py:2606 +#: cps/web.py:2607 msgid "Found an existing account for this email address or nickname." msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika." -#: cps/web.py:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "Zaktualizowano ustawienia poczty e-mail" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Testowy e-mail został pomyślnie wysłany do %(kindlemail)s" -#: cps/web.py:2638 +#: cps/web.py:2639 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s" -#: cps/web.py:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "Zaktualizowano ustawienia e-mail" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "Edytuj ustawienia poczty e-mail" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "Użytkownik '%(nick)s' został usunięty" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "Użytkownik '%(nick)s' został zaktualizowany" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "Wystąpił nieznany błąd." -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "Edytuj użytkownika %(nick)s" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "edytuj metadane" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Rozszerzenie pliku \"%s\" nie jest dozwolone do przesłania na ten serwer" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "Plik do przesłania musi mieć rozszerzenie" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)." -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)." -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)." @@ -646,7 +656,7 @@ msgstr "Opis" msgid "Tags" msgstr "Tagi" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Seria" @@ -733,7 +743,7 @@ msgstr "Kliknij okładkę, aby załadować metadane do formularza" msgid "Loading..." msgstr "Ładowanie..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "Zamknij" @@ -943,7 +953,7 @@ msgstr "Zapisz ustawienia" msgid "Save settings and send Test E-Mail" msgstr "Zapisz ustawienia i wyślij testową wiadomość e-mail" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "Następne" @@ -988,7 +998,7 @@ msgstr "Ostatnie książki" msgid "Show Random Books" msgstr "Pokazuj losowe książki" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "Autorzy" @@ -1053,39 +1063,39 @@ msgstr "" msgid "Descending" msgstr "" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "Odkrywaj" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "Kategorie" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "Języki" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "Publiczne półki" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "Twoje półki" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Utwórz półkę" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "O programie" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "" diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index be51eb93..cb6d86b8 100644 --- a/cps/translations/ru/LC_MESSAGES/messages.po +++ b/cps/translations/ru/LC_MESSAGES/messages.po @@ -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-11-12 14:54+0100\n" +"POT-Creation-Date: 2017-11-30 16:45+0100\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n" "Last-Translator: Pavel Korovin \n" "Language: ru\n" @@ -26,180 +26,190 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "Отсутствует" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "Ошибка отправки письма: %s" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "Тестовое письмо от Calibre-web" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "Письмо было отправлено через calibre web" -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "Отправить на Kindle" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "Невозоможно найти формат, подходящий для отправки по email" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "Гость" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "Проверка обновлений" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "Загрузка обновлений" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "Распаковка обновлений" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "Файлы заменены" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "Соеднинения с базой данных закрыты" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "Сервер остановлен" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "Обновления установлены, нажмите okay и перезагрузите страницу" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "Популярные книги (часто загружаемые)" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "Книги с наивысшим рейтингом" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "Случайный выбор" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "Авторы" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Невозможно открыть книгу. Файл не существует или недоступен." -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "Серии" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "Серии: %(serie)s" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "Языки" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "Язык: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "Категории" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "Категория: %(name)s" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "Статистика" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "Сервер перезагружен, пожалуйста, перезагрузите страницу" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "Производится остановка сервера, пожалуйста, закройте окно" -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "Обновление закончено" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "поиск" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "Прочитанные" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "Непрочитанные" @@ -207,7 +217,7 @@ msgstr "Непрочитанные" msgid "Read a Book" msgstr "Читать книгу" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "Пожалуйста, заполните все поля!" @@ -262,7 +272,7 @@ msgstr "Книга успешно отправлена на %(kindlemail)s" msgid "There was an error sending this book: %(res)s" msgstr "Ошибка при отправке книги: %(res)s" -#: cps/web.py:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "Пожалуйста, сначала укажите ваш kindle email..." @@ -271,177 +281,177 @@ msgstr "Пожалуйста, сначала укажите ваш kindle email. msgid "Book has been added to shelf: %(sname)s" msgstr "Книга добавлена на книжную полку: %(sname)s" -#: cps/web.py:2164 +#: cps/web.py:2166 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Книга удалена с книжной полки: %(sname)s" -#: cps/web.py:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Книжкная полка с названием '%(title)s' уже существует." -#: cps/web.py:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "Создана книжная полка %(title)s" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "Произошла ошибка" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "создать книжную полку" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "Книжная полка %(title)s изменена" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "Изменить книжную полку" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Книжная полка %(name)s удалена" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "Книжная полка: '%(name)s'" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Изменить расположение книжной полки '%(name)s'" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "Найдена учётная запись для для данного адреса email." -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "Профиль %(name)s" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "Профиль обновлён" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "Администрирование" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "Конфигурация Calibre-web обновлена" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "Настройки сервера" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "Неверный путь к фалу БД, пожалуйста, укажите правильное расположение БД" -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "Добавить пользователя" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "Пользователь '%(user)s' добавлен" -#: cps/web.py:2606 +#: cps/web.py:2607 msgid "Found an existing account for this email address or nickname." msgstr "Для указанного адреса или имени найдена существующая учётная запись." -#: cps/web.py:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "Настройки почты изменены" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Тестовое сообщение успешно отправлено на адрес %(kindlemail)s" -#: cps/web.py:2638 +#: cps/web.py:2639 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Ошибка отправки тестового сообщения: %(res)s" -#: cps/web.py:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "Обновлены настройки e-mail" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "Изменить почтовые настройки" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "Пользователь '%(nick)s' удалён" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "Пользователь '%(nick)s' обновлён" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "Произошла неизвестная ошибка." -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "Изменить пользователя %(nick)s" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "изменить метаданные" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Запрещена загрузка файлов с расширением \"%s\"" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "неизвестно" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "Загружаемый файл должен иметь расширение" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Ошибка при создании пути %s (доступ запрещён)" -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Ошибка записи файоа %s (доступ запрещён)" -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Ошибка удаления файла %s (доступ запрещён)" @@ -646,7 +656,7 @@ msgstr "Описание" msgid "Tags" msgstr "Теги" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "Серии" @@ -733,7 +743,7 @@ msgstr "Нажмите на обложку, чтобы получить мета msgid "Loading..." msgstr "Загрузка..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "Закрыть" @@ -940,7 +950,7 @@ msgstr "Сохранить настройки" msgid "Save settings and send Test E-Mail" msgstr "Сохранить настройки и отправить тестовое письмо" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "Дальше" @@ -985,7 +995,7 @@ msgstr "Последние поступления" msgid "Show Random Books" msgstr "Показывать случайные книги" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "Авторы" @@ -1050,39 +1060,39 @@ msgstr "" msgid "Descending" msgstr "" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "Обзор" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "Категории" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "Языки" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "Общие книжные полки" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "Ваши книжные полки" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Создать книжную полку" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "О программе" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index a5b1cded..190ef138 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2017-11-12 14:54+0100\n" +"POT-Creation-Date: 2017-11-30 16:45+0100\n" "PO-Revision-Date: 2017-01-06 17:00+0000\n" "Last-Translator: dalin \n" "Language: zh_Hans_CN\n" @@ -26,180 +26,190 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "未安装" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "找不到kindlegen二进制 %(kindlepath)s" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "没有找到书籍ID %(book)d 的epub格式" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "kindlegen失败,没有可执行权限" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "Kindlegen 因为错误 %(error)s 失败。消息: %(message)s" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "发送邮件失败: %s" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "Calibre-web 测试邮件" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "此邮件由calibre web发送" -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "发送到Kindle" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "无法找到适合邮件发送的格式" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "游客" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "文件已替换" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "服务器已停止" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请按确定并刷新页面" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "最近添加的书籍" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "最新书籍" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "最旧书籍" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "书籍 (A-Z)" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "书籍 (Z-A)" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "热门书籍(最多下载)" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "最高评分书籍" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "随机书籍" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "作者列表" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "无法打开电子书。 文件不存在或者文件不可访问:" -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "丛书列表" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "丛书: %(serie)s" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "可用语言" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "语言: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "分类列表" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "分类: %(name)s" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "可执行权限缺失" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "统计" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "服务器已重启,请刷新页面" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "正在关闭服务器,请关闭窗口" -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "更新完成" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "搜索" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "已读书籍" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "未读书籍" @@ -207,7 +217,7 @@ msgstr "未读书籍" msgid "Read a Book" msgstr "阅读一本书" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "请填写所有字段" @@ -262,7 +272,7 @@ msgstr "此书已被成功发给 %(kindlemail)s" msgid "There was an error sending this book: %(res)s" msgstr "发送这本书的时候出现错误: %(res)s" -#: cps/web.py:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "请先配置您的kindle电子邮箱地址..." @@ -271,177 +281,177 @@ msgstr "请先配置您的kindle电子邮箱地址..." msgid "Book has been added to shelf: %(sname)s" msgstr "此书已被添加到书架: %(sname)s" -#: cps/web.py:2164 +#: cps/web.py:2166 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "此书已从书架 %(sname)s 中删除" -#: cps/web.py:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "已存在书架 '%(title)s'。" -#: cps/web.py:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "书架 %(title)s 已被创建" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "发生错误" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "创建书架" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "书架 %(title)s 已被修改" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "编辑书架" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "成功删除书架 %(name)s" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "书架: '%(name)s'" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "打开书架出错。书架不存在或不可访问" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "修改书架 '%(name)s' 顺序" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "找到已使用此邮箱的账号。" -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的资料" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "资料已更新" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "管理页" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "Calibre-web配置已更新" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "基本配置" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "DB位置无效,请输入正确路径" -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "添加新用户" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "用户 '%(user)s' 已被创建" -#: cps/web.py:2606 +#: cps/web.py:2607 msgid "Found an existing account for this email address or nickname." msgstr "已存在使用此邮箱或昵称的账号。" -#: cps/web.py:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "邮箱设置已更新" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "测试邮件已成功发送到 %(kindlemail)s" -#: cps/web.py:2638 +#: cps/web.py:2639 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "发送测试邮件时发生错误: %(res)s" -#: cps/web.py:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "E-Mail 设置已更新" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "编辑邮箱设置" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户 '%(nick)s' 已被删除" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "用户 '%(nick)s' 已被更新" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "发生未知错误。" -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "打开电子书出错。文件不存在或不可访问" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "编辑元数据" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "不能上传后缀为 \"%s\" 的文件到此服务器" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "未知" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "要上传的文件必须有一个后缀" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "创建路径 %s 失败(权限拒绝)。" -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "存储文件 %s 失败(权限拒绝)。" -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "删除文件 %s 失败(权限拒绝)。" @@ -646,7 +656,7 @@ msgstr "简介" msgid "Tags" msgstr "标签" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "丛书" @@ -733,7 +743,7 @@ msgstr "点击封面加载元数据到表单" msgid "Loading..." msgstr "加载中..." -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "关闭" @@ -940,7 +950,7 @@ msgstr "保存设置" msgid "Save settings and send Test E-Mail" msgstr "保存设置并发送测试邮件" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "下一个" @@ -985,7 +995,7 @@ msgstr "最新书籍" msgid "Show Random Books" msgstr "显示随机书籍" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "作者" @@ -1050,39 +1060,39 @@ msgstr "升序" msgid "Descending" msgstr "降序" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "发现" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "分类" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "语言" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "公开书架" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "您的书架" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "创建书架" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "关于" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "" diff --git a/cps/ub.py b/cps/ub.py index 7b1f92ba..5f4d5df0 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -47,12 +47,9 @@ DEFAULT_PASS = "admin123" DEFAULT_PORT = int(os.environ.get("CALIBRE_PORT", 8083)) - DEVELOPMENT = False - - class UserBase: @property def is_authenticated(self): @@ -203,6 +200,7 @@ class Anonymous(AnonymousUserMixin, UserBase): def is_authenticated(self): return False + # Baseclass representing Shelfs in calibre-web inapp.db class Shelf(Base): __tablename__ = 'shelf' @@ -290,7 +288,7 @@ class Settings(Base): config_google_drive_folder = Column(String) config_google_drive_calibre_url_base = Column(String) config_google_drive_watch_changes_response = Column(String) - config_columns_to_ignore = Column(String) + #config_columns_to_ignore = Column(String) config_remote_login = Column(Boolean) config_use_goodreads = Column(Boolean) config_goodreads_api_key = Column(String) @@ -403,22 +401,22 @@ class Config: (self.config_default_role & ROLE_DELETE_BOOKS == ROLE_DELETE_BOOKS)) def mature_content_tags(self): - if (sys.version_info > (3, 0)): #Python3 str, Python2 unicode + if sys.version_info > (3, 0): # Python3 str, Python2 unicode lstrip = str.lstrip else: lstrip = unicode.lstrip return list(map(lstrip, self.config_mature_content_tags.split(","))) def get_Log_Level(self): - ret_value="" + ret_value = "" if self.config_log_level == logging.INFO: - ret_value='INFO' + ret_value = 'INFO' elif self.config_log_level == logging.DEBUG: - ret_value='DEBUG' + ret_value = 'DEBUG' elif self.config_log_level == logging.WARNING: - ret_value='WARNING' + ret_value = 'WARNING' elif self.config_log_level == logging.ERROR: - ret_value='ERROR' + ret_value = 'ERROR' return ret_value @@ -495,7 +493,7 @@ def migrate_Database(): conn = engine.connect() conn.execute("ALTER TABLE user ADD column `sidebar_view` Integer DEFAULT 1") session.commit() - create=True + create = True try: if create: conn = engine.connect() @@ -535,11 +533,13 @@ def migrate_Database(): conn = engine.connect() conn.execute("ALTER TABLE Settings ADD column `config_mature_content_tags` String DEFAULT ''") + def clean_database(): # Remove expired remote login tokens now = datetime.datetime.now() session.query(RemoteAuthToken).filter(now > RemoteAuthToken.expiration).delete() + def create_default_config(): settings = Settings() settings.mail_server = "mail.example.com" diff --git a/cps/uploader.py b/cps/uploader.py index 2772e033..40741bfd 100644 --- a/cps/uploader.py +++ b/cps/uploader.py @@ -14,17 +14,17 @@ BookMeta = namedtuple('BookMeta', 'file_path, extension, title, author, cover, d """ -def upload(file): +def upload(uploadfile): tmp_dir = os.path.join(gettempdir(), 'calibre_web') if not os.path.isdir(tmp_dir): os.mkdir(tmp_dir) - filename = file.filename + filename = uploadfile.filename filename_root, file_extension = os.path.splitext(filename) md5 = hashlib.md5() md5.update(filename.encode('utf-8')) tmp_file_path = os.path.join(tmp_dir, md5.hexdigest()) - file.save(tmp_file_path) + uploadfile.save(tmp_file_path) meta = book_formats.process(tmp_file_path, filename_root, file_extension) return meta diff --git a/cps/web.py b/cps/web.py index 61122591..06c4a18a 100755 --- a/cps/web.py +++ b/cps/web.py @@ -103,6 +103,7 @@ global_task = None ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'epub', 'mobi', 'azw', 'azw3', 'cbr', 'cbz', 'cbt', 'djvu', 'prc', 'doc', 'docx', 'fb2']) + def md5(fname): hash_md5 = hashlib.md5() with open(fname, "rb") as f: @@ -110,6 +111,7 @@ def md5(fname): hash_md5.update(chunk) return hash_md5.hexdigest() + class Singleton: """ A non-thread-safe helper class to ease implementing singletons. @@ -437,7 +439,7 @@ def formatdate(val): def format_date_input(val): conformed_timestamp = re.sub(r"[:]|([-](?!((\d{2}[:]\d{2})|(\d{4}))$))", '', val) date_obj = datetime.datetime.strptime(conformed_timestamp[:15], "%Y%m%d %H%M%S") - input_date = date_obj.isoformat().split('T', 1)[0] # Hack to support dates <1900 + input_date = date_obj.isoformat().split('T', 1)[0] # Hack to support dates <1900 return '' if input_date == "0101-01-01" else input_date @@ -600,7 +602,7 @@ def modify_database_object(input_elements, db_book_object, db_object, db_session # if no element is found add it if new_element is None: if db_type == 'author': - new_element = db_object(add_element, add_element.replace('|',','), "") + new_element = db_object(add_element, add_element.replace('|', ','), "") elif db_type == 'series': new_element = db_object(add_element, add_element) elif db_type == 'custom': @@ -831,7 +833,7 @@ def feed_series(book_id): if not off: off = 0 entries, random, pagination = fill_indexpage((int(off) / (int(config.config_books_per_page)) + 1), - db.Books, db.Books.series.any(db.Series.id == book_id),db.Books.series_index) + db.Books, db.Books.series.any(db.Series.id == book_id), db.Books.series_index) xml = render_title_template('feed.xml', entries=entries, pagination=pagination) response = make_response(xml) response.headers["Content-Type"] = "application/atom+xml; charset=utf-8" @@ -850,6 +852,7 @@ def do_gdrive_download(df, headers): total_size = int(df.metadata.get('fileSize')) download_url = df.metadata.get('downloadUrl') s = partial(total_size, 1024 * 1024) # I'm downloading BIG files, so 100M chunk size is fine for me + def stream(): for byte in s: headers = {"Range": 'bytes=%s-%s' % (byte[0], byte[1])} @@ -969,13 +972,13 @@ def get_updater_status(): "6": _(u'Server is stopped'), "7": _(u'Update finished, please press okay and reload page') } - status['text']=text + status['text'] = text helper.updater_thread = helper.Updater() helper.updater_thread.start() - status['status']=helper.updater_thread.get_update_status() + status['status'] = helper.updater_thread.get_update_status() elif request.method == "GET": try: - status['status']=helper.updater_thread.get_update_status() + status['status'] = helper.updater_thread.get_update_status() except Exception: status['status'] = 7 return json.dumps(status) @@ -1055,6 +1058,7 @@ def newest_books(page): else: abort(404) + @app.route('/books/oldest', defaults={'page': 1}) @app.route('/books/oldest/page/') @login_required_if_no_ano @@ -1136,7 +1140,7 @@ def best_rated_books(page): def discover(page): if current_user.show_random_books(): entries, __, pagination = fill_indexpage(page, db.Books, True, func.randomblob(2)) - pagination = Pagination(1, config.config_books_per_page,config.config_books_per_page) + pagination = Pagination(1, config.config_books_per_page, config.config_books_per_page) return render_title_template('discover.html', entries=entries, pagination=pagination, title=_(u"Random Books")) else: abort(404) @@ -1150,7 +1154,7 @@ def author_list(): .join(db.books_authors_link).join(db.Books).filter(common_filters())\ .group_by('books_authors_link.author').order_by(db.Authors.sort).all() for entry in entries: - entry.Authors.name=entry.Authors.name.replace('|',',') + entry.Authors.name = entry.Authors.name.replace('|', ',') return render_title_template('list.html', entries=entries, folder='author', title=_(u"Author list")) else: abort(404) @@ -1166,7 +1170,7 @@ def author(book_id, page): flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error") return redirect(url_for("index")) - name = (db.session.query(db.Authors).filter(db.Authors.id == book_id).first().name).replace('|',',') + name = (db.session.query(db.Authors).filter(db.Authors.id == book_id).first().name).replace('|', ',') author_info = None other_books = [] @@ -1198,7 +1202,6 @@ def get_unique_other_books(library_books, author_books): return other_books - @app.route("/series") @login_required_if_no_ano def series_list(): @@ -1436,9 +1439,9 @@ def delete_book(book_id): ub.session.commit() if config.config_use_google_drive: - helper.delete_book_gdrive(book) # ToDo really delete file + helper.delete_book_gdrive(book) # ToDo really delete file else: - helper.delete_book(book,config.config_calibre_dir) + helper.delete_book(book, config.config_calibre_dir) # check if only this book links to: # author, language, series, tags, custom columns modify_database_object([u''], book.authors, db.Authors, db.session, 'author') @@ -1466,7 +1469,7 @@ def delete_book(book_id): getattr(book, cc_string).remove(del_cc) db.session.delete(del_cc) else: - modify_database_object([u''], getattr(book, cc_string),db.cc_classes[c.id], db.session, 'custom') + modify_database_object([u''], getattr(book, cc_string), db.cc_classes[c.id], db.session, 'custom') db.session.query(db.Books).filter(db.Books.id == book_id).delete() db.session.commit() else: @@ -1474,6 +1477,7 @@ def delete_book(book_id): app.logger.info('Book with id "'+str(book_id)+'" could not be deleted') return redirect(url_for('index')) + @app.route("/gdrive/authenticate") @login_required @admin_required @@ -1619,10 +1623,10 @@ def search(): db.Books.publishers.any(db.Publishers.name.ilike("%" + term + "%")), db.Books.title.ilike("%" + term + "%")))\ .filter(common_filters()).all() -# entries = db.session.query(db.Books).with_entities(db.Books.title).filter(db.Books.title.ilike("%" + term + "%")).all() - #result = db.session.execute("select name from authors where lower(name) like '%" + term.lower() + "%'") - #entries = result.fetchall() - #result.close() + # entries = db.session.query(db.Books).with_entities(db.Books.title).filter(db.Books.title.ilike("%" + term + "%")).all() + # result = db.session.execute("select name from authors where lower(name) like '%" + term.lower() + "%'") + # entries = result.fetchall() + # result.close() return render_title_template('search.html', searchterm=term, entries=entries) else: return render_title_template('search.html', searchterm="") @@ -1724,9 +1728,10 @@ def get_cover(cover_path): else: return send_from_directory(os.path.join(config.config_calibre_dir, cover_path), "cover.jpg") + @app.route("/show//") @login_required_if_no_ano -def serve_book(book_id,book_format): +def serve_book(book_id, book_format): book_format = book_format.split(".")[0] book = db.session.query(db.Books).filter(db.Books.id == book_id).first() data = db.session.query(db.Data).filter(db.Data.book == book.id).filter(db.Data.format == book_format.upper()).first() @@ -1858,7 +1863,7 @@ def read_book(book_id, book_format): elif book_format.lower() == "txt": return render_title_template('readtxt.html', txtfile=book_id, title=_(u"Read a Book")) else: - for fileext in ["cbr","cbt","cbz"]: + for fileext in ["cbr", "cbt", "cbz"]: if book_format.lower() == fileext: all_name = str(book_id) + "/" + book.data[0].name + "." + fileext tmp_file = os.path.join(book_dir, book.data[0].name) + "." + fileext @@ -1960,7 +1965,7 @@ def login(): flash(_(u"you are now logged in as: '%(nickname)s'", nickname=user.nickname), category="success") return redirect_back(url_for("index")) else: - ipAdress=request.headers.get('X-Forwarded-For', request.remote_addr) + ipAdress = request.headers.get('X-Forwarded-For', request.remote_addr) app.logger.info('Login failed for user "' + form['username'] + '" IP-adress: ' + ipAdress) flash(_(u"Wrong Username or Password"), category="error") @@ -2265,7 +2270,6 @@ def show_shelf(shelf_id): return redirect(url_for("index")) - @app.route("/shelf/order/", methods=["GET", "POST"]) @login_required def order_shelf(shelf_id): @@ -2402,7 +2406,7 @@ def configuration_helper(origin): success = False if request.method == "POST": to_save = request.form.to_dict() - content = ub.session.query(ub.Settings).first() # type: ub.Settings + content = ub.session.query(ub.Settings).first() # type: ub.Settings if "config_calibre_dir" in to_save: if content.config_calibre_dir != to_save["config_calibre_dir"]: content.config_calibre_dir = to_save["config_calibre_dir"] @@ -2806,7 +2810,7 @@ def edit_book(book_id): except Exception: book.languages[index].language_name = _(isoLanguages.get(part3=book.languages[index].lang_code).name) for author in book.authors: - author_names.append(author.name.replace('|',',')) + author_names.append(author.name.replace('|', ',')) # Show form if request.method != 'POST': @@ -2845,172 +2849,184 @@ def edit_book(book_id): db.session.add(db_format) to_save = request.form.to_dict() + if book.title != to_save["book_title"]: book.title = to_save["book_title"] edited_books_id.add(book.id) + input_authors = to_save["author_name"].split('&') - input_authors = map(lambda it: it.strip().replace(',','|'), input_authors) + input_authors = map(lambda it: it.strip().replace(',', '|'), input_authors) # we have all author names now if input_authors == ['']: input_authors = [_(u'unknown')] # prevent empty Author if book.authors: author0_before_edit = book.authors[0].name else: - author0_before_edit = db.Authors(_(u'unknown'),'',0) + author0_before_edit = db.Authors(_(u'unknown'), '', 0) modify_database_object(input_authors, book.authors, db.Authors, db.session, 'author') if book.authors: if author0_before_edit != book.authors[0].name: edited_books_id.add(book.id) book.author_sort = helper.get_sorted_author(input_authors[0]) - if to_save["cover_url"] and save_cover(to_save["cover_url"], book.path): - book.has_cover = 1 + error = False + for b in edited_books_id: + if config.config_use_google_drive: + error = helper.update_dir_structure_gdrive(b) + else: + error = helper.update_dir_stucture(b, config.config_calibre_dir) + if error: # stop on error + break + if config.config_use_google_drive: + updateGdriveCalibreFromLocal() - if book.series_index != to_save["series_index"]: - book.series_index = to_save["series_index"] + if not error: + if to_save["cover_url"] and save_cover(to_save["cover_url"], book.path): + book.has_cover = 1 - if len(book.comments): - book.comments[0].text = to_save["description"] - else: - book.comments.append(db.Comments(text=to_save["description"], book=book.id)) + if book.series_index != to_save["series_index"]: + book.series_index = to_save["series_index"] - input_tags = to_save["tags"].split(',') - input_tags = map(lambda it: it.strip(), input_tags) - modify_database_object(input_tags, book.tags, db.Tags, db.session, 'tags') + if len(book.comments): + book.comments[0].text = to_save["description"] + else: + book.comments.append(db.Comments(text=to_save["description"], book=book.id)) - input_series = [to_save["series"].strip()] - input_series = [x for x in input_series if x != ''] - modify_database_object(input_series, book.series, db.Series, db.session, 'series') + input_tags = to_save["tags"].split(',') + input_tags = map(lambda it: it.strip(), input_tags) + modify_database_object(input_tags, book.tags, db.Tags, db.session, 'tags') - input_languages = to_save["languages"].split(',') - input_languages = map(lambda it: it.strip().lower(), input_languages) + input_series = [to_save["series"].strip()] + input_series = [x for x in input_series if x != ''] + modify_database_object(input_series, book.series, db.Series, db.session, 'series') - if to_save["pubdate"]: - try: - book.pubdate = datetime.datetime.strptime(to_save["pubdate"], "%Y-%m-%d") - except ValueError: + input_languages = to_save["languages"].split(',') + input_languages = map(lambda it: it.strip().lower(), input_languages) + + if to_save["pubdate"]: + try: + book.pubdate = datetime.datetime.strptime(to_save["pubdate"], "%Y-%m-%d") + except ValueError: + book.pubdate = db.Books.DEFAULT_PUBDATE + else: book.pubdate = db.Books.DEFAULT_PUBDATE - else: - book.pubdate = db.Books.DEFAULT_PUBDATE - # retranslate displayed text to language codes - languages = db.session.query(db.Languages).all() - input_l = [] - for lang in languages: - try: - lang.name = LC.parse(lang.lang_code).get_language_name(get_locale()).lower() - except Exception: - lang.name = _(isoLanguages.get(part3=lang.lang_code).name).lower() - for inp_lang in input_languages: - if inp_lang == lang.name: - input_l.append(lang.lang_code) - modify_database_object(input_l, book.languages, db.Languages, db.session, 'languages') - - if to_save["rating"].strip(): - old_rating = False - if len(book.ratings) > 0: - old_rating = book.ratings[0].rating - ratingx2 = int(float(to_save["rating"]) * 2) - if ratingx2 != old_rating: - is_rating = db.session.query(db.Ratings).filter(db.Ratings.rating == ratingx2).first() - if is_rating: - book.ratings.append(is_rating) - else: - new_rating = db.Ratings(rating=ratingx2) - book.ratings.append(new_rating) - if old_rating: + # retranslate displayed text to language codes + languages = db.session.query(db.Languages).all() + input_l = [] + for lang in languages: + try: + lang.name = LC.parse(lang.lang_code).get_language_name(get_locale()).lower() + except Exception: + lang.name = _(isoLanguages.get(part3=lang.lang_code).name).lower() + for inp_lang in input_languages: + if inp_lang == lang.name: + input_l.append(lang.lang_code) + modify_database_object(input_l, book.languages, db.Languages, db.session, 'languages') + + if to_save["rating"].strip(): + old_rating = False + if len(book.ratings) > 0: + old_rating = book.ratings[0].rating + ratingx2 = int(float(to_save["rating"]) * 2) + if ratingx2 != old_rating: + is_rating = db.session.query(db.Ratings).filter(db.Ratings.rating == ratingx2).first() + if is_rating: + book.ratings.append(is_rating) + else: + new_rating = db.Ratings(rating=ratingx2) + book.ratings.append(new_rating) + if old_rating: + book.ratings.remove(book.ratings[0]) + else: + if len(book.ratings) > 0: book.ratings.remove(book.ratings[0]) - else: - if len(book.ratings) > 0: - book.ratings.remove(book.ratings[0]) - - for c in cc: - cc_string = "custom_column_" + str(c.id) - if not c.is_multiple: - if len(getattr(book, cc_string)) > 0: - cc_db_value = getattr(book, cc_string)[0].value - else: - cc_db_value = None - if to_save[cc_string].strip(): - if c.datatype == 'bool': - if to_save[cc_string] == 'None': - to_save[cc_string] = None - else: - to_save[cc_string] = 1 if to_save[cc_string] == 'True' else 0 - if to_save[cc_string] != cc_db_value: - if cc_db_value is not None: - if to_save[cc_string] is not None: - setattr(getattr(book, cc_string)[0], 'value', to_save[cc_string]) - else: - del_cc = getattr(book, cc_string)[0] - getattr(book, cc_string).remove(del_cc) - db.session.delete(del_cc) + + for c in cc: + cc_string = "custom_column_" + str(c.id) + if not c.is_multiple: + if len(getattr(book, cc_string)) > 0: + cc_db_value = getattr(book, cc_string)[0].value + else: + cc_db_value = None + if to_save[cc_string].strip(): + if c.datatype == 'bool': + if to_save[cc_string] == 'None': + to_save[cc_string] = None else: - cc_class = db.cc_classes[c.id] - new_cc = cc_class(value=to_save[cc_string], book=book_id) - db.session.add(new_cc) - elif c.datatype == 'int': - if to_save[cc_string] == 'None': - to_save[cc_string] = None - if to_save[cc_string] != cc_db_value: - if cc_db_value is not None: - if to_save[cc_string] is not None: - setattr(getattr(book, cc_string)[0], 'value', to_save[cc_string]) + to_save[cc_string] = 1 if to_save[cc_string] == 'True' else 0 + if to_save[cc_string] != cc_db_value: + if cc_db_value is not None: + if to_save[cc_string] is not None: + setattr(getattr(book, cc_string)[0], 'value', to_save[cc_string]) + else: + del_cc = getattr(book, cc_string)[0] + getattr(book, cc_string).remove(del_cc) + db.session.delete(del_cc) else: + cc_class = db.cc_classes[c.id] + new_cc = cc_class(value=to_save[cc_string], book=book_id) + db.session.add(new_cc) + elif c.datatype == 'int': + if to_save[cc_string] == 'None': + to_save[cc_string] = None + if to_save[cc_string] != cc_db_value: + if cc_db_value is not None: + if to_save[cc_string] is not None: + setattr(getattr(book, cc_string)[0], 'value', to_save[cc_string]) + else: + del_cc = getattr(book, cc_string)[0] + getattr(book, cc_string).remove(del_cc) + db.session.delete(del_cc) + else: + cc_class = db.cc_classes[c.id] + new_cc = cc_class(value=to_save[cc_string], book=book_id) + db.session.add(new_cc) + + else: + if c.datatype == 'rating': + to_save[cc_string] = str(int(float(to_save[cc_string]) * 2)) + if to_save[cc_string].strip() != cc_db_value: + if cc_db_value is not None: + # remove old cc_val del_cc = getattr(book, cc_string)[0] getattr(book, cc_string).remove(del_cc) - db.session.delete(del_cc) - else: + if len(del_cc.books) == 0: + db.session.delete(del_cc) cc_class = db.cc_classes[c.id] - new_cc = cc_class(value=to_save[cc_string], book=book_id) - db.session.add(new_cc) - - else: - if c.datatype == 'rating': - to_save[cc_string] = str(int(float(to_save[cc_string]) * 2)) - if to_save[cc_string].strip() != cc_db_value: - if cc_db_value is not None: - # remove old cc_val - del_cc = getattr(book, cc_string)[0] - getattr(book, cc_string).remove(del_cc) - if len(del_cc.books) == 0: - db.session.delete(del_cc) - cc_class = db.cc_classes[c.id] - new_cc = db.session.query(cc_class).filter( - cc_class.value == to_save[cc_string].strip()).first() - # if no cc val is found add it - if new_cc is None: - new_cc = cc_class(value=to_save[cc_string].strip()) - db.session.add(new_cc) new_cc = db.session.query(cc_class).filter( cc_class.value == to_save[cc_string].strip()).first() - # add cc value to book - getattr(book, cc_string).append(new_cc) + # if no cc val is found add it + if new_cc is None: + new_cc = cc_class(value=to_save[cc_string].strip()) + db.session.add(new_cc) + new_cc = db.session.query(cc_class).filter( + cc_class.value == to_save[cc_string].strip()).first() + # add cc value to book + getattr(book, cc_string).append(new_cc) + else: + if cc_db_value is not None: + # remove old cc_val + del_cc = getattr(book, cc_string)[0] + getattr(book, cc_string).remove(del_cc) + if len(del_cc.books) == 0: + db.session.delete(del_cc) else: - if cc_db_value is not None: - # remove old cc_val - del_cc = getattr(book, cc_string)[0] - getattr(book, cc_string).remove(del_cc) - if len(del_cc.books) == 0: - db.session.delete(del_cc) - else: - input_tags = to_save[cc_string].split(',') - input_tags = map(lambda it: it.strip(), input_tags) - modify_database_object(input_tags, getattr(book, cc_string),db.cc_classes[c.id], db.session, 'custom') - db.session.commit() - author_names = [] - for author in book.authors: - author_names.append(author.name) - for b in edited_books_id: - if config.config_use_google_drive: - helper.update_dir_structure_gdrive(b) + input_tags = to_save[cc_string].split(',') + input_tags = map(lambda it: it.strip(), input_tags) + modify_database_object(input_tags, getattr(book, cc_string), db.cc_classes[c.id], db.session, 'custom') + db.session.commit() + author_names = [] + for author in book.authors: + author_names.append(author.name) + if "detail_view" in to_save: + return redirect(url_for('show_book', book_id=book.id)) else: - helper.update_dir_stucture(b, config.config_calibre_dir) - if config.config_use_google_drive: - updateGdriveCalibreFromLocal() - if "detail_view" in to_save: - return redirect(url_for('show_book', book_id=book.id)) + return render_title_template('book_edit.html', book=book, authors=author_names, cc=cc, + title=_(u"edit metadata")) else: + db.session.rollback() + flash( error, category="error") return render_title_template('book_edit.html', book=book, authors=author_names, cc=cc, title=_(u"edit metadata")) @@ -3173,4 +3189,3 @@ def start_gevent(): app.logger.info('Unable to listen on \'\', trying on IPv4 only...') gevent_server = WSGIServer(('0.0.0.0', ub.config.config_port), app) gevent_server.serve_forever() - diff --git a/messages.pot b/messages.pot index da8a4766..27f35ad0 100644 --- a/messages.pot +++ b/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-11-12 14:54+0100\n" +"POT-Creation-Date: 2017-11-30 16:45+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,180 +17,190 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1398 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 msgid "not installed" msgstr "" -#: cps/helper.py:77 +#: cps/helper.py:78 #, python-format msgid "kindlegen binary %(kindlepath)s not found" msgstr "" -#: cps/helper.py:83 +#: cps/helper.py:84 #, python-format msgid "epub format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:93 +#: cps/helper.py:94 msgid "kindlegen failed, no execution permissions" msgstr "" -#: cps/helper.py:108 +#: cps/helper.py:109 #, python-format msgid "Kindlegen failed with Error %(error)s. Message: %(message)s" msgstr "" -#: cps/helper.py:187 +#: cps/helper.py:188 #, python-format msgid "Failed to send mail: %s" msgstr "" -#: cps/helper.py:194 +#: cps/helper.py:195 msgid "Calibre-web test email" msgstr "" -#: cps/helper.py:195 cps/helper.py:207 +#: cps/helper.py:196 cps/helper.py:208 msgid "This email has been sent via calibre web." msgstr "" -#: cps/helper.py:204 cps/templates/detail.html:43 +#: cps/helper.py:205 cps/templates/detail.html:43 msgid "Send to Kindle" msgstr "" -#: cps/helper.py:224 cps/helper.py:238 +#: cps/helper.py:225 cps/helper.py:239 msgid "Could not find any formats suitable for sending by email" msgstr "" +#: cps/helper.py:338 +#, python-format +msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + +#: cps/helper.py:347 +#, python-format +msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" +msgstr "" + #: cps/ub.py:577 msgid "Guest" msgstr "" -#: cps/web.py:964 +#: cps/web.py:967 msgid "Requesting update package" msgstr "" -#: cps/web.py:965 +#: cps/web.py:968 msgid "Downloading update package" msgstr "" -#: cps/web.py:966 +#: cps/web.py:969 msgid "Unzipping update package" msgstr "" -#: cps/web.py:967 +#: cps/web.py:970 msgid "Files are replaced" msgstr "" -#: cps/web.py:968 +#: cps/web.py:971 msgid "Database connections are closed" msgstr "" -#: cps/web.py:969 +#: cps/web.py:972 msgid "Server is stopped" msgstr "" -#: cps/web.py:970 +#: cps/web.py:973 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/web.py:1044 +#: cps/web.py:1047 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1054 +#: cps/web.py:1057 msgid "Newest Books" msgstr "" -#: cps/web.py:1065 +#: cps/web.py:1069 msgid "Oldest Books" msgstr "" -#: cps/web.py:1077 +#: cps/web.py:1081 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1088 +#: cps/web.py:1092 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1116 +#: cps/web.py:1120 msgid "Hot Books (most downloaded)" msgstr "" -#: cps/web.py:1129 +#: cps/web.py:1133 msgid "Best rated books" msgstr "" -#: cps/templates/index.xml:32 cps/web.py:1140 +#: cps/templates/index.xml:32 cps/web.py:1144 msgid "Random Books" msgstr "" -#: cps/web.py:1154 +#: cps/web.py:1158 msgid "Author list" msgstr "" -#: cps/web.py:1166 cps/web.py:1225 cps/web.py:1355 cps/web.py:1827 +#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" -#: cps/templates/index.xml:64 cps/web.py:1209 +#: cps/templates/index.xml:64 cps/web.py:1212 msgid "Series list" msgstr "" -#: cps/web.py:1223 +#: cps/web.py:1226 #, python-format msgid "Series: %(serie)s" msgstr "" -#: cps/web.py:1256 +#: cps/web.py:1259 msgid "Available languages" msgstr "" -#: cps/web.py:1273 +#: cps/web.py:1276 #, python-format msgid "Language: %(name)s" msgstr "" -#: cps/templates/index.xml:58 cps/web.py:1283 +#: cps/templates/index.xml:58 cps/web.py:1286 msgid "Category list" msgstr "" -#: cps/web.py:1297 +#: cps/web.py:1300 #, python-format msgid "Category: %(name)s" msgstr "" -#: cps/web.py:1409 +#: cps/web.py:1412 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1423 +#: cps/web.py:1426 msgid "Statistics" msgstr "" -#: cps/web.py:1587 +#: cps/web.py:1591 msgid "Server restarted, please reload page" msgstr "" -#: cps/web.py:1589 +#: cps/web.py:1593 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1605 +#: cps/web.py:1609 msgid "Update done" msgstr "" -#: cps/web.py:1687 cps/web.py:1700 +#: cps/web.py:1691 cps/web.py:1704 msgid "search" msgstr "" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:131 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1782 msgid "Read Books" msgstr "" -#: cps/templates/index.xml:45 cps/templates/index.xml:48 -#: cps/templates/layout.html:132 cps/web.py:1785 +#: cps/templates/index.xml:46 cps/templates/index.xml:49 +#: cps/templates/layout.html:134 cps/web.py:1785 msgid "Unread Books" msgstr "" @@ -198,7 +208,7 @@ msgstr "" msgid "Read a Book" msgstr "" -#: cps/web.py:1925 cps/web.py:2555 +#: cps/web.py:1925 cps/web.py:2556 msgid "Please fill out all fields!" msgstr "" @@ -253,7 +263,7 @@ msgstr "" msgid "There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:2085 cps/web.py:2640 +#: cps/web.py:2085 cps/web.py:2641 msgid "Please configure your kindle email address first..." msgstr "" @@ -262,177 +272,177 @@ msgstr "" msgid "Book has been added to shelf: %(sname)s" msgstr "" -#: cps/web.py:2164 +#: cps/web.py:2166 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "" -#: cps/web.py:2183 cps/web.py:2207 +#: cps/web.py:2185 cps/web.py:2209 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "" -#: cps/web.py:2188 +#: cps/web.py:2190 #, python-format msgid "Shelf %(title)s created" msgstr "" -#: cps/web.py:2190 cps/web.py:2218 +#: cps/web.py:2192 cps/web.py:2220 msgid "There was an error" msgstr "" -#: cps/web.py:2191 cps/web.py:2193 +#: cps/web.py:2193 cps/web.py:2195 msgid "create a shelf" msgstr "" -#: cps/web.py:2216 +#: cps/web.py:2218 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2219 cps/web.py:2221 +#: cps/web.py:2221 cps/web.py:2223 msgid "Edit a shelf" msgstr "" -#: cps/web.py:2242 +#: cps/web.py:2244 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "" -#: cps/web.py:2264 +#: cps/web.py:2266 #, python-format msgid "Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2267 +#: cps/web.py:2269 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2299 +#: cps/web.py:2300 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2368 +#: cps/web.py:2369 msgid "Found an existing account for this email address." msgstr "" -#: cps/web.py:2370 cps/web.py:2374 +#: cps/web.py:2371 cps/web.py:2375 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:2371 +#: cps/web.py:2372 msgid "Profile updated" msgstr "" -#: cps/web.py:2385 +#: cps/web.py:2386 msgid "Admin page" msgstr "" -#: cps/web.py:2509 +#: cps/web.py:2510 msgid "Calibre-web configuration updated" msgstr "" -#: cps/web.py:2516 cps/web.py:2522 cps/web.py:2536 +#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 msgid "Basic Configuration" msgstr "" -#: cps/web.py:2520 +#: cps/web.py:2521 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2557 cps/web.py:2610 +#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 msgid "Add new user" msgstr "" -#: cps/web.py:2602 +#: cps/web.py:2603 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/web.py:2606 +#: cps/web.py:2607 msgid "Found an existing account for this email address or nickname." msgstr "" -#: cps/web.py:2628 +#: cps/web.py:2629 msgid "Mail settings updated" msgstr "" -#: cps/web.py:2635 +#: cps/web.py:2636 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2638 +#: cps/web.py:2639 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2642 +#: cps/web.py:2643 msgid "E-Mail settings updated" msgstr "" -#: cps/web.py:2643 +#: cps/web.py:2644 msgid "Edit mail settings" msgstr "" -#: cps/web.py:2672 +#: cps/web.py:2673 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/web.py:2780 +#: cps/web.py:2781 #, python-format msgid "User '%(nick)s' updated" msgstr "" -#: cps/web.py:2783 +#: cps/web.py:2784 msgid "An unknown error occured." msgstr "" -#: cps/web.py:2786 +#: cps/web.py:2787 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/web.py:2802 +#: cps/web.py:2803 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2817 cps/web.py:3018 cps/web.py:3161 +#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 msgid "edit metadata" msgstr "" -#: cps/web.py:2827 cps/web.py:3055 +#: cps/web.py:2828 cps/web.py:3068 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2838 +#: cps/web.py:2839 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2858 cps/web.py:2862 +#: cps/web.py:2861 cps/web.py:2865 msgid "unknown" msgstr "" -#: cps/web.py:3061 +#: cps/web.py:3074 msgid "File to be uploaded must have an extension" msgstr "" -#: cps/web.py:3080 +#: cps/web.py:3093 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "" -#: cps/web.py:3085 +#: cps/web.py:3098 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "" -#: cps/web.py:3090 +#: cps/web.py:3103 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "" @@ -637,7 +647,7 @@ msgstr "" msgid "Tags" msgstr "" -#: cps/templates/book_edit.html:39 cps/templates/layout.html:141 +#: cps/templates/book_edit.html:39 cps/templates/layout.html:143 #: cps/templates/search_form.html:37 msgid "Series" msgstr "" @@ -724,7 +734,7 @@ msgstr "" msgid "Loading..." msgstr "" -#: cps/templates/book_edit.html:196 cps/templates/layout.html:205 +#: cps/templates/book_edit.html:196 cps/templates/layout.html:207 msgid "Close" msgstr "" @@ -931,7 +941,7 @@ msgstr "" msgid "Save settings and send Test E-Mail" msgstr "" -#: cps/templates/feed.xml:20 cps/templates/layout.html:189 +#: cps/templates/feed.xml:20 cps/templates/layout.html:191 msgid "Next" msgstr "" @@ -976,7 +986,7 @@ msgstr "" msgid "Show Random Books" msgstr "" -#: cps/templates/index.xml:52 cps/templates/layout.html:144 +#: cps/templates/index.xml:52 cps/templates/layout.html:146 msgid "Authors" msgstr "" @@ -1041,39 +1051,39 @@ msgstr "" msgid "Descending" msgstr "" -#: cps/templates/layout.html:135 +#: cps/templates/layout.html:137 msgid "Discover" msgstr "" -#: cps/templates/layout.html:138 +#: cps/templates/layout.html:140 msgid "Categories" msgstr "" -#: cps/templates/layout.html:147 cps/templates/search_form.html:58 +#: cps/templates/layout.html:149 cps/templates/search_form.html:58 msgid "Languages" msgstr "" -#: cps/templates/layout.html:150 +#: cps/templates/layout.html:152 msgid "Public Shelves" msgstr "" -#: cps/templates/layout.html:154 +#: cps/templates/layout.html:156 msgid "Your Shelves" msgstr "" -#: cps/templates/layout.html:159 +#: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "" -#: cps/templates/layout.html:160 cps/templates/stats.html:3 +#: cps/templates/layout.html:162 cps/templates/stats.html:3 msgid "About" msgstr "" -#: cps/templates/layout.html:174 +#: cps/templates/layout.html:176 msgid "Previous" msgstr "" -#: cps/templates/layout.html:201 +#: cps/templates/layout.html:203 msgid "Book Details" msgstr "" From aee5ca0e06b71412ea8e982f020cf0ae19e24970 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Thu, 30 Nov 2017 20:12:13 +0100 Subject: [PATCH 030/180] #396 implemented --- cps/templates/config_edit.html | 54 ++++++++++++++++++++- cps/translations/de/LC_MESSAGES/messages.po | 2 +- cps/ub.py | 54 ++++++++++++++++++++- cps/web.py | 27 +++++++++++ 4 files changed, 134 insertions(+), 3 deletions(-) diff --git a/cps/templates/config_edit.html b/cps/templates/config_edit.html index cd8c321c..4d59190f 100644 --- a/cps/templates/config_edit.html +++ b/cps/templates/config_edit.html @@ -88,6 +88,7 @@

    +
    @@ -121,7 +122,6 @@
    {% endif %} -

    {{_('Default Settings for new users')}}

    @@ -151,6 +151,57 @@
    +
    +
    +

    {{_('Default visiblities for new users')}}

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    {% if not origin %} {{_('Back')}} @@ -158,6 +209,7 @@ {% if success %} {{_('Login')}} {% endif %} +
    {% endblock %} diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index 1aaf8250..760f63df 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -1284,7 +1284,7 @@ msgstr "Zeige Zufällige Bücher" #: cps/templates/user_edit.html:50 msgid "Show recent books" -msgstr " kürzlich hinzugefügte Bücher" +msgstr "Zeige kürzlich hinzugefügte Bücher" #: cps/templates/user_edit.html:54 msgid "Show sorted books" diff --git a/cps/ub.py b/cps/ub.py index 5f4d5df0..b76ace02 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -281,6 +281,7 @@ class Settings(Base): config_anonbrowse = Column(SmallInteger, default=0) config_public_reg = Column(SmallInteger, default=0) config_default_role = Column(SmallInteger, default=0) + config_default_show = Column(SmallInteger, default=2047) config_columns_to_ignore = Column(String) config_use_google_drive = Column(Boolean) config_google_drive_client_id = Column(String) @@ -288,7 +289,6 @@ class Settings(Base): config_google_drive_folder = Column(String) config_google_drive_calibre_url_base = Column(String) config_google_drive_watch_changes_response = Column(String) - #config_columns_to_ignore = Column(String) config_remote_login = Column(Boolean) config_use_goodreads = Column(Boolean) config_goodreads_api_key = Column(String) @@ -337,6 +337,7 @@ class Config: self.config_anonbrowse = data.config_anonbrowse self.config_public_reg = data.config_public_reg self.config_default_role = data.config_default_role + self.config_default_show = data.config_default_show self.config_columns_to_ignore = data.config_columns_to_ignore self.config_use_google_drive = data.config_use_google_drive self.config_google_drive_client_id = data.config_google_drive_client_id @@ -400,6 +401,50 @@ class Config: return bool((self.config_default_role is not None) and (self.config_default_role & ROLE_DELETE_BOOKS == ROLE_DELETE_BOOKS)) + def show_detail_random(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & DETAIL_RANDOM == DETAIL_RANDOM)) + + def show_language(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_LANGUAGE == SIDEBAR_LANGUAGE)) + + def show_series(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_SERIES == SIDEBAR_SERIES)) + + def show_category(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_CATEGORY == SIDEBAR_CATEGORY)) + + def show_hot_books(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_HOT == SIDEBAR_HOT)) + + def show_random_books(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_RANDOM == SIDEBAR_RANDOM)) + + def show_author(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_AUTHOR == SIDEBAR_AUTHOR)) + + def show_best_rated_books(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_BEST_RATED == SIDEBAR_BEST_RATED)) + + def show_read_and_unread(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_READ_AND_UNREAD == SIDEBAR_READ_AND_UNREAD)) + + def show_recent(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_RECENT == SIDEBAR_RECENT)) + + def show_sorted(self): + return bool((self.config_default_show is not None) and + (self.config_default_show & SIDEBAR_SORTED == SIDEBAR_SORTED)) + def mature_content_tags(self): if sys.version_info > (3, 0): # Python3 str, Python2 unicode lstrip = str.lstrip @@ -532,6 +577,13 @@ def migrate_Database(): except exc.OperationalError: conn = engine.connect() conn.execute("ALTER TABLE Settings ADD column `config_mature_content_tags` String DEFAULT ''") + try: + session.query(exists().where(Settings.config_default_show)).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_show` SmallInteger DEFAULT 2047") + session.commit() def clean_database(): diff --git a/cps/web.py b/cps/web.py index 06c4a18a..80875356 100755 --- a/cps/web.py +++ b/cps/web.py @@ -1933,6 +1933,7 @@ def register(): content.nickname = to_save["nickname"] content.email = to_save["email"] content.role = config.config_default_role + content.sidebar_view = config.config_default_show try: ub.session.add(content) ub.session.commit() @@ -2484,6 +2485,7 @@ def configuration_helper(origin): if "config_mature_content_tags" in to_save: content.config_mature_content_tags = to_save["config_mature_content_tags"].strip() + # Default user configuration content.config_default_role = 0 if "admin_role" in to_save: content.config_default_role = content.config_default_role + ub.ROLE_ADMIN @@ -2499,6 +2501,30 @@ def configuration_helper(origin): content.config_default_role = content.config_default_role + ub.ROLE_PASSWD if "passwd_role" in to_save: content.config_default_role = content.config_default_role + ub.ROLE_EDIT_SHELFS + content.config_default_show = 0 + if "show_detail_random" in to_save: + content.config_default_show = content.config_default_show + ub.DETAIL_RANDOM + if "show_language" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_LANGUAGE + if "show_series" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_SERIES + if "show_category" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_CATEGORY + if "show_hot" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_HOT + if "show_random" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_RANDOM + if "show_author" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_AUTHOR + if "show_best_rated" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_BEST_RATED + if "show_read_and_unread" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_READ_AND_UNREAD + if "show_recent" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_RECENT + if "show_sorted" in to_save: + content.config_default_show = content.config_default_show + ub.SIDEBAR_SORTED + try: if content.config_use_google_drive and is_gdrive_ready() and not os.path.exists(config.config_calibre_dir + "/metadata.db"): gdriveutils.downloadFile(Gdrive.Instance().drive, None, "metadata.db", config.config_calibre_dir + "/metadata.db") @@ -2607,6 +2633,7 @@ def new_user(): flash(_(u"Found an existing account for this email address or nickname."), category="error") else: content.role = config.config_default_role + content.sidebar_view = config.config_default_show return render_title_template("user_edit.html", new_user=1, content=content, translations=translations, languages=languages, title=_(u"Add new user")) From cbb236ba7b3fc4063ed5f5410b9a2cc92121949c Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Fri, 1 Dec 2017 07:53:52 +0100 Subject: [PATCH 031/180] Added visiblilty of shelfs to opds catalog (#267) --- cps/static/js/libs/screenfull.min.js | 6 +-- cps/templates/index.xml | 14 ++++++ cps/translations/de/LC_MESSAGES/messages.po | 2 +- cps/web.py | 49 +++++++++++++++++++++ 4 files changed, 67 insertions(+), 4 deletions(-) diff --git a/cps/static/js/libs/screenfull.min.js b/cps/static/js/libs/screenfull.min.js index 6f5eaf33..e7a33a42 100644 --- a/cps/static/js/libs/screenfull.min.js +++ b/cps/static/js/libs/screenfull.min.js @@ -1,7 +1,7 @@ /*! * screenfull -* v1.1.0 - 2013-09-06 -* https://github.com/sindresorhus/screenfull.js +* v3.3.0 - 2017-07-06 * (c) Sindre Sorhus; MIT License */ -!function(a,b){"use strict";var c="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,d=function(){for(var a,c,d=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenchange","MSFullscreenerror"]],e=0,f=d.length,g={};f>e;e++)if(a=d[e],a&&a[1]in b){for(e=0,c=a.length;c>e;e++)g[d[0][e]]=a[e];return g}return!1}(),e={request:function(a){var e=d.requestFullscreen;a=a||b.documentElement,/5\.1[\.\d]* Safari/.test(navigator.userAgent)?a[e]():a[e](c&&Element.ALLOW_KEYBOARD_INPUT)},exit:function(){b[d.exitFullscreen]()},toggle:function(a){this.isFullscreen?this.exit():this.request(a)},onchange:function(){},onerror:function(){},raw:d};return d?(Object.defineProperties(e,{isFullscreen:{get:function(){return!!b[d.fullscreenElement]}},element:{enumerable:!0,get:function(){return b[d.fullscreenElement]}},enabled:{enumerable:!0,get:function(){return!!b[d.fullscreenEnabled]}}}),b.addEventListener(d.fullscreenchange,function(a){e.onchange.call(e,a)}),b.addEventListener(d.fullscreenerror,function(a){e.onerror.call(e,a)}),a.screenfull=e,void 0):(a.screenfull=!1,void 0)}(window,document); \ No newline at end of file + +!function(){"use strict";var a="undefined"!=typeof window&&void 0!==window.document?window.document:{},b="undefined"!=typeof module&&module.exports,c="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,d=function(){for(var b,c=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],d=0,e=c.length,f={};d{{url_for('feed_seriesindex')}} {{_('Books ordered by series')}} + + {{_('Public Shelves')}} + + {{url_for('feed_shelfindex', public="public")}} + {{_('Books organized in public shelfs, visible to everyone')}} + + {% if not current_user.is_anonymous %} + + {{_('Your Shelves')}} + + {{url_for('feed_shelfindex')}} + {{_("User's own shelfs, only visible to the current user himself")}} + + {% endif %} diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index 760f63df..b60d375a 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -1090,7 +1090,7 @@ msgstr "Sprachen" #: cps/templates/layout.html:152 msgid "Public Shelves" -msgstr "Öffentiche Bücherregale" +msgstr "Öffentliche Bücherregale" #: cps/templates/layout.html:156 msgid "Your Shelves" diff --git a/cps/web.py b/cps/web.py index 80875356..b1632431 100755 --- a/cps/web.py +++ b/cps/web.py @@ -840,6 +840,55 @@ def feed_series(book_id): return response +@app.route("/opds/shelfindex/", defaults={'public': 0}) +@app.route("/opds/shelfindex/") +@requires_basic_auth_if_no_ano +def feed_shelfindex(public): + off = request.args.get("offset") + if not off: + off = 0 + if public is not 0: + shelf = g.public_shelfes + number = len(shelf) + else: + shelf = g.user.shelf + number = shelf.count() + pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page, + number) + xml = render_title_template('feed.xml', listelements=shelf, folder='feed_shelf', pagination=pagination) + response = make_response(xml) + response.headers["Content-Type"] = "application/atom+xml; charset=utf-8" + return response + + +@app.route("/opds/shelf/") +@requires_basic_auth_if_no_ano +def feed_shelf(book_id): + off = request.args.get("offset") + if not off: + off = 0 + if current_user.is_anonymous: + shelf = ub.session.query(ub.Shelf).filter(ub.Shelf.is_public == 1, ub.Shelf.id == book_id).first() + else: + shelf = ub.session.query(ub.Shelf).filter(ub.or_(ub.and_(ub.Shelf.user_id == int(current_user.id), + ub.Shelf.id == book_id), + ub.and_(ub.Shelf.is_public == 1, + ub.Shelf.id == book_id))).first() + result = list() + # user is allowed to access shelf + if shelf: + books_in_shelf = ub.session.query(ub.BookShelf).filter(ub.BookShelf.shelf == book_id).order_by( + ub.BookShelf.order.asc()).all() + for book in books_in_shelf: + cur_book = db.session.query(db.Books).filter(db.Books.id == book.book_id).first() + result.append(cur_book) + pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page, + len(result)) + xml = render_title_template('feed.xml', entries=result, pagination=pagination) + response = make_response(xml) + response.headers["Content-Type"] = "application/atom+xml; charset=utf-8" + return response + def partial(total_byte_len, part_size_limit): s = [] for p in range(0, total_byte_len, part_size_limit): From 4e1127202351cef1518ab382eddbd3d02e84ac47 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Fri, 1 Dec 2017 10:10:42 +0100 Subject: [PATCH 032/180] Working on IE11 --- cps/static/js/kthoom.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 63b12ca6..1754c460 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -138,6 +138,9 @@ kthoom.setProgressMeter = function(optLabel) { function loadFromArrayBuffer(ab) { var f = []; + if (typeof ab !== "object") { + ab = JSON.parse(ab); + } f.fileData = ab.content; f.filename = ab.name; // add any new pages based on the filename From 152f7857c9be0b1b637d97d9460626185c200b51 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Fri, 1 Dec 2017 15:33:55 +0100 Subject: [PATCH 033/180] Fix #397 --- cps/helper.py | 4 ++-- cps/web.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index efb88203..2863cc64 100755 --- a/cps/helper.py +++ b/cps/helper.py @@ -292,9 +292,9 @@ def get_valid_filename(value, replace_whitespace=True): def get_sorted_author(value): - regexes = ["^(JR|SR)\.?$", "^I{1,3}\.?$", "^IV\.?$"] - combined = "(" + ")|(".join(regexes) + ")" try: + 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] diff --git a/cps/web.py b/cps/web.py index b1632431..f3c55109 100755 --- a/cps/web.py +++ b/cps/web.py @@ -2931,7 +2931,7 @@ def edit_book(book_id): edited_books_id.add(book.id) input_authors = to_save["author_name"].split('&') - input_authors = map(lambda it: it.strip().replace(',', '|'), input_authors) + input_authors = list(map(lambda it: it.strip().replace(',', '|'), input_authors)) # we have all author names now if input_authors == ['']: input_authors = [_(u'unknown')] # prevent empty Author @@ -2969,7 +2969,7 @@ def edit_book(book_id): book.comments.append(db.Comments(text=to_save["description"], book=book.id)) input_tags = to_save["tags"].split(',') - input_tags = map(lambda it: it.strip(), input_tags) + input_tags = list(map(lambda it: it.strip(), input_tags)) modify_database_object(input_tags, book.tags, db.Tags, db.session, 'tags') input_series = [to_save["series"].strip()] @@ -2977,7 +2977,7 @@ def edit_book(book_id): modify_database_object(input_series, book.series, db.Series, db.session, 'series') input_languages = to_save["languages"].split(',') - input_languages = map(lambda it: it.strip().lower(), input_languages) + input_languages = list(map(lambda it: it.strip().lower(), input_languages)) if to_save["pubdate"]: try: @@ -3089,7 +3089,7 @@ def edit_book(book_id): db.session.delete(del_cc) else: input_tags = to_save[cc_string].split(',') - input_tags = map(lambda it: it.strip(), input_tags) + input_tags = list(map(lambda it: it.strip(), input_tags)) modify_database_object(input_tags, getattr(book, cc_string), db.cc_classes[c.id], db.session, 'custom') db.session.commit() author_names = [] @@ -3234,7 +3234,7 @@ def upload(): db.session.commit() input_tags = tags.split(',') - input_tags = map(lambda it: it.strip(), input_tags) + input_tags = list(map(lambda it: it.strip(), input_tags)) modify_database_object(input_tags, db_book.tags, db.Tags, db.session, 'tags') if db_language is not None: # display Full name instead of iso639.part3 From b74a075aa6cba7c6876faab2c3115a0c4f8d5a45 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sat, 2 Dec 2017 11:15:51 +0100 Subject: [PATCH 034/180] Added posibility to change settings db via command line for multiple instances (#247) --- cps/cli.py | 21 ++ cps/gdriveutils.py | 7 +- cps/templates/config_edit.html | 4 + cps/translations/de/LC_MESSAGES/messages.mo | Bin 303031 -> 303662 bytes cps/translations/de/LC_MESSAGES/messages.po | 346 +++++++++--------- cps/translations/es/LC_MESSAGES/messages.po | 344 +++++++++-------- cps/translations/fr/LC_MESSAGES/messages.po | 344 +++++++++-------- cps/translations/it/LC_MESSAGES/messages.po | 344 +++++++++-------- cps/translations/nl/LC_MESSAGES/messages.po | 344 +++++++++-------- cps/translations/pl/LC_MESSAGES/messages.po | 344 +++++++++-------- cps/translations/ru/LC_MESSAGES/messages.po | 344 +++++++++-------- .../zh_Hans_CN/LC_MESSAGES/messages.po | 344 +++++++++-------- cps/ub.py | 26 +- cps/web.py | 17 +- messages.pot | 342 +++++++++-------- readme.md | 23 +- 16 files changed, 1720 insertions(+), 1474 deletions(-) create mode 100644 cps/cli.py diff --git a/cps/cli.py b/cps/cli.py new file mode 100644 index 00000000..d75d54c7 --- /dev/null +++ b/cps/cli.py @@ -0,0 +1,21 @@ +import argparse +import os + +parser = argparse.ArgumentParser(description='Calibre Web is a web app' + ' providing a interface for browsing, reading and downloading eBooks\n', prog='cps.py') +parser.add_argument('-p', metavar='path', help='path and name to settings db, e.g. /opt/cw.db') +parser.add_argument('-g', metavar='path', help='path and name to gdrive db, e.g. /opt/gd.db') +args = parser.parse_args() + +generalPath = os.path.normpath(os.getenv("CALIBRE_DBPATH", + os.path.dirname(os.path.realpath(__file__)) + os.sep + ".." + os.sep)) +if args.p: + settingspath = args.p +else: + settingspath = os.path.join(generalPath, "app.db") + +if args.g: + gdpath = args.g +else: + gdpath = os.path.join(generalPath, "gdrive.db") + diff --git a/cps/gdriveutils.py b/cps/gdriveutils.py index 8909db15..f2665ba6 100644 --- a/cps/gdriveutils.py +++ b/cps/gdriveutils.py @@ -7,6 +7,7 @@ except ImportError: import os from ub import config +import cli from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base @@ -15,9 +16,7 @@ from sqlalchemy.orm import * import web - -dbpath = os.path.join(os.path.normpath(os.path.dirname(os.path.realpath(__file__)) + os.sep + ".." + os.sep), "gdrive.db") -engine = create_engine('sqlite:///{0}'.format(dbpath), echo=False) +engine = create_engine('sqlite:///{0}'.format(cli.gdpath), echo=False) Base = declarative_base() # Open session for database connection @@ -64,7 +63,7 @@ def migrate(): session.execute('ALTER TABLE gdrive_ids2 RENAME to gdrive_ids') break -if not os.path.exists(dbpath): +if not os.path.exists(cli.gdpath): try: Base.metadata.create_all(engine) except Exception: diff --git a/cps/templates/config_edit.html b/cps/templates/config_edit.html index 4d59190f..4b8aefde 100644 --- a/cps/templates/config_edit.html +++ b/cps/templates/config_edit.html @@ -88,6 +88,10 @@
    +
    + + +
    diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo index d19f5e449639ade4125949586cdf8ec738073b98..e6defdfe1dff9611927ec48d8f67733e416dfb49 100644 GIT binary patch delta 129900 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 delta 129393 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 m\n" "Language: es\n" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "No instalado" @@ -79,380 +79,384 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "Invitado" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "Solicitando paquete de actualización" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "Descargando paquete de actualización" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "Descomprimiendo paquete de actualización" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "Ficheros sustituidos" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "Los conexiones de base datos están cerradas" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "El servidor está detenido" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "Libros populares (los mas descargados)" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "Libros mejor valorados" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "Libros al azar" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "Lista de autores" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Error en la apertura del eBook. El archivo no existe o no es accesible:" -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "Lista de series" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "Series : %(serie)s" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "Lenguajes disponibles" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "Lenguaje: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "Lista de categorias" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "Categoría : %(name)s" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "Estadisticas" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "Servidor reiniciado. Por favor, recargue la página" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana." -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "Actualización realizada" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "búsqueda" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "Libros leídos" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "Libros no leídos" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "Leer un libro" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "¡Por favor completar todos los campos!" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "registrarse" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "Error desconocido. Por favor, inténtelo de nuevo mas tarde." -#: cps/web.py:1946 +#: cps/web.py:1996 msgid "This username or email address is already in use." msgstr "Usuario o dirección de correo en uso." -#: cps/web.py:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Sesion iniciada como : '%(nickname)s'" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "Usuario o contraseña invalido" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "Iniciar sesión" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "Configurar primero los parametros SMTP por favor..." -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Envio de Libro a %(kindlemail)s correctamente" -#: cps/web.py:2083 +#: cps/web.py:2133 #, 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:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "Configurar primero la dirección de correo Kindle por favor..." -#: cps/web.py:2129 +#: cps/web.py:2179 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "El libro fue agregado a el estante: %(sname)s" -#: cps/web.py:2166 +#: cps/web.py:2216 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "El libro fue removido del estante: %(sname)s" -#: cps/web.py:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, 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:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "Estante %(title)s creado" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "Ha sucedido un error" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "crear un estante" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "Estante %(title)s cambiado" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "Editar un estante" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Estante %(name)s fue borrado correctamente" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "Estante: '%(name)s'" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Cambiar orden del estante: '%(name)s'" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "Existe una cuenta vinculada a esta dirección de correo." -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "Perfil actualizado" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "Página de administración" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" -msgstr "Configuración de Calibre-web actualizada" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" +msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "Configuración básica" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "Configuración de Calibre-web actualizada" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "Localicación de la BD inválida. Por favor, introduzca la ruta correcta." -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "Agregar un nuevo usuario" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "Usuario '%(user)s' creado" -#: cps/web.py:2607 +#: cps/web.py:2695 msgid "Found an existing account for this email address or nickname." msgstr "" "Se ha encontrado una cuenta vinculada a esta dirección de correo o nombre" " de usuario." -#: cps/web.py:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "Parámetros de correo actualizados" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Exito al realizar envio de prueba a %(kindlemail)s" -#: cps/web.py:2639 +#: cps/web.py:2728 #, 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:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "Ajustes de correo electrónico actualizados" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "Editar parametros de correo" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuario '%(nick)s' borrado" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuario '%(nick)s' actualizado" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "Error inesperado." -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "Editar Usuario %(nick)s" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "editar metainformación" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "No se permite subir archivos con la extensión \"%s\" a este servidor" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "El archivo a subir debe tener una extensión" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Fallo al crear la ruta %s (permiso negado)" -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Fallo al almacenar el archivo %s (permiso negado)" -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Fallo al borrar el archivo %s (permiso negado)" @@ -609,7 +613,7 @@ msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -702,7 +706,7 @@ msgstr "Ver libro tras la edicion" msgid "Get metadata" msgstr "Obtener metainformación" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -818,71 +822,123 @@ msgstr "Expresión regular para ordenar títulos" msgid "Tags for Mature Content" msgstr "" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "Permitir subida" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "Permitir navegación anónima" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "Permitir registro público" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "Ajustes por defecto para nuevos usuarios" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Usuario Administrador" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Permitir descargas" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Permitir subidas de archivos" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Permitir editar" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Permitir cambiar la clave" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "Mostrar libros al azar" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "Mostrar libros populares" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "Mostrar libros mejor valorados" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "Mostrar lenguaje seleccionado" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "Mostrar series seleccionadas" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "Mostrar categorias elegidas" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "Mostrar selección de autores" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "Mostrar leídos y no leídos" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "Mostrar libro aleatorios con vista detallada" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "Inicio de Sesion" @@ -1014,6 +1070,22 @@ msgstr "Libros ordenados por Categorias" msgid "Books ordered by series" msgstr "Libros ordenados por Series" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "Estantes públicos" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "Sus estantes" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "Alternar navegación" @@ -1075,14 +1147,6 @@ msgstr "Categoria" msgid "Languages" msgstr "Lenguaje" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "Estantes públicos" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "Sus estantes" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Crear un estante" @@ -1265,50 +1329,6 @@ msgstr "Mostrar lenguaje de los libros" msgid "Show all" msgstr "Mostrar Todo" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "Mostrar libros al azar" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "Mostrar libros populares" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "Mostrar libros mejor valorados" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "Mostrar lenguaje seleccionado" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "Mostrar series seleccionadas" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "Mostrar categorias elegidas" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "Mostrar selección de autores" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "Mostrar leídos y no leídos" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "Mostrar libro aleatorios con vista detallada" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index 28fc847b..035b22d9 100644 --- a/cps/translations/fr/LC_MESSAGES/messages.po +++ b/cps/translations/fr/LC_MESSAGES/messages.po @@ -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-11-30 16:45+0100\n" +"POT-Creation-Date: 2017-12-02 11:12+0100\n" "PO-Revision-Date: 2017-10-26 22:42+0200\n" "Last-Translator: Nicolas Roudninski \n" "Language: fr\n" @@ -31,7 +31,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "non installé" @@ -85,382 +85,386 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "Invité" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "Téléchargement la mise à jour" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "Décompression de la mise à jour" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "Fichiers remplacés" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "Connexion à la base de donnée fermée" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "Serveur arrêté" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la page" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "Ajouts récents" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "Livres récents" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "Anciens livres" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "Livres (A-Z)" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "Livres (Z-A)" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "Livres populaires (les plus téléchargés)" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "Livres les mieux notés" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "Livres au hasard" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "Liste des auteurs" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est " "pas accessible :" -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "Liste des séries" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "Séries : %(serie)s" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "Langues disponibles" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "Langue : %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "Liste des catégories" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "Catégorie : %(name)s" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "Statistiques" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "Serveur redémarré, merci de rafraîchir la page" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "Mise à jour effectuée" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "recherche" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "Livres lus" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "Livres non-lus" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "Lire un livre" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "SVP, complétez tous les champs !" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "s’enregistrer" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "Une erreur a eu lieu. Merci de réessayez plus tard." -#: cps/web.py:1946 +#: cps/web.py:1996 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:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "Mauvais nom d'utilisateur ou mot de passe" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "connexion" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "Jeton non trouvé" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "Jeton expiré" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "Réussite! Merci de vous tourner vers votre appareil" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "Veillez configurer les paramètres smtp d'abord..." -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Livres envoyés à %(kindlemail)s avec succès" -#: cps/web.py:2083 +#: cps/web.py:2133 #, 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:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "Veuillez configurer votre adresse kindle d'abord..." -#: cps/web.py:2129 +#: cps/web.py:2179 #, 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:2166 +#: cps/web.py:2216 #, 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:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, 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:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "Étagère %(title)s créée" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "Il y a eu une erreur" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "créer une étagère" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "Modifier une étagère" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "l’étagère %(name)s a été supprimé avec succès" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "Étagère : '%(name)s'" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "Un compte avec cette adresse de courriel existe déjà." -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "Profil de %(name)s" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "Profil mis à jour" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "Page administrateur" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" -msgstr "Configuration de Calibre-web mise à jour" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" +msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "Configuration basique" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "Configuration de Calibre-web mise à jour" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "Ajouter un nouvel utilisateur" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "Utilisateur '%(user)s' créé" -#: cps/web.py:2607 +#: cps/web.py:2695 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:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "Paramètres de courriel mis à jour" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2639 +#: cps/web.py:2728 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "Préférences e-mail mises à jour" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "Éditer les paramètres de courriel" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "Utilisateur '%(nick)s' supprimé" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "Utilisateur '%(nick)s' mis à jour" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "Oups ! Une erreur inconnue a eu lieu." -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "Éditer l'utilisateur %(nick)s" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" "Erreur à l’ouverture du livre. Le fichier n’existe pas ou n’est pas " "accessible" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "modifier les métadonnées" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "inconnu" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "Pour être téléverser le fichier doit avoir une extension" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossible de créer le chemin %s (permission refusée)" -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossible d'enregistrer le fichier %s (permission refusée)" -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossible de supprimer le fichier %s (permission refusée)" @@ -617,7 +621,7 @@ msgstr "D’accord" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -710,7 +714,7 @@ msgstr "voir le livre après l'édition" msgid "Get metadata" msgstr "Obtenir les métadonnées" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -826,71 +830,123 @@ msgstr "" msgid "Tags for Mature Content" msgstr "Mots clés pour contenue pour adulte" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "Autoriser le téléversement" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "Autoriser la navigation anonyme" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "Autoriser l’inscription publique" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "Utiliser" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "Obtenir la clé API" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "Réglages par défaut pour les nouveaux utilisateurs" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Utilisateur admin" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Permettre les téléchargements" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Permettre les téléversements" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Permettre l'édition" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Autoriser la suppression des livres" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Permettre le changement de mot de passe" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Autoriser la modification d’étagères publiques" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "Montrer des livres au hasard" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "Montrer les livres populaires" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "Montrer les livres les mieux notés" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "Montrer la sélection par langue" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "Montrer la sélection par séries" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "Montrer la sélection par catégories" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "Montrer la sélection par auteur" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "Montrer lu et non-lu" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "Montrer aléatoirement des livres dans la vue détaillée" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "Connexion" @@ -1024,6 +1080,22 @@ msgstr "Livres classés par catégorie" msgid "Books ordered by series" msgstr "Livres classés par série" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "Étagères publiques" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "Vos étagères" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "Basculer la navigation" @@ -1085,14 +1157,6 @@ msgstr "Catégories" msgid "Languages" msgstr "Langues" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "Étagères publiques" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "Vos étagères" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Créer une étagère" @@ -1275,50 +1339,6 @@ msgstr "Montrer les livres dans la langue" msgid "Show all" msgstr "Montrer tout" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "Montrer des livres au hasard" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "Montrer les livres populaires" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "Montrer les livres les mieux notés" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "Montrer la sélection par langue" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "Montrer la sélection par séries" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "Montrer la sélection par catégories" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "Montrer la sélection par auteur" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "Montrer lu et non-lu" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "Montrer aléatoirement des livres dans la vue détaillée" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "Montrer le contenu pour adulte" diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 1e2febe8..998bbd96 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -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-11-30 16:45+0100\n" +"POT-Creation-Date: 2017-12-02 11:12+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: Marco Picone \n" "Language: it\n" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "non installato" @@ -79,386 +79,390 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "ospite" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "Richiesta del pacchetto di aggiornamento" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "Scaricare il pacchetto di aggiornamento" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "Decomprimere pacchetto di aggiornamento" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "I file vengono sostituiti" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "Le connessioni di database sono chiuse" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "Il server viene arrestato" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "Aggiornamento completato, prego premere bene e ricaricare pagina" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "Libri aggiunti di recente" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "I più nuovi libri" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "Libri più vecchi" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "Ebook (A-Z)" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "Ebook (Z-A)" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "Hot Books (più scaricati)" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "I migliori libri valutati" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "Libri casuali" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "Elenco degli autori" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile:" -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "Lista delle serie" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "Serie :" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "Lingue disponibili" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "Lingue: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "Elenco categorie" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "Categoria : %(name)s" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "Mancano autorizzazioni di esecuzione" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "Statistica" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "Server riavviato, ricarica pagina" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "Eseguire l'arresto del server, chiudi la finestra." -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "Aggiornamento fatto" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "ricerca" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "Leggere libri" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "Libri non letti" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "Leggere un libro" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "Compila tutti i campi" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "Registrare" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "Si è verificato un errore sconosciuto. Per favore riprova più tardi." -#: cps/web.py:1946 +#: cps/web.py:1996 msgid "This username or email address is already in use." msgstr "Questo nome utente o indirizzo email è già in uso." -#: cps/web.py:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "ora sei connesso come : '%(nickname)s'" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "Nome utente o password errata" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "Accesso" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "Token non trovato" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "Il token è scaduto" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "Successo! Torna al tuo dispositivo" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "Configurare prima le impostazioni della posta SMTP..." -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Libro inviare con successo %(kindlemail)s correttamente" -#: cps/web.py:2083 +#: cps/web.py:2133 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Si è verificato un errore durante l'invio di questo libro: %(res)s" -#: cps/web.py:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "Si prega di configurare innanzitutto il tuo indirizzo email..." -#: cps/web.py:2129 +#: cps/web.py:2179 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Il libro è stato aggiunto alla mensola: %(sname)s" -#: cps/web.py:2166 +#: cps/web.py:2216 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Il libro è stato rimosso dalla mensola: %(sname)s" -#: cps/web.py:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Uno scaffale con il nome '%(title)s' esiste già." -#: cps/web.py:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "Mensola %(title)s creato" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "c'era un errore" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "creare uno scaffale" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "Mensola %(title)s cambiato" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "Modifica un ripiano" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "cancellato con successo il ripiano %(name)s" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "Mensola: '%(name)s'" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" "Errore durante l'apertura dello scaffale. La mensola non esiste o non è " "accessibile" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Modificare l'ordine della mensola: '%(name)s'" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "Trovato un account esistente per questo indirizzo email." -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "Profilo di %(name)s" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "Profilo aggiornato" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "Pagina di amministrazione" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" -msgstr "Aggiornamento della configurazione del calibro-web" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" +msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "Configurazione di base" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "Aggiornamento della configurazione del calibro-web" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "Posizione DB non valida. Inserisci il percorso corretto." -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "Aggiungi un nuovo utente" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "utente '%(user)s' creato" -#: cps/web.py:2607 +#: cps/web.py:2695 msgid "Found an existing account for this email address or nickname." msgstr "" "È stato trovato un account collegato a questo indirizzo e-mail o nome " "utente." -#: cps/web.py:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "Parametri di posta aggiornati" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Successo quando invii il test a %(kindlemail)s" -#: cps/web.py:2639 +#: cps/web.py:2728 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Impossibile inviare il test a E-Mail: %(res)s" -#: cps/web.py:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "Impostazioni email aggiornate" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "Modificare i parametri della posta" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "utente '%(nick)s' cancellati" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "utente '%(nick)s' aggiornato" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "Errore imprevisto." -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "Modifica utente %(nick)s" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" "Errore durante l'apertura di eBook. Il file non esiste o il file non è " "accessibile" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "modificare la metainformazione" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Non è consentito caricare i file con l'estensione \"%s\" a questo server" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "Sconosciuto" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "Il file da caricare deve avere un'estensione" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Impossibile creare il percorso %s (autorizzazione negata)" -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Impossibile archiviare il file %s (autorizzazione negata)" -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Impossibile eliminare il file %s (autorizzazione negata)" @@ -615,7 +619,7 @@ msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -708,7 +712,7 @@ msgstr "visualizzare il libro dopo la modifica" msgid "Get metadata" msgstr "Ottieni metadati" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -824,71 +828,123 @@ msgstr "Espressione regolare per la selezione del titolo" msgid "Tags for Mature Content" msgstr "Tags per Contenuti maturi" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "Abilita il caricamento" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "Abilita la navigazione anonima" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "Abilita la registrazione pubblica" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "Attiva login remoto (\"magic link\")" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "Uso" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "Ottenere una chiave API" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "API di Goodreads" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "Goodreads API Secret" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "Impostazioni predefinite per i nuovi utenti" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Utente amministratore" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Consenti download" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Consenti caricamenti" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Consenti Modifica" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Consenti l'eliminazione di libri" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Consenti la modifica della password" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Consenti la modifica dei ripiani pubblici" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "Mostra libro a caso" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "Mostra libri popolari" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "Mostra sezione più votati" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "Mostra sezione lingua" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "Mostra sezione serie" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "Mostra sezione categorie" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "Mostra sezione autore" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "Mostra letto e non letto" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "Un libro a caso" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "Accesso" @@ -1020,6 +1076,22 @@ msgstr "Libri ordinati per categoria" msgid "Books ordered by series" msgstr "Libri ordinati per serie" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "Ripiani pubblici" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "I tuoi scaffali" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "Toggle navigation" @@ -1081,14 +1153,6 @@ msgstr "Categoria" msgid "Languages" msgstr "lingua" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "Ripiani pubblici" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "I tuoi scaffali" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Crea una mensola" @@ -1273,50 +1337,6 @@ msgstr "Mostra libri per lingua" msgid "Show all" msgstr "Mostra tutto" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "Mostra libro a caso" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "Mostra libri popolari" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "Mostra sezione più votati" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "Mostra sezione lingua" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "Mostra sezione serie" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "Mostra sezione categorie" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "Mostra sezione autore" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "Mostra letto e non letto" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "Un libro a caso" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "Mostra sezione adulti" diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 18a36030..44523a78 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web dutch translation by Ed Driesen (GPL V3)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-30 16:45+0100\n" +"POT-Creation-Date: 2017-12-02 11:12+0100\n" "PO-Revision-Date: 2017-06-21 20:15+0200\n" "Last-Translator: \n" "Language: nl\n" @@ -33,7 +33,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "niet geïnstalleerd" @@ -87,382 +87,386 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "Gast" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "Update pakket wordt aangevraagd" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "Update pakket wordt gedownload" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "Update pakket wordt uitgepakt" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "Bestanden zijn vervangen" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "Database verbindingen zijn gesloten" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "Server is gestopt" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "Update voltooid, klik op ok en herlaad de pagina" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "Recent toegevoegde boeken" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "Nieuwste boeken" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "Oudste boeken" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "Boeken (A-Z)" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "Boeken (A-Z)" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "Populaire boeken (meeste downloads)" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "Best beoordeelde boeken" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "Willekeurige boeken" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "Auteur lijst" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" "Fout bij openen van het boek. Bestand bestaat niet of is niet " "toegankelijk:" -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "Serie lijst" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "Beschikbare talen" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "Categorie lijst" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "Categorie: %(name)s" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "Rechten om uit te voeren ontbreken" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "Statistieken" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "Server herstart, gelieve de pagina herladen" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "Bezig met het stoppen van de server, gelieve venster te sluiten" -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "Update voltooid" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "zoek" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "Gelezen Boeken" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "Ongelezen Boeken" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "Lees een boek" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "Gelieve alle velden in te vullen!" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "registreer" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "Een onbekende fout deed zich voor. Gelieve later nog eens te proberen." -#: cps/web.py:1946 +#: cps/web.py:1996 msgid "This username or email address is already in use." msgstr "Deze gebruikersnaam of dit emailadres is reeds in gebruik." -#: cps/web.py:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "je bent nu ingelogd als: '%(nickname)s'" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "Verkeerde gebruikersnaam of Wachtwoord" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "login" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "Token niet gevonden" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "Token is verlopen" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "Gelukt! Ga terug naar je apparaat" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "Gelieve de SMTP mail instellingen eerst te configureren..." -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Boek met succes verstuurd naar %(kindlemail)s" -#: cps/web.py:2083 +#: cps/web.py:2133 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Er trad een fout op bij het versturen van dit boek: %(res)s" -#: cps/web.py:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "Gelieve eerst je kindle email adres te configureren..." -#: cps/web.py:2129 +#: cps/web.py:2179 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Boek werd toegevoegd aan boekenplank: %(sname)s" -#: cps/web.py:2166 +#: cps/web.py:2216 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Boek werd verwijderd van boekenplank: %(sname)s" -#: cps/web.py:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Een boekenplank met de naam '%(title)s' bestaat reeds." -#: cps/web.py:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "Boekenplank %(title)s aangemaakt" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "Er deed zich een fout voor" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "maak een boekenplank" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "Boekenplank %(title)s gewijzigd" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "Bewerk een boekenplank" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Boekenplank %(name)s succesvol gewist" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "Boekenplank: '%(name)s'" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" "Fout bij openen boekenplank. Boekenplank bestaat niet of is niet " "toegankelijk" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Verander volgorde van Boekenplank: '%(name)s'" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "Een bestaand gebruiker gevonden voor dit email adres." -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's profiel" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "Profiel aangepast" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "Administratie pagina" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" -msgstr "Calibre-web configuratie aangepast" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" +msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "Basis configuratie" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "Calibre-web configuratie aangepast" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "DB locatie is niet geldig, gelieve het correcte pad in te geven" -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "Voeg nieuwe gebruiker toe" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "Gebruiker '%(user)s' aangemaakt" -#: cps/web.py:2607 +#: cps/web.py:2695 msgid "Found an existing account for this email address or nickname." msgstr "Een bestaande gebruiker gevonden voor dit emailadres of gebruikersnaam." -#: cps/web.py:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "Mail instellingen aangepast" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Test email met succes verstuurd naar %(kindlemail)s" -#: cps/web.py:2639 +#: cps/web.py:2728 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Er trad een fout op met het versturen van de test email: %(res)s" -#: cps/web.py:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "Email instellingen aangepast" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "Bewerk mail instellingen" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "Gebruiker '%(nick)s' verwijderd" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "Gebruiker '%(nick)s' aangepast" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "Een onbekende fout deed zich voor." -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "Bewerk gebruiker '%(nick)s'" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Fout bij openen eBook. Het bestand bestaat niet of is niet toegankelijk" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "Bewerk metadata" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Het uploaden van bestandsextensie \"%s\" is niet toegestaan op deze server" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "Bestand opslaan niet gelukt voor %s." -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "onbekend" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "Up te loaden bestanden dienen een extensie te hebben" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Het pad %s aanmaken mislukt (Geen toestemming)." -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Bestand %s opslaan mislukt (Geen toestemming)." -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Bestand %s wissen mislukt (Geen toestemming)." @@ -619,7 +623,7 @@ msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -712,7 +716,7 @@ msgstr "bekijk boek na bewerking" msgid "Get metadata" msgstr "Verkrijg metadata" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -828,71 +832,123 @@ msgstr "Rguliere expressie op titels te sorteren" msgid "Tags for Mature Content" msgstr "Tags voor Volwassen Inhoud" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "Uploaden aanzetten" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "Anoniem verkennen aanzetten" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "Publieke registratie aanzetten" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "Maak op afstand ionloggen mogelijk (\"magic link\")" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "Gebruik" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "Verkrijg een API sleutel" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "Goodreads API sleutel" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "Goodreads API geheim" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "Standaard instellingen voor nieuwe gebruikers" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Administratie gebruiker" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Downloads toestaan" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Uploads toestaan" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Bewerken toestaan" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Het wissen van boeken toestaan" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Wachtwoord wijzigen toestaan" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Publieke boekenplanken bewerken toestaan" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "Toon willekeurige boeken" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "Toon populaire boeken" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "Toon best beoordeelde boeken" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "Toon taal selectie" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "Toon serie selectie" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "Toon categorie selectie" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "Toon auteur selectie" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "Toon gelezen en ongelezen" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "Toon willekeurige boeken in gedetailleerd zicht" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "Login" @@ -1024,6 +1080,22 @@ msgstr "Boeken gesorteerd op Categorie" msgid "Books ordered by series" msgstr "Boeken gesorteerd op Serie" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "Publieke Boekenplanken" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "Jou Boekenplanken" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "Kies navigatie" @@ -1085,14 +1157,6 @@ msgstr "Categorieën" msgid "Languages" msgstr "Talen" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "Publieke Boekenplanken" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "Jou Boekenplanken" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Maak een boekenplank" @@ -1275,50 +1339,6 @@ msgstr "Toon boeken met taal" msgid "Show all" msgstr "Toon alles" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "Toon willekeurige boeken" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "Toon populaire boeken" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "Toon best beoordeelde boeken" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "Toon taal selectie" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "Toon serie selectie" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "Toon categorie selectie" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "Toon auteur selectie" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "Toon gelezen en ongelezen" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "Toon willekeurige boeken in gedetailleerd zicht" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "Toon Volwassen Inhoud" diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index 6adf346c..95ebc5a5 100644 --- a/cps/translations/pl/LC_MESSAGES/messages.po +++ b/cps/translations/pl/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre Web - polski (POT: 2017-04-11 22:51)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-30 16:45+0100\n" +"POT-Creation-Date: 2017-12-02 11:12+0100\n" "PO-Revision-Date: 2017-04-11 22:51+0200\n" "Last-Translator: Radosław Kierznowski \n" "Language: pl\n" @@ -24,7 +24,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "nie zainstalowane" @@ -80,378 +80,382 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "Gość" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "Żądanie o pakiet aktualizacji" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "Pobieranie pakietu aktualizacji" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "Rozpakowywanie pakietu aktualizacji" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "Pliki zostały zastąpione" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "Połączenia z bazą danych zostały zakończone" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "Serwer jest zatrzymany" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "Najpopularniejsze książki (najczęściej pobierane)" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "Najlepiej oceniane książki" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "Losowe książki" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "Lista autorów" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:" -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "Lista serii" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "Seria: %(serie)s" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "Dostępne języki" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "Język: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "Lista kategorii" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "Statystyki" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno" -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "Aktualizacja zakończona" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "szukaj" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "Przeczytane książki" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "Nieprzeczytane książki" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "Czytaj książkę" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "Proszę wypełnić wszystkie pola!" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "rejestracja" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później." -#: cps/web.py:1946 +#: cps/web.py:1996 msgid "This username or email address is already in use." msgstr "Nazwa użytkownika lub adres e-mail jest już w użyciu." -#: cps/web.py:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Zalogowałeś się jako: '%(nickname)s'" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "Błędna nazwa użytkownika lub hasło" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "logowanie" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..." -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Książka została pomyślnie wysłana do %(kindlemail)s" -#: cps/web.py:2083 +#: cps/web.py:2133 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s" -#: cps/web.py:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..." -#: cps/web.py:2129 +#: cps/web.py:2179 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Książka została dodana do półki: %(sname)s" -#: cps/web.py:2166 +#: cps/web.py:2216 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Książka została usunięta z półki: %(sname)s" -#: cps/web.py:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Półka o nazwie '%(title)s' już istnieje." -#: cps/web.py:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "Półka %(title)s została utworzona" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "Wystąpił błąd" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "utwórz półkę" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "Półka %(title)s została zmieniona" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "Edytuj półkę" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "pomyślnie usunięto półkę %(name)s" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "Półka: '%(name)s'" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Zmieniono kolejność półki: '%(name)s'" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "Znaleziono istniejące konto dla tego adresu e-mail." -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "Profil użytkownika %(name)s" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "Zaktualizowano profil" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "Portal administracyjny" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" -msgstr "Konfiguracja Calibre-web została zaktualizowana" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" +msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "Podstawowa konfiguracja" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "Konfiguracja Calibre-web została zaktualizowana" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę" -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "Dodaj nowego użytkownika" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "Użytkownik '%(user)s' został utworzony" -#: cps/web.py:2607 +#: cps/web.py:2695 msgid "Found an existing account for this email address or nickname." msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika." -#: cps/web.py:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "Zaktualizowano ustawienia poczty e-mail" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Testowy e-mail został pomyślnie wysłany do %(kindlemail)s" -#: cps/web.py:2639 +#: cps/web.py:2728 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s" -#: cps/web.py:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "Zaktualizowano ustawienia e-mail" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "Edytuj ustawienia poczty e-mail" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "Użytkownik '%(nick)s' został usunięty" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "Użytkownik '%(nick)s' został zaktualizowany" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "Wystąpił nieznany błąd." -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "Edytuj użytkownika %(nick)s" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "edytuj metadane" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Rozszerzenie pliku \"%s\" nie jest dozwolone do przesłania na ten serwer" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "Plik do przesłania musi mieć rozszerzenie" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)." -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)." -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)." @@ -608,7 +612,7 @@ msgstr "OK" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -701,7 +705,7 @@ msgstr "wyświetl książkę po edycji" msgid "Get metadata" msgstr "Uzyskaj metadane" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -818,71 +822,123 @@ msgstr "Wyrażenie regularne dla tytułu sortującego" msgid "Tags for Mature Content" msgstr "" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "Włącz wysyłanie" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "Włącz anonimowe przeglądanie" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "Włącz publiczną rejestrację" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "Domyślne ustawienia dla nowych użytkowników" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Użytkownik z uprawnieniami administratora" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Zezwalaj na pobieranie" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Zezwalaj na wysyłanie" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Zezwalaj na edycję" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Zezwalaj na zmianę hasła" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "Pokaż losowe książki" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "Pokaż najpopularniejsze książki" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "Pokaż najlepiej ocenione książki" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "Pokaż wybór języka" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "Pokaż wybór serii" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "Pokaż wybór kategorii" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "Pokaż wybór autora" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "Pokaż przeczytane i nieprzeczytane" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "Pokaz losowe książki w widoku szczegółowym" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "Zaloguj się" @@ -1014,6 +1070,22 @@ msgstr "Książki sortowane według kategorii" msgid "Books ordered by series" msgstr "Książki sortowane według serii" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "Publiczne półki" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "Twoje półki" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "Przełącz nawigację" @@ -1075,14 +1147,6 @@ msgstr "Kategorie" msgid "Languages" msgstr "Języki" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "Publiczne półki" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "Twoje półki" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Utwórz półkę" @@ -1266,50 +1330,6 @@ msgstr "Pokaż książki w języku" msgid "Show all" msgstr "Pokaż wszystko" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "Pokaż losowe książki" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "Pokaż najpopularniejsze książki" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "Pokaż najlepiej ocenione książki" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "Pokaż wybór języka" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "Pokaż wybór serii" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "Pokaż wybór kategorii" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "Pokaż wybór autora" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "Pokaż przeczytane i nieprzeczytane" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "Pokaz losowe książki w widoku szczegółowym" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index cb6d86b8..76dd6e1c 100644 --- a/cps/translations/ru/LC_MESSAGES/messages.po +++ b/cps/translations/ru/LC_MESSAGES/messages.po @@ -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-11-30 16:45+0100\n" +"POT-Creation-Date: 2017-12-02 11:12+0100\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n" "Last-Translator: Pavel Korovin \n" "Language: ru\n" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "Отсутствует" @@ -80,378 +80,382 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "Гость" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "Проверка обновлений" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "Загрузка обновлений" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "Распаковка обновлений" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "Файлы заменены" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "Соеднинения с базой данных закрыты" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "Сервер остановлен" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "Обновления установлены, нажмите okay и перезагрузите страницу" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "Популярные книги (часто загружаемые)" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "Книги с наивысшим рейтингом" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "Случайный выбор" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "Авторы" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "Невозможно открыть книгу. Файл не существует или недоступен." -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "Серии" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "Серии: %(serie)s" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "Языки" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "Язык: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "Категории" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "Категория: %(name)s" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "Статистика" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "Сервер перезагружен, пожалуйста, перезагрузите страницу" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "Производится остановка сервера, пожалуйста, закройте окно" -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "Обновление закончено" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "поиск" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "Прочитанные" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "Непрочитанные" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "Читать книгу" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "Пожалуйста, заполните все поля!" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "зарегистрироваться" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "Неизвестная ошибка. Пожалуйста, попробуйте позже." -#: cps/web.py:1946 +#: cps/web.py:1996 msgid "This username or email address is already in use." msgstr "Имя пользователя или адрес эл. почты уже используется" -#: cps/web.py:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Вы вошли как пользователь '%(nickname)s'" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "Ошибка в имени пользователя или пароле" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "войти" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP" -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "Книга успешно отправлена на %(kindlemail)s" -#: cps/web.py:2083 +#: cps/web.py:2133 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "Ошибка при отправке книги: %(res)s" -#: cps/web.py:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "Пожалуйста, сначала укажите ваш kindle email..." -#: cps/web.py:2129 +#: cps/web.py:2179 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "Книга добавлена на книжную полку: %(sname)s" -#: cps/web.py:2166 +#: cps/web.py:2216 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "Книга удалена с книжной полки: %(sname)s" -#: cps/web.py:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "Книжкная полка с названием '%(title)s' уже существует." -#: cps/web.py:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "Создана книжная полка %(title)s" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "Произошла ошибка" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "создать книжную полку" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "Книжная полка %(title)s изменена" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "Изменить книжную полку" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "Книжная полка %(name)s удалена" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "Книжная полка: '%(name)s'" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Изменить расположение книжной полки '%(name)s'" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "Найдена учётная запись для для данного адреса email." -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "Профиль %(name)s" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "Профиль обновлён" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "Администрирование" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" -msgstr "Конфигурация Calibre-web обновлена" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" +msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "Настройки сервера" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "Конфигурация Calibre-web обновлена" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "Неверный путь к фалу БД, пожалуйста, укажите правильное расположение БД" -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "Добавить пользователя" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "Пользователь '%(user)s' добавлен" -#: cps/web.py:2607 +#: cps/web.py:2695 msgid "Found an existing account for this email address or nickname." msgstr "Для указанного адреса или имени найдена существующая учётная запись." -#: cps/web.py:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "Настройки почты изменены" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "Тестовое сообщение успешно отправлено на адрес %(kindlemail)s" -#: cps/web.py:2639 +#: cps/web.py:2728 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "Ошибка отправки тестового сообщения: %(res)s" -#: cps/web.py:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "Обновлены настройки e-mail" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "Изменить почтовые настройки" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "Пользователь '%(nick)s' удалён" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "Пользователь '%(nick)s' обновлён" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "Произошла неизвестная ошибка." -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "Изменить пользователя %(nick)s" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "изменить метаданные" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "Запрещена загрузка файлов с расширением \"%s\"" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "неизвестно" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "Загружаемый файл должен иметь расширение" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "Ошибка при создании пути %s (доступ запрещён)" -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "Ошибка записи файоа %s (доступ запрещён)" -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "Ошибка удаления файла %s (доступ запрещён)" @@ -608,7 +612,7 @@ msgstr "Ok" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -701,7 +705,7 @@ msgstr "смотреть книгу после редактирования" msgid "Get metadata" msgstr "Получить метаданные" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -817,71 +821,123 @@ msgstr "Regexp для сортировки по названию" msgid "Tags for Mature Content" msgstr "" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "Разрешить загрузку на сервер" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "Разрешить анонимный просмотр" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "Разрешить публичную регистрацию" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "Настройки по умолчанию для новых пользователей" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "Управление сервером" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "Разрешить скачивание с сервера" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "Разрешить загрузку на сервер" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "Разрешить редактирование книг" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "Разрешить удаление книг" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "Разрешить смену пароля" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "Разрешить редактирование публичных книжных полок" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "Показывать случайные книги" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "Показывать популярные книги" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "Показывать книги с наивысшим рейтингом" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "Показывать выбор языка" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "Показывать выбор серии" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "Показывать выбор категории" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "Показывать выбор автора" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "Показывать прочитанные и непрочитанные" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "Показывать случайные книги при просмотре деталей" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "Имя пользователя" @@ -1011,6 +1067,22 @@ msgstr "Книги, отсортированные по категории" msgid "Books ordered by series" msgstr "Книги, отсортированные по серии" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "Общие книжные полки" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "Ваши книжные полки" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "Включить навигацию" @@ -1072,14 +1144,6 @@ msgstr "Категории" msgid "Languages" msgstr "Языки" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "Общие книжные полки" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "Ваши книжные полки" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "Создать книжную полку" @@ -1262,50 +1326,6 @@ msgstr "Показать книги на языках" msgid "Show all" msgstr "Всех" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "Показывать случайные книги" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "Показывать популярные книги" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "Показывать книги с наивысшим рейтингом" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "Показывать выбор языка" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "Показывать выбор серии" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "Показывать выбор категории" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "Показывать выбор автора" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "Показывать прочитанные и непрочитанные" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "Показывать случайные книги при просмотре деталей" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 190ef138..dccd5438 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2017-11-30 16:45+0100\n" +"POT-Creation-Date: 2017-12-02 11:12+0100\n" "PO-Revision-Date: 2017-01-06 17:00+0000\n" "Last-Translator: dalin \n" "Language: zh_Hans_CN\n" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "未安装" @@ -80,378 +80,382 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "游客" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "文件已替换" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "服务器已停止" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请按确定并刷新页面" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "最近添加的书籍" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "最新书籍" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "最旧书籍" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "书籍 (A-Z)" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "书籍 (Z-A)" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "热门书籍(最多下载)" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "最高评分书籍" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "随机书籍" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "作者列表" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "无法打开电子书。 文件不存在或者文件不可访问:" -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "丛书列表" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "丛书: %(serie)s" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "可用语言" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "语言: %(name)s" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "分类列表" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "分类: %(name)s" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "可执行权限缺失" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "统计" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "服务器已重启,请刷新页面" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "正在关闭服务器,请关闭窗口" -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "更新完成" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "搜索" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "已读书籍" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "未读书籍" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "阅读一本书" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "请填写所有字段" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "注册" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "发生一个未知错误。请稍后再试。" -#: cps/web.py:1946 +#: cps/web.py:1996 msgid "This username or email address is already in use." msgstr "此用户名或邮箱已被使用。" -#: cps/web.py:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "您现在已以'%(nickname)s'身份登录" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "用户名或密码错误" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "登录" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "找不到Token" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "Token已过期" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "成功!请返回您的设备" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱..." -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "此书已被成功发给 %(kindlemail)s" -#: cps/web.py:2083 +#: cps/web.py:2133 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "发送这本书的时候出现错误: %(res)s" -#: cps/web.py:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "请先配置您的kindle电子邮箱地址..." -#: cps/web.py:2129 +#: cps/web.py:2179 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "此书已被添加到书架: %(sname)s" -#: cps/web.py:2166 +#: cps/web.py:2216 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "此书已从书架 %(sname)s 中删除" -#: cps/web.py:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "已存在书架 '%(title)s'。" -#: cps/web.py:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "书架 %(title)s 已被创建" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "发生错误" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "创建书架" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "书架 %(title)s 已被修改" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "编辑书架" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "成功删除书架 %(name)s" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "书架: '%(name)s'" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "打开书架出错。书架不存在或不可访问" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "修改书架 '%(name)s' 顺序" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "找到已使用此邮箱的账号。" -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的资料" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "资料已更新" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "管理页" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" -msgstr "Calibre-web配置已更新" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" +msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "基本配置" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "Calibre-web配置已更新" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "DB位置无效,请输入正确路径" -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "添加新用户" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "用户 '%(user)s' 已被创建" -#: cps/web.py:2607 +#: cps/web.py:2695 msgid "Found an existing account for this email address or nickname." msgstr "已存在使用此邮箱或昵称的账号。" -#: cps/web.py:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "邮箱设置已更新" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "测试邮件已成功发送到 %(kindlemail)s" -#: cps/web.py:2639 +#: cps/web.py:2728 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "发送测试邮件时发生错误: %(res)s" -#: cps/web.py:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "E-Mail 设置已更新" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "编辑邮箱设置" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户 '%(nick)s' 已被删除" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "用户 '%(nick)s' 已被更新" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "发生未知错误。" -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "打开电子书出错。文件不存在或不可访问" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "编辑元数据" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "不能上传后缀为 \"%s\" 的文件到此服务器" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "未知" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "要上传的文件必须有一个后缀" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "创建路径 %s 失败(权限拒绝)。" -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "存储文件 %s 失败(权限拒绝)。" -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "删除文件 %s 失败(权限拒绝)。" @@ -608,7 +612,7 @@ msgstr "确定" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -701,7 +705,7 @@ msgstr "编辑后查看书籍" msgid "Get metadata" msgstr "获取元数据" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -817,71 +821,123 @@ msgstr "标题排序的正则表达式" msgid "Tags for Mature Content" msgstr "" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "启用上传" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "启用匿名浏览" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "启用注册" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "启用远程登录 (\"魔法链接\")" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "新用户默认设置" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "管理用户" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "允许下载" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "允许上传" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "允许编辑" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "允许删除书籍" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "允许修改密码" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "允许编辑公共书架" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "显示随机书籍" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "显示热门书籍" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "显示最高评分书籍" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "显示语言选择" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "显示丛书选择" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "显示分类选择" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "显示作者选择" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "显示已读和未读" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "在详情页显示随机书籍" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "登录" @@ -1011,6 +1067,22 @@ msgstr "书籍按分类排序" msgid "Books ordered by series" msgstr "书籍按丛书排序" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "公开书架" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "您的书架" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "切换导航" @@ -1072,14 +1144,6 @@ msgstr "分类" msgid "Languages" msgstr "语言" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "公开书架" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "您的书架" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "创建书架" @@ -1262,50 +1326,6 @@ msgstr "按语言显示书籍" msgid "Show all" msgstr "显示全部" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "显示随机书籍" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "显示热门书籍" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "显示最高评分书籍" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "显示语言选择" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "显示丛书选择" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "显示分类选择" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "显示作者选择" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "显示已读和未读" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "在详情页显示随机书籍" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" diff --git a/cps/ub.py b/cps/ub.py index b76ace02..0d0f78e0 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -14,9 +14,9 @@ from flask_babel import gettext as _ import json import datetime from binascii import hexlify +import cli -dbpath = os.path.join(os.path.normpath(os.getenv("CALIBRE_DBPATH", os.path.dirname(os.path.realpath(__file__)) + os.sep + ".." + os.sep)), "app.db") -engine = create_engine('sqlite:///{0}'.format(dbpath), echo=False) +engine = create_engine('sqlite:///{0}'.format(cli.settingspath), echo=False) Base = declarative_base() ROLE_USER = 0 @@ -294,6 +294,7 @@ class Settings(Base): config_goodreads_api_key = Column(String) config_goodreads_api_secret = Column(String) config_mature_content_tags = Column(String) # type: str + config_logfile = Column(String) def __repr__(self): pass @@ -322,6 +323,7 @@ class Config: self.config_main_dir = os.path.join(os.path.normpath(os.path.dirname( os.path.realpath(__file__)) + os.sep + ".." + os.sep)) self.db_configured = None + self.config_logfile = None self.loadSettings() def loadSettings(self): @@ -356,11 +358,22 @@ class Config: self.config_goodreads_api_key = data.config_goodreads_api_key self.config_goodreads_api_secret = data.config_goodreads_api_secret self.config_mature_content_tags = data.config_mature_content_tags + if data.config_logfile: + self.config_logfile = data.config_logfile @property def get_main_dir(self): return self.config_main_dir + def get_config_logfile(self): + if not self.config_logfile: + return os.path.join(self.get_main_dir, "calibre-web.log") + else: + if os.path.dirname(self.config_logfile): + return self.config_logfile + else: + return os.path.join(self.get_main_dir, self.config_logfile) + 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 @@ -584,6 +597,13 @@ def migrate_Database(): conn = engine.connect() conn.execute("ALTER TABLE Settings ADD column `config_default_show` SmallInteger DEFAULT 2047") session.commit() + try: + session.query(exists().where(Settings.config_logfile)).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_logfile` String DEFAULT ''") + session.commit() def clean_database(): @@ -662,7 +682,7 @@ Session.configure(bind=engine) session = Session() # generate database and admin and guest user, if no database is existing -if not os.path.exists(dbpath): +if not os.path.exists(cli.settingspath): try: Base.metadata.create_all(engine) create_default_config() diff --git a/cps/web.py b/cps/web.py index f3c55109..da7f6f61 100755 --- a/cps/web.py +++ b/cps/web.py @@ -222,7 +222,7 @@ gevent_server = None formatter = logging.Formatter( "[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s") -file_handler = RotatingFileHandler(os.path.join(config.get_main_dir, "calibre-web.log"), maxBytes=50000, backupCount=2) +file_handler = RotatingFileHandler(config.get_config_logfile(), maxBytes=50000, backupCount=2) file_handler.setFormatter(formatter) app.logger.addHandler(file_handler) app.logger.setLevel(config.config_log_level) @@ -2573,7 +2573,20 @@ def configuration_helper(origin): content.config_default_show = content.config_default_show + ub.SIDEBAR_RECENT if "show_sorted" in to_save: content.config_default_show = content.config_default_show + ub.SIDEBAR_SORTED - + if content.config_logfile != to_save["config_logfile"]: + # check valid path, only path or file + if os.path.dirname(to_save["config_logfile"]): + if os.path.exists(os.path.dirname(to_save["config_log_level"])): + content.config_logfile = to_save["config_logfile"] + else: + ub.session.commit() + flash(_(u'Logfile location is not valid, please enter correct path'), category="error") + return render_title_template("config_edit.html", content=config, origin=origin, + gdrive=gdrive_support, + goodreads=goodreads_support, title=_(u"Basic Configuration")) + else: + content.config_logfile = to_save["config_logfile"] + reboot_required = True try: if content.config_use_google_drive and is_gdrive_ready() and not os.path.exists(config.config_calibre_dir + "/metadata.db"): gdriveutils.downloadFile(Gdrive.Instance().drive, None, "metadata.db", config.config_calibre_dir + "/metadata.db") diff --git a/messages.pot b/messages.pot index 27f35ad0..a2cfa7a8 100644 --- a/messages.pot +++ b/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-11-30 16:45+0100\n" +"POT-Creation-Date: 2017-12-02 11:12+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.1\n" -#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1401 +#: cps/book_formats.py:119 cps/book_formats.py:123 cps/web.py:1450 msgid "not installed" msgstr "" @@ -71,378 +71,382 @@ msgstr "" msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s" msgstr "" -#: cps/ub.py:577 +#: cps/ub.py:649 msgid "Guest" msgstr "" -#: cps/web.py:967 +#: cps/web.py:1016 msgid "Requesting update package" msgstr "" -#: cps/web.py:968 +#: cps/web.py:1017 msgid "Downloading update package" msgstr "" -#: cps/web.py:969 +#: cps/web.py:1018 msgid "Unzipping update package" msgstr "" -#: cps/web.py:970 +#: cps/web.py:1019 msgid "Files are replaced" msgstr "" -#: cps/web.py:971 +#: cps/web.py:1020 msgid "Database connections are closed" msgstr "" -#: cps/web.py:972 +#: cps/web.py:1021 msgid "Server is stopped" msgstr "" -#: cps/web.py:973 +#: cps/web.py:1022 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/web.py:1047 +#: cps/web.py:1096 msgid "Recently Added Books" msgstr "" -#: cps/web.py:1057 +#: cps/web.py:1106 msgid "Newest Books" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1118 msgid "Oldest Books" msgstr "" -#: cps/web.py:1081 +#: cps/web.py:1130 msgid "Books (A-Z)" msgstr "" -#: cps/web.py:1092 +#: cps/web.py:1141 msgid "Books (Z-A)" msgstr "" -#: cps/web.py:1120 +#: cps/web.py:1169 msgid "Hot Books (most downloaded)" msgstr "" -#: cps/web.py:1133 +#: cps/web.py:1182 msgid "Best rated books" msgstr "" -#: cps/templates/index.xml:32 cps/web.py:1144 +#: cps/templates/index.xml:32 cps/web.py:1193 msgid "Random Books" msgstr "" -#: cps/web.py:1158 +#: cps/web.py:1207 msgid "Author list" msgstr "" -#: cps/web.py:1170 cps/web.py:1228 cps/web.py:1358 cps/web.py:1827 +#: cps/web.py:1219 cps/web.py:1277 cps/web.py:1407 cps/web.py:1876 msgid "Error opening eBook. File does not exist or file is not accessible:" msgstr "" -#: cps/templates/index.xml:64 cps/web.py:1212 +#: cps/templates/index.xml:64 cps/web.py:1261 msgid "Series list" msgstr "" -#: cps/web.py:1226 +#: cps/web.py:1275 #, python-format msgid "Series: %(serie)s" msgstr "" -#: cps/web.py:1259 +#: cps/web.py:1308 msgid "Available languages" msgstr "" -#: cps/web.py:1276 +#: cps/web.py:1325 #, python-format msgid "Language: %(name)s" msgstr "" -#: cps/templates/index.xml:58 cps/web.py:1286 +#: cps/templates/index.xml:58 cps/web.py:1335 msgid "Category list" msgstr "" -#: cps/web.py:1300 +#: cps/web.py:1349 #, python-format msgid "Category: %(name)s" msgstr "" -#: cps/web.py:1412 +#: cps/web.py:1461 msgid "Excecution permissions missing" msgstr "" -#: cps/web.py:1426 +#: cps/web.py:1475 msgid "Statistics" msgstr "" -#: cps/web.py:1591 +#: cps/web.py:1640 msgid "Server restarted, please reload page" msgstr "" -#: cps/web.py:1593 +#: cps/web.py:1642 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/web.py:1609 +#: cps/web.py:1658 msgid "Update done" msgstr "" -#: cps/web.py:1691 cps/web.py:1704 +#: cps/web.py:1740 cps/web.py:1753 msgid "search" msgstr "" #: cps/templates/index.xml:39 cps/templates/index.xml:42 -#: cps/templates/layout.html:132 cps/web.py:1782 +#: cps/templates/layout.html:132 cps/web.py:1831 msgid "Read Books" msgstr "" #: cps/templates/index.xml:46 cps/templates/index.xml:49 -#: cps/templates/layout.html:134 cps/web.py:1785 +#: cps/templates/layout.html:134 cps/web.py:1834 msgid "Unread Books" msgstr "" -#: cps/web.py:1860 cps/web.py:1862 cps/web.py:1864 cps/web.py:1873 +#: cps/web.py:1909 cps/web.py:1911 cps/web.py:1913 cps/web.py:1922 msgid "Read a Book" msgstr "" -#: cps/web.py:1925 cps/web.py:2556 +#: cps/web.py:1974 cps/web.py:2644 msgid "Please fill out all fields!" msgstr "" -#: cps/web.py:1926 cps/web.py:1942 cps/web.py:1947 cps/web.py:1949 +#: cps/web.py:1975 cps/web.py:1992 cps/web.py:1997 cps/web.py:1999 msgid "register" msgstr "" -#: cps/web.py:1941 +#: cps/web.py:1991 msgid "An unknown error occured. Please try again later." msgstr "" -#: cps/web.py:1946 +#: cps/web.py:1996 msgid "This username or email address is already in use." msgstr "" -#: cps/web.py:1965 cps/web.py:2061 +#: cps/web.py:2015 cps/web.py:2111 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1970 +#: cps/web.py:2020 msgid "Wrong Username or Password" msgstr "" -#: cps/web.py:1976 cps/web.py:1997 +#: cps/web.py:2026 cps/web.py:2047 msgid "login" msgstr "" -#: cps/web.py:2009 cps/web.py:2040 +#: cps/web.py:2059 cps/web.py:2090 msgid "Token not found" msgstr "" -#: cps/web.py:2017 cps/web.py:2048 +#: cps/web.py:2067 cps/web.py:2098 msgid "Token has expired" msgstr "" -#: cps/web.py:2025 +#: cps/web.py:2075 msgid "Success! Please return to your device" msgstr "" -#: cps/web.py:2075 +#: cps/web.py:2125 msgid "Please configure the SMTP mail settings first..." msgstr "" -#: cps/web.py:2079 +#: cps/web.py:2129 #, python-format msgid "Book successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2083 +#: cps/web.py:2133 #, python-format msgid "There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:2085 cps/web.py:2641 +#: cps/web.py:2135 cps/web.py:2730 msgid "Please configure your kindle email address first..." msgstr "" -#: cps/web.py:2129 +#: cps/web.py:2179 #, python-format msgid "Book has been added to shelf: %(sname)s" msgstr "" -#: cps/web.py:2166 +#: cps/web.py:2216 #, python-format msgid "Book has been removed from shelf: %(sname)s" msgstr "" -#: cps/web.py:2185 cps/web.py:2209 +#: cps/web.py:2235 cps/web.py:2259 #, python-format msgid "A shelf with the name '%(title)s' already exists." msgstr "" -#: cps/web.py:2190 +#: cps/web.py:2240 #, python-format msgid "Shelf %(title)s created" msgstr "" -#: cps/web.py:2192 cps/web.py:2220 +#: cps/web.py:2242 cps/web.py:2270 msgid "There was an error" msgstr "" -#: cps/web.py:2193 cps/web.py:2195 +#: cps/web.py:2243 cps/web.py:2245 msgid "create a shelf" msgstr "" -#: cps/web.py:2218 +#: cps/web.py:2268 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/web.py:2221 cps/web.py:2223 +#: cps/web.py:2271 cps/web.py:2273 msgid "Edit a shelf" msgstr "" -#: cps/web.py:2244 +#: cps/web.py:2294 #, python-format msgid "successfully deleted shelf %(name)s" msgstr "" -#: cps/web.py:2266 +#: cps/web.py:2316 #, python-format msgid "Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2269 +#: cps/web.py:2319 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/web.py:2300 +#: cps/web.py:2350 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/web.py:2369 +#: cps/web.py:2419 msgid "Found an existing account for this email address." msgstr "" -#: cps/web.py:2371 cps/web.py:2375 +#: cps/web.py:2421 cps/web.py:2425 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:2372 +#: cps/web.py:2422 msgid "Profile updated" msgstr "" -#: cps/web.py:2386 +#: cps/web.py:2436 msgid "Admin page" msgstr "" -#: cps/web.py:2510 -msgid "Calibre-web configuration updated" +#: cps/web.py:2583 +msgid "Logfile location is not valid, please enter correct path" msgstr "" -#: cps/web.py:2517 cps/web.py:2523 cps/web.py:2537 +#: cps/web.py:2586 cps/web.py:2605 cps/web.py:2611 cps/web.py:2625 msgid "Basic Configuration" msgstr "" -#: cps/web.py:2521 +#: cps/web.py:2598 +msgid "Calibre-web configuration updated" +msgstr "" + +#: cps/web.py:2609 msgid "DB location is not valid, please enter correct path" msgstr "" -#: cps/templates/admin.html:34 cps/web.py:2558 cps/web.py:2611 +#: cps/templates/admin.html:34 cps/web.py:2646 cps/web.py:2700 msgid "Add new user" msgstr "" -#: cps/web.py:2603 +#: cps/web.py:2691 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/web.py:2607 +#: cps/web.py:2695 msgid "Found an existing account for this email address or nickname." msgstr "" -#: cps/web.py:2629 +#: cps/web.py:2718 msgid "Mail settings updated" msgstr "" -#: cps/web.py:2636 +#: cps/web.py:2725 #, python-format msgid "Test E-Mail successfully send to %(kindlemail)s" msgstr "" -#: cps/web.py:2639 +#: cps/web.py:2728 #, python-format msgid "There was an error sending the Test E-Mail: %(res)s" msgstr "" -#: cps/web.py:2643 +#: cps/web.py:2732 msgid "E-Mail settings updated" msgstr "" -#: cps/web.py:2644 +#: cps/web.py:2733 msgid "Edit mail settings" msgstr "" -#: cps/web.py:2673 +#: cps/web.py:2762 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/web.py:2781 +#: cps/web.py:2870 #, python-format msgid "User '%(nick)s' updated" msgstr "" -#: cps/web.py:2784 +#: cps/web.py:2873 msgid "An unknown error occured." msgstr "" -#: cps/web.py:2787 +#: cps/web.py:2876 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/web.py:2803 +#: cps/web.py:2892 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" -#: cps/web.py:2818 cps/web.py:3026 cps/web.py:3031 cps/web.py:3174 +#: cps/web.py:2907 cps/web.py:3115 cps/web.py:3120 cps/web.py:3263 msgid "edit metadata" msgstr "" -#: cps/web.py:2828 cps/web.py:3068 +#: cps/web.py:2917 cps/web.py:3157 #, python-format msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgstr "" -#: cps/web.py:2839 +#: cps/web.py:2928 #, python-format msgid "Failed to store file %s." msgstr "" -#: cps/web.py:2861 cps/web.py:2865 +#: cps/web.py:2950 cps/web.py:2954 msgid "unknown" msgstr "" -#: cps/web.py:3074 +#: cps/web.py:3163 msgid "File to be uploaded must have an extension" msgstr "" -#: cps/web.py:3093 +#: cps/web.py:3182 #, python-format msgid "Failed to create path %s (Permission denied)." msgstr "" -#: cps/web.py:3098 +#: cps/web.py:3187 #, python-format msgid "Failed to store file %s (Permission denied)." msgstr "" -#: cps/web.py:3103 +#: cps/web.py:3192 #, python-format msgid "Failed to delete file %s (Permission denied)." msgstr "" @@ -599,7 +603,7 @@ msgstr "" #: cps/templates/admin.html:105 cps/templates/admin.html:119 #: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157 -#: cps/templates/config_edit.html:156 cps/templates/email_edit.html:36 +#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36 #: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19 #: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139 msgid "Back" @@ -692,7 +696,7 @@ msgstr "" msgid "Get metadata" msgstr "" -#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:154 +#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209 #: cps/templates/login.html:20 cps/templates/search_form.html:79 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Submit" @@ -808,71 +812,123 @@ msgstr "" msgid "Tags for Mature Content" msgstr "" -#: cps/templates/config_edit.html:93 +#: cps/templates/config_edit.html:92 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "" + +#: cps/templates/config_edit.html:98 msgid "Enable uploading" msgstr "" -#: cps/templates/config_edit.html:97 +#: cps/templates/config_edit.html:102 msgid "Enable anonymous browsing" msgstr "" -#: cps/templates/config_edit.html:101 +#: cps/templates/config_edit.html:106 msgid "Enable public registration" msgstr "" -#: cps/templates/config_edit.html:105 +#: cps/templates/config_edit.html:110 msgid "Enable remote login (\"magic link\")" msgstr "" -#: cps/templates/config_edit.html:110 +#: cps/templates/config_edit.html:115 msgid "Use" msgstr "" -#: cps/templates/config_edit.html:111 +#: cps/templates/config_edit.html:116 msgid "Obtain an API Key" msgstr "" -#: cps/templates/config_edit.html:115 +#: cps/templates/config_edit.html:120 msgid "Goodreads API Key" msgstr "" -#: cps/templates/config_edit.html:119 +#: cps/templates/config_edit.html:124 msgid "Goodreads API Secret" msgstr "" -#: cps/templates/config_edit.html:125 +#: cps/templates/config_edit.html:129 msgid "Default Settings for new users" msgstr "" -#: cps/templates/config_edit.html:128 cps/templates/user_edit.html:94 +#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94 msgid "Admin user" msgstr "" -#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:103 +#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103 msgid "Allow Downloads" msgstr "" -#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:107 +#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107 msgid "Allow Uploads" msgstr "" -#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:111 +#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111 msgid "Allow Edit" msgstr "" -#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:115 +#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115 msgid "Allow Delete books" msgstr "" -#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:120 +#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120 msgid "Allow Changing Password" msgstr "" -#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:124 +#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124 msgid "Allow Editing Public Shelfs" msgstr "" -#: cps/templates/config_edit.html:159 cps/templates/layout.html:76 +#: cps/templates/config_edit.html:160 +msgid "Default visiblities for new users" +msgstr "" + +#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46 +msgid "Show random books" +msgstr "" + +#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50 +msgid "Show recent books" +msgstr "" + +#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54 +msgid "Show sorted books" +msgstr "" + +#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58 +msgid "Show hot books" +msgstr "" + +#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62 +msgid "Show best rated books" +msgstr "" + +#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66 +msgid "Show language selection" +msgstr "" + +#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70 +msgid "Show series selection" +msgstr "" + +#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74 +msgid "Show category selection" +msgstr "" + +#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78 +msgid "Show author selection" +msgstr "" + +#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82 +msgid "Show read and unread" +msgstr "" + +#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86 +msgid "Show random books in detail view" +msgstr "" + +#: cps/templates/config_edit.html:214 cps/templates/layout.html:76 #: cps/templates/login.html:4 msgid "Login" msgstr "" @@ -1002,6 +1058,22 @@ msgstr "" msgid "Books ordered by series" msgstr "" +#: cps/templates/index.xml:70 cps/templates/layout.html:152 +msgid "Public Shelves" +msgstr "" + +#: cps/templates/index.xml:73 +msgid "Books organized in public shelfs, visible to everyone" +msgstr "" + +#: cps/templates/index.xml:77 cps/templates/layout.html:156 +msgid "Your Shelves" +msgstr "" + +#: cps/templates/index.xml:80 +msgid "User's own shelfs, only visible to the current user himself" +msgstr "" + #: cps/templates/layout.html:30 msgid "Toggle navigation" msgstr "" @@ -1063,14 +1135,6 @@ msgstr "" msgid "Languages" msgstr "" -#: cps/templates/layout.html:152 -msgid "Public Shelves" -msgstr "" - -#: cps/templates/layout.html:156 -msgid "Your Shelves" -msgstr "" - #: cps/templates/layout.html:161 msgid "Create a Shelf" msgstr "" @@ -1253,50 +1317,6 @@ msgstr "" msgid "Show all" msgstr "" -#: cps/templates/user_edit.html:46 -msgid "Show random books" -msgstr "" - -#: cps/templates/user_edit.html:50 -msgid "Show recent books" -msgstr "" - -#: cps/templates/user_edit.html:54 -msgid "Show sorted books" -msgstr "" - -#: cps/templates/user_edit.html:58 -msgid "Show hot books" -msgstr "" - -#: cps/templates/user_edit.html:62 -msgid "Show best rated books" -msgstr "" - -#: cps/templates/user_edit.html:66 -msgid "Show language selection" -msgstr "" - -#: cps/templates/user_edit.html:70 -msgid "Show series selection" -msgstr "" - -#: cps/templates/user_edit.html:74 -msgid "Show category selection" -msgstr "" - -#: cps/templates/user_edit.html:78 -msgid "Show author selection" -msgstr "" - -#: cps/templates/user_edit.html:82 -msgid "Show read and unread" -msgstr "" - -#: cps/templates/user_edit.html:86 -msgid "Show random books in detail view" -msgstr "" - #: cps/templates/user_edit.html:98 msgid "Show mature content" msgstr "" diff --git a/readme.md b/readme.md index 0b228086..c1e35e5c 100755 --- a/readme.md +++ b/readme.md @@ -46,7 +46,7 @@ Calibre Web is a web app providing a clean interface for browsing, reading and d The configuration can be changed as admin in the admin panel under "Configuration" Server Port: -Changes the port calibre-web is listening, changes take effect after pressing submit button +Changes the port Calibre-Web is listening, changes take effect after pressing submit button Enable public registration: Tick to enable public user registration. @@ -70,7 +70,7 @@ Optionally, to enable on-the-fly conversion from EPUB to MOBI when using the sen ## Using Google Drive integration -Additional optional dependencys are necessary to get this work. Please install all optional requirements by executing `pip install --target vendor -r optional-requirements.txt` +Calibre Calibre library (metadata.db) can be located on a Google Drive. Additional optional dependencys are necessary to get this work. Please install all optional requirements by executing `pip install --target vendor -r optional-requirements.txt` To use google drive integration, you have to use the google developer console to create a new app. https://console.developers.google.com @@ -84,7 +84,7 @@ Once a project has been created, we need to create a client ID and a client secr 6. Give the Credentials a name and enter your callback, which will be CALIBRE_WEB_URL/gdrive/callback 7. Finally click save -The Drive API should now be setup and ready to use, so we need to integrate it into Calibre Web. This is done as below: - +The Drive API should now be setup and ready to use, so we need to integrate it into Calibre-Web. This is done as below: - 1. Open config page 2. Enter the location that will be used to store the metadata.db file, and to temporary store uploaded books and other temporary files for upload @@ -92,7 +92,7 @@ The Drive API should now be setup and ready to use, so we need to integrate it i 3. Enter Client Secret and Client Key as provided via previous steps 4. Enter the folder that is the root of your calibre library 5. Enter base URL for calibre (used for google callbacks) -6 Now select Authenticate Google Drive +6. Now select Authenticate Google Drive 7. This should redirect you to google to allow it top use your Drive, and then redirect you back to the config page 8. Google Drive should now be connected and be used to get images and download Epubs. The metadata.db is stored in the calibre library location @@ -108,7 +108,7 @@ Calibre Web can be run as Docker container. Pre-built Docker images based on Alp ## Reverse Proxy -Reverse proxy configuration examples for apache and nginx to use calibre-web: +Reverse proxy configuration examples for apache and nginx to use Calibre-Web: nginx configuration for a local server listening on port 8080, mapping calibre web to /calibre: @@ -152,12 +152,12 @@ Listen 443 ``` -## Start calibre-web as service under Linux +## Start Calibre-Web as service under Linux Create a file "cps.service" as root in the folder /etc/systemd/system with the following content: ```[Unit] -Description=Calibre-web +Description=Calibre-Web [Service] Type=simple @@ -173,3 +173,12 @@ Replace the user and ExecStart with your user and foldernames. `sudo systemctl enable cps.service` enables the service. + +## Command line options + +Starting the script with `-h` lists all supported command line options +Currently supported are 2 options, which are both useful for running multiple instances of Calibre-Web + +`"-p path"` allows to specify the location of the settings database +`"-p path"` allows to specify the location of the google-drive database + From 5809acfa9efbfa55858b7f36b2691422607be5d4 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sat, 2 Dec 2017 14:25:18 +0100 Subject: [PATCH 035/180] anonymous user now have always the right to read books (as any other user, too) (Fix #287) --- cps/templates/detail.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/cps/templates/detail.html b/cps/templates/detail.html index 4a9fa8fb..a1e5194d 100644 --- a/cps/templates/detail.html +++ b/cps/templates/detail.html @@ -42,7 +42,6 @@ {% if g.user.kindle_mail and g.user.is_authenticated %} {{_('Send to Kindle')}} {% endif %} - {% if (g.user.role_download() and g.user.is_anonymous) or g.user.is_authenticated %}
    - {% endif %}

    {{entry.title}}

    From 319077aea9356aa03fa95ff9541040eec0c555d5 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sat, 2 Dec 2017 17:33:55 +0100 Subject: [PATCH 036/180] Import covers from comic files during upload --- cps/book_formats.py | 4 ++++ cps/cli.py | 3 +++ cps/comic.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 cps/comic.py diff --git a/cps/book_formats.py b/cps/book_formats.py index 5cff0232..bc9e889e 100644 --- a/cps/book_formats.py +++ b/cps/book_formats.py @@ -5,6 +5,7 @@ import logging import uploader import os from flask_babel import gettext as _ +import comic __author__ = 'lemmsh' @@ -49,6 +50,9 @@ def process(tmp_file_path, original_file_name, original_file_extension): meta = epub.get_epub_info(tmp_file_path, original_file_name, original_file_extension) if ".FB2" == original_file_extension.upper() and use_fb2_meta is True: meta = fb2.get_fb2_info(tmp_file_path, original_file_extension) + if original_file_extension.upper() in ['.CBZ', '.CBT']: + meta = comic.get_comic_info(tmp_file_path, original_file_name, original_file_extension) + except Exception as ex: logger.warning('cannot parse metadata, using default: %s', ex) diff --git a/cps/cli.py b/cps/cli.py index d75d54c7..bd57d654 100644 --- a/cps/cli.py +++ b/cps/cli.py @@ -1,3 +1,6 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + import argparse import os diff --git a/cps/comic.py b/cps/comic.py new file mode 100644 index 00000000..98343ae7 --- /dev/null +++ b/cps/comic.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import zipfile +import tarfile +import os +import uploader + + +def extractCover(tmp_file_name, original_file_extension): + if original_file_extension.upper() == '.CBZ': + cf = zipfile.ZipFile(tmp_file_name) + compressed_name = cf.namelist()[0] + cover_data = cf.read(compressed_name) + elif original_file_extension.upper() == '.CBT': + cf = tarfile.TarFile(tmp_file_name) + compressed_name = cf.getnames()[0] + cover_data = cf.extractfile(compressed_name).read() + + prefix = os.path.dirname(tmp_file_name) + + tmp_cover_name = prefix + '/cover' + os.path.splitext(compressed_name)[1] + image = open(tmp_cover_name, 'wb') + image.write(cover_data) + image.close() + return tmp_cover_name + + +def get_comic_info(tmp_file_path, original_file_name, original_file_extension): + + coverfile = extractCover(tmp_file_path, original_file_extension) + + return uploader.BookMeta( + file_path=tmp_file_path, + extension=original_file_extension, + title=original_file_name, + author=u"Unknown", + cover=coverfile, + description="", + tags="", + series="", + series_id="", + languages="") From 4c05b3db67b8957b1f0126f90c204f93c7d35809 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sat, 2 Dec 2017 18:42:21 +0100 Subject: [PATCH 037/180] Present dates for updater in local date format --- cps/web.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/cps/web.py b/cps/web.py index da7f6f61..5fba962a 100755 --- a/cps/web.py +++ b/cps/web.py @@ -56,7 +56,7 @@ from werkzeug.datastructures import Headers from babel import Locale as LC from babel import negotiate_locale from babel import __version__ as babelVersion -from babel.dates import format_date +from babel.dates import format_date, format_datetime from functools import wraps import base64 from sqlalchemy.sql import * @@ -429,7 +429,7 @@ def mimetype_filter(val): @app.template_filter('formatdate') -def formatdate(val): +def formatdate_filter(val): conformed_timestamp = re.sub(r"[:]|([-](?!((\d{2}[:]\d{2})|(\d{4}))$))", '', val) formatdate = datetime.datetime.strptime(conformed_timestamp[:15], "%Y%m%d %H%M%S") return format_date(formatdate, format='medium', locale=get_locale()) @@ -996,7 +996,8 @@ def get_update_status(): status['status'] = True commitdate = requests.get('https://api.github.com/repos/janeczku/calibre-web/git/commits/'+commit['object']['sha']).json() if "committer" in commitdate: - status['commit'] = commitdate['committer']['date'] + form_date=datetime.datetime.strptime(commitdate['committer']['date'],"%Y-%m-%dT%H:%M:%SZ") + status['commit'] = format_datetime(form_date, format='short', locale=get_locale()) else: status['commit'] = u'Unknown' else: @@ -2430,6 +2431,17 @@ def profile(): @admin_required def admin(): commit = '$Format:%cI$' + if commit.startswith("$"): + commit = _(u'Unknown') + else: + form_date = datetime.datetime.strptime(commit[:19], "%Y-%m-%dT%H:%M:%S") + if len(commit) > 19: # check if string has timezone + if commit[19] == '+': + form_date -= datetime.timedelta(hours=int(commit[20:22]), minutes=int(commit[23:])) + elif commit[19] == '-': + form_date += datetime.timedelta(hours=int(commit[20:22]), minutes=int(commit[23:])) + commit = format_datetime(form_date, format='short', locale=get_locale()) + 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, commit=commit, From 2fe03961bb676bd52170c2ee66628db536634141 Mon Sep 17 00:00:00 2001 From: Yury Tilis Date: Sun, 10 Dec 2017 02:43:51 -0500 Subject: [PATCH 038/180] -Added a more subtle progress bar which only shows the page number on hover -Added Current page indicator to the thumbnail list, as well as a hover state -Thumbnail list now scrolls to the current page on open or page change -Added @andy29485's request for controlling page with space/shift+space -Added the book title to the top of the page -Fixed IE11 failing on imagecallback --- cps/static/css/kthoom.css | 136 +++++++++++------- cps/static/js/kthoom.js | 154 +++++++++++--------- cps/templates/readcbr.html | 278 +++++++++++++++++++------------------ cps/web.py | 2 +- 4 files changed, 322 insertions(+), 248 deletions(-) diff --git a/cps/static/css/kthoom.css b/cps/static/css/kthoom.css index 7e175de9..770b94a2 100644 --- a/cps/static/css/kthoom.css +++ b/cps/static/css/kthoom.css @@ -1,17 +1,21 @@ body { - background: #444; + background: #444; overflow-x: hidden; overflow-y: auto; - color: white; - font-family: sans-serif; - margin: 0px; + color: white; + font-family: sans-serif; + margin: 0px; } #main { - text-align: center; + text-align: center; z-index: 2; } +.view { + padding-top:0px; +} + #sidebar a, #sidebar ul, #sidebar li, @@ -20,10 +24,28 @@ body { text-align: center; } +#sidebar ul { + position: relative; +} + #sidebar a { display: inline-block; position: relative; cursor: pointer; + padding: 4px; + + transition: all .2s ease; +} + +#sidebar a:hover, +#sidebar a:focus { + outline: none; + box-shadow: 0px 2px 8px 1px black; +} + +#sidebar a.active, +#sidebar a.active img + span { + background-color: #45B29D; } #sidebar li img { @@ -47,21 +69,65 @@ body { } #progress { - position: absolute; - display: inline; - left: 20%; - right: 20%; - height: 20px; - margin-top: 4px; - text-align: right; + position: absolute; + display: inline; + top: 0; + left: 0; + right: 0; + min-height: 4px; + font-family: sans-serif; + font-size: 10px; + line-height: 10px; + text-align: right; + + transition: min-height 150ms ease-in-out; +} + +#progress .bar-load, +#progress .bar-read { + display: flex; + align-items: flex-end; + justify-content: flex-end; + position: absolute; + top: 0; + left: 0; + bottom: 0; + + transition: width 150ms ease-in-out; +} + +#progress .bar-load { + color: #000; + background-color: #CCC; +} + +#progress .bar-read { + color: #FFF; + background-color: #45B29D; +} + +#progress .text { + display: none; + padding: 0 5px; +} + +#progress.loading, +#titlebar:hover #progress { + min-height: 10px; +} + +#progress.loading .text, +#titlebar:hover #progress .text { + display: inline-block; } .hide { - display: none !important; + display: none !important; } #mainContent { overflow: auto; + outline: none; } #mainText { @@ -82,6 +148,10 @@ body { height: auto; } +#metainfo { + max-width: 70%; +} + #prev { left: 40px; } @@ -176,43 +246,11 @@ th { color: #FFF; } -.dark-theme .overlay { - background-color: rgba(0,0,0,0.8); +.dark-theme #progress .bar-read { + background-color: red; } -.view { - padding-top:0px; -} - -#Progress { - margin: auto; - width: 80%; - background-color: #ddd; - display: inline-block; - margin-top: 5px; -} - -#meter { - width: 0%; - height: 5px; - background-color: #1C5484; -} -#meter2 { - width: 0%; - height: 15px; - background-color: #028138; -} - -#page { - text-align:left; - margin-top:-20px; - font-size:80%; - width: 0%; -} - -#progress_title { - text-align:right; - margin-top:-15px; - font-size:80%; +.dark-theme .overlay { + background-color: rgba(0,0,0,0.8); } diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 1754c460..70958c27 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -17,8 +17,6 @@ */ /* global screenfull */ -// var start = 0; - if (window.opera) { window.console.log = function(str) { opera.postError(str); @@ -44,11 +42,12 @@ if (typeof window.kthoom === "undefined" ) { // key codes kthoom.Key = { ESCAPE: 27, + SPACE: 32, LEFT: 37, UP: 38, RIGHT: 39, - DOWN: 40, - A: 65, B: 66, C: 67, D: 68, E: 69, F: 70, G: 71, H: 72, I: 73, J: 74, K: 75, L: 76, M: 77, + DOWN: 40, + A: 65, B: 66, C: 67, D: 68, E: 69, F: 70, G: 71, H: 72, I: 73, J: 74, K: 75, L: 76, M: 77, N: 78, O: 79, P: 80, Q: 81, R: 82, S: 83, T: 84, U: 85, V: 86, W: 87, X: 88, Y: 89, Z: 90, QUESTION_MARK: 191, LEFT_SQUARE_BRACKET: 219, @@ -62,8 +61,8 @@ var imageFilenames = []; var totalImages = 0; var settings = { - hflip: false, - vflip: false, + hflip: false, + vflip: false, rotateTimes: 0, fitMode: kthoom.Key.B, theme: "light" @@ -106,48 +105,16 @@ kthoom.ImageFile = function(file) { this.data = file; }; - -kthoom.initProgressMeter = function() { - $("#Progress").removeClass("hide"); - $("#Progress").click(function(e) { - var page = Math.max(1, Math.ceil((e.offsetX / $(this).width()) * totalImages)) - 1; - currentImage = page; - updatePage(); - }); -}; - -kthoom.setProgressMeter = function(optLabel) { - var pct = imageFiles.length / totalImages * 100; - if (pct === 100) { - //smartpct = 100; - getElem("progress_title").innerHTML = "Complete"; - } else { - var labelText = pct.toFixed(2) + "% " + imageFiles.length + "/" + totalImages + ""; - if (optLabel) { - labelText = optLabel + " " + labelText; - } - getElem("progress_title").innerHTML=labelText; - } - if (!isNaN(pct)) { - getElem("meter").style.width = pct + "%"; - } - - getElem("meter2").style.width= 100 * (totalImages === 0 ? 0 : ((currentImage + 1) / totalImages)) + "%"; - getElem("page").innerHTML=(currentImage + 1) + "/" + totalImages ; -}; - function loadFromArrayBuffer(ab) { var f = []; - if (typeof ab !== "object") { - ab = JSON.parse(ab); - } + f.fileData = ab.content; f.filename = ab.name; // add any new pages based on the filename if (imageFilenames.indexOf(f.filename) === -1) { imageFilenames.push(f.filename); imageFiles.push(new kthoom.ImageFile(f)); - + // add thumbnails to the TOC list $("#thumbnails").append( "
  • " + @@ -158,10 +125,10 @@ function loadFromArrayBuffer(ab) { "
  • " ); } - // var percentage = (ab.page + 1) / (ab.last + 1); + var percentage = ((ab.page + 1) / (ab.last + 1)) * 100; + updateProgress(percentage); + totalImages = ab.last + 1; - kthoom.setProgressMeter("Unzipping"); - // lastCompletion = percentage * 100; // display first page if we haven't yet if (imageFiles.length === currentImage + 1) { @@ -169,10 +136,28 @@ function loadFromArrayBuffer(ab) { } } +function scrollTocToActive() { + // Scroll to the thumbnail in the TOC on page change + $('#tocView').stop().animate({ + scrollTop: $('#tocView a.active').position().top + }, 200); +} function updatePage() { - getElem("page").innerHTML=(currentImage + 1) + "/" + totalImages ; - getElem("meter2").style.width= 100 * (totalImages === 0 ? 0 : ((currentImage + 1) / totalImages)) + "%"; + $('.page').text((currentImage + 1 ) + "/" + totalImages); + + // Mark the current page in the TOC + $('#tocView a[data-page]') + // Remove the currently active thumbnail + .removeClass('active') + // Find the new one + .filter('[data-page='+ (currentImage + 1) +']') + // Set it to active + .addClass('active'); + + scrollTocToActive(); + updateProgress(); + if (imageFiles[currentImage]) { setImage(imageFiles[currentImage].dataURI); } else { @@ -185,6 +170,22 @@ function updatePage() { kthoom.saveSettings(); } +function updateProgress(loadPercentage) { + // Set the load/unzip progress if it's passed in + if (loadPercentage) { + $("#progress .bar-load").css({ width: loadPercentage + "%" }); + + if (loadPercentage === 100) { + $("#progress") + .removeClass('loading') + .find(".load").text(''); + } + } + + // Set page progress bar + $("#progress .bar-read").css({ width: totalImages === 0 ? 0 : Math.round((currentImage + 1) / totalImages * 100) + "%"}); +} + function setImage(url) { var canvas = $("#mainImage")[0]; var x = $("#mainImage")[0].getContext("2d"); @@ -332,23 +333,18 @@ function updateScale(clear) { } function keyHandler(evt) { - var code = evt.keyCode; - - if ($("#progress").css("display") === "none") { - return; - } - // canKeyNext = (($("body").css("offsetWidth") + $("body").css("scrollLeft")) / $("body").css("scrollWidth")) >= 1; - // canKeyPrev = (scrollX <= 0); - - if (evt.ctrlKey || evt.shiftKey || evt.metaKey) return; - switch (code) { + var hasModifier = evt.ctrlKey || evt.shiftKey || evt.metaKey; + switch (evt.keyCode) { case kthoom.Key.LEFT: + if (hasModifier) break; showPrevPage(); break; case kthoom.Key.RIGHT: + if (hasModifier) break; showNextPage(); break; case kthoom.Key.L: + if (hasModifier) break; settings.rotateTimes--; if (settings.rotateTimes < 0) { settings.rotateTimes = 3; @@ -356,6 +352,7 @@ function keyHandler(evt) { updatePage(); break; case kthoom.Key.R: + if (hasModifier) break; settings.rotateTimes++; if (settings.rotateTimes > 3) { settings.rotateTimes = 0; @@ -363,6 +360,7 @@ function keyHandler(evt) { updatePage(); break; case kthoom.Key.F: + if (hasModifier) break; if (!settings.hflip && !settings.vflip) { settings.hflip = true; } else if (settings.hflip === true && settings.vflip === true) { @@ -377,23 +375,43 @@ function keyHandler(evt) { updatePage(); break; case kthoom.Key.W: + if (hasModifier) break; settings.fitMode = kthoom.Key.W; updateScale(false); break; case kthoom.Key.H: + if (hasModifier) break; settings.fitMode = kthoom.Key.H; updateScale(false); break; case kthoom.Key.B: + if (hasModifier) break; settings.fitMode = kthoom.Key.B; updateScale(false); break; case kthoom.Key.N: + if (hasModifier) break; settings.fitMode = kthoom.Key.N; updateScale(false); break; + case kthoom.Key.SPACE: + var container = $('#mainContent'); + var atTop = container.scrollTop() === 0; + var atBottom = container.scrollTop() >= container[0].scrollHeight - container.height(); + + if (evt.shiftKey && atTop) { + evt.preventDefault(); + // If it's Shift + Space and the container is at the top of the page + showPrevPage(); + } else if (!evt.shiftKey && atBottom) { + evt.preventDefault(); + // If you're at the bottom of the page and you only pressed space + showNextPage(); + container.scrollTop(0); + } + break; default: - //console.log('KeyCode = ' + code); + //console.log('KeyCode', evt.keyCode); break; } } @@ -404,31 +422,31 @@ function ImageLoadCallback() { if (jso === null) { setImage("error"); } else { + // IE 11 sometimes sees the response as a string + if (typeof jso !== "object") { + jso = JSON.parse(jso); + } + if (jso.page !== jso.last) { this.open("GET", this.fileid + "/" + (jso.page + 1)); this.addEventListener("load", ImageLoadCallback); this.send(); } - /*else - { - var diff = ((new Date).getTime() - start) / 1000; - console.log("Transfer done in " + diff + "s"); - }*/ + loadFromArrayBuffer(jso); } } function init(fileid) { - // start = (new Date).getTime(); var request = new XMLHttpRequest(); request.open("GET", fileid); request.responseType = "json"; request.fileid = fileid.substring(0, fileid.length - 2); request.addEventListener("load", ImageLoadCallback); request.send(); - kthoom.initProgressMeter(); document.body.className += /AppleWebKit/.test(navigator.userAgent) ? " webkit" : ""; kthoom.loadSettings(); updateScale(true); + $(document).keydown(keyHandler); $(window).resize(function() { @@ -440,6 +458,13 @@ function init(fileid) { $("#sidebar").toggleClass("open"); $("#main").toggleClass("closed"); $(this).toggleClass("icon-menu icon-right"); + + // We need this in a timeout because if we call it during the CSS transition, IE11 shakes the page ¯\_(ツ)_/¯ + setTimeout(function(){ + // Focus on the TOC or the main content area, depending on which is open + $('#main:not(.closed) #mainContent, #sidebar.open #tocView').focus(); + scrollTocToActive(); + }, 500); }); // Open Settings modal @@ -487,6 +512,9 @@ function init(fileid) { } } + // Focus the scrollable area so that keyboard scrolling work as expected + $('#mainContent').focus(); + $("#mainImage").click(function(evt) { // Firefox does not support offsetX/Y so we have to manually calculate // where the user clicked in the image. diff --git a/cps/templates/readcbr.html b/cps/templates/readcbr.html index 5eefa5df..de661d0e 100644 --- a/cps/templates/readcbr.html +++ b/cps/templates/readcbr.html @@ -1,148 +1,156 @@ - - - - Comic Reader - - - - - - - + + + + Comic Reader + + + - - - - - - -