/", methods=["GET", "POST"])
@kobo.route("/v1/products/dailydeal", methods=["GET", "POST"])
+@kobo.route("/v1/products/deals", methods=["GET", "POST"])
@kobo.route("/v1/products", methods=["GET", "POST"])
+@kobo.route("/v1/affiliate", methods=["GET", "POST"])
+@kobo.route("/v1/deals", methods=["GET", "POST"])
def HandleProductsRequest(dummy=None):
log.debug("Unimplemented Products Request received: %s", request.base_url)
return redirect_or_proxy_request()
diff --git a/cps/kobo_sync_status.py b/cps/kobo_sync_status.py
index f4a66604..b88cb6ac 100644
--- a/cps/kobo_sync_status.py
+++ b/cps/kobo_sync_status.py
@@ -22,25 +22,31 @@ from . import ub
import datetime
from sqlalchemy.sql.expression import or_
-
+# Add the current book id to kobo_synced_books table for current user, if entry is already present,
+# do nothing (safety precaution)
def add_synced_books(book_id):
- synced_book = ub.KoboSyncedBooks()
- synced_book.user_id = current_user.id
- synced_book.book_id = book_id
- ub.session.add(synced_book)
- ub.session_commit()
+ is_present = ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == book_id)\
+ .filter(ub.KoboSyncedBooks.user_id == current_user.id).count()
+ if not is_present:
+ synced_book = ub.KoboSyncedBooks()
+ synced_book.user_id = current_user.id
+ synced_book.book_id = book_id
+ ub.session.add(synced_book)
+ ub.session_commit()
+# Select all entries of current book in kobo_synced_books table, which are from current user and delete them
def remove_synced_book(book_id):
- ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == book_id).delete()
+ ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == book_id) \
+ .filter(ub.KoboSyncedBooks.user_id == current_user.id).delete()
ub.session_commit()
+
def add_archived_books(book_id):
- archived_book = (
- ub.session.query(ub.ArchivedBook)
- .filter(ub.ArchivedBook.book_id == book_id)
- .first()
- )
+ archived_book = (ub.session.query(ub.ArchivedBook)
+ .filter(ub.ArchivedBook.book_id == book_id)
+ .filter(ub.ArchivedBook.user_id == current_user.id)
+ .first())
if not archived_book:
archived_book = ub.ArchivedBook(user_id=current_user.id, book_id=book_id)
archived_book.is_archived = True
@@ -50,22 +56,23 @@ def add_archived_books(book_id):
ub.session_commit()
-
# select all books which are synced by the current user and do not belong to a synced shelf and them to archive
-# select all shelfs from current user which are synced and do not belong to the "only sync" shelfs
-def update_on_sync_shelfs(content_id):
- books_to_archive = (ub.session.query(ub.KoboSyncedBooks)
- .join(ub.BookShelf, ub.KoboSyncedBooks.book_id == ub.BookShelf.book_id, isouter=True)
- .join(ub.Shelf, ub.Shelf.user_id == content_id, isouter=True)
- .filter(or_(ub.Shelf.kobo_sync == 0, ub.Shelf.kobo_sync == None))
- .filter(ub.KoboSyncedBooks.user_id == content_id).all())
- for b in books_to_archive:
- add_archived_books(b.book_id)
- ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == b.book_id).filter(ub.KoboSyncedBooks.user_id == content_id).delete()
- ub.session_commit()
+# select all shelves from current user which are synced and do not belong to the "only sync" shelves
+def update_on_sync_shelfs(user_id):
+ books_to_archive = (ub.session.query(ub.KoboSyncedBooks)
+ .join(ub.BookShelf, ub.KoboSyncedBooks.book_id == ub.BookShelf.book_id, isouter=True)
+ .join(ub.Shelf, ub.Shelf.user_id == user_id, isouter=True)
+ .filter(or_(ub.Shelf.kobo_sync == 0, ub.Shelf.kobo_sync == None))
+ .filter(ub.KoboSyncedBooks.user_id == user_id).all())
+ for b in books_to_archive:
+ add_archived_books(b.book_id)
+ ub.session.query(ub.KoboSyncedBooks) \
+ .filter(ub.KoboSyncedBooks.book_id == b.book_id) \
+ .filter(ub.KoboSyncedBooks.user_id == user_id).delete()
+ ub.session_commit()
- shelfs_to_archive = ub.session.query(ub.Shelf).filter(ub.Shelf.user_id == content_id).filter(
- ub.Shelf.kobo_sync == 0).all()
- for a in shelfs_to_archive:
- ub.session.add(ub.ShelfArchive(uuid=a.uuid, user_id=content_id))
- ub.session_commit()
+ shelves_to_archive = ub.session.query(ub.Shelf).filter(ub.Shelf.user_id == user_id).filter(
+ ub.Shelf.kobo_sync == 0).all()
+ for a in shelves_to_archive:
+ ub.session.add(ub.ShelfArchive(uuid=a.uuid, user_id=user_id))
+ ub.session_commit()
diff --git a/cps/services/SyncToken.py b/cps/services/SyncToken.py
index 692aaa24..85ed5032 100644
--- a/cps/services/SyncToken.py
+++ b/cps/services/SyncToken.py
@@ -182,10 +182,9 @@ class SyncToken:
return b64encode_json(token)
def __str__(self):
- return "{},{},{},{},{},{}".format(self.raw_kobo_store_token,
- self.books_last_created,
+ return "{},{},{},{},{},{}".format(self.books_last_created,
self.books_last_modified,
self.archive_last_modified,
self.reading_state_last_modified,
- self.tags_last_modified)
+ self.tags_last_modified, self.raw_kobo_store_token)
#self.books_last_id)
diff --git a/cps/shelf.py b/cps/shelf.py
index 0f00b0bf..04d9f8b9 100644
--- a/cps/shelf.py
+++ b/cps/shelf.py
@@ -224,12 +224,8 @@ def remove_from_shelf(shelf_id, book_id):
@shelf.route("/shelf/create", methods=["GET", "POST"])
@login_required
def create_shelf():
- if not current_user.role_edit_shelfs() and request.method == 'POST':
- flash(_(u"Sorry you are not allowed to create a public shelf"), category="error")
- return redirect(url_for('web.index'))
- else:
- shelf = ub.Shelf()
- return create_edit_shelf(shelf, page_title=_(u"Create a Shelf"), page="shelfcreate")
+ shelf = ub.Shelf()
+ return create_edit_shelf(shelf, page_title=_(u"Create a Shelf"), page="shelfcreate")
@@ -249,6 +245,9 @@ def create_edit_shelf(shelf, page_title, page, shelf_id=False):
# calibre_db.session.query(ub.Shelf).filter(ub.Shelf.user_id == current_user.id).filter(ub.Shelf.kobo_sync).count()
if request.method == "POST":
to_save = request.form.to_dict()
+ if not current_user.role_edit_shelfs() and to_save.get("is_public") == "on":
+ flash(_(u"Sorry you are not allowed to create a public shelf"), category="error")
+ return redirect(url_for('web.index'))
shelf.is_public = 1 if to_save.get("is_public") else 0
if config.config_kobo_sync:
shelf.kobo_sync = True if to_save.get("kobo_sync") else False
diff --git a/cps/static/js/main.js b/cps/static/js/main.js
index 7a59b172..cf6fbe0d 100644
--- a/cps/static/js/main.js
+++ b/cps/static/js/main.js
@@ -284,11 +284,7 @@ $(function() {
}
function fillFileTable(path, type, folder, filt) {
- if (window.location.pathname.endsWith("/basicconfig")) {
- var request_path = "/../basicconfig/pathchooser/";
- } else {
- var request_path = "/../../ajax/pathchooser/";
- }
+ var request_path = "/../../ajax/pathchooser/";
$.ajax({
dataType: "json",
data: {
diff --git a/cps/templates/book_edit.html b/cps/templates/book_edit.html
index 21ae98e6..cac3219c 100644
--- a/cps/templates/book_edit.html
+++ b/cps/templates/book_edit.html
@@ -98,8 +98,7 @@
{{_('Rating')}}
- {% if g.user.role_upload() or g.user.role_admin()%}
- {% if g.allow_upload %}
+ {% if g.user.role_upload() and g.allow_upload %}
- {% endif %}
{% endif %}
{{_('Published Date')}}
@@ -197,14 +195,12 @@
{% endfor %}
{% endif %}
- {% if g.user.role_upload() or g.user.role_admin()%}
- {% if g.allow_upload %}
+ {% if g.user.role_upload() and g.allow_upload %}
- {% endif %}
{% endif %}
diff --git a/cps/templates/config_edit.html b/cps/templates/config_edit.html
index 4d6c68ce..f61ca9a5 100644
--- a/cps/templates/config_edit.html
+++ b/cps/templates/config_edit.html
@@ -105,7 +105,7 @@
- {{_('Enable Uploads')}}
+ {{_('Enable Uploads')}} {{_('(Please ensure users having also upload rights)')}}
diff --git a/cps/templates/languages.html b/cps/templates/languages.html
index 771d77cf..8331cb94 100644
--- a/cps/templates/languages.html
+++ b/cps/templates/languages.html
@@ -21,9 +21,9 @@
{% endif %}
-
-
{{lang_counter[loop.index0].bookcount}}
-
+
{% endfor %}
diff --git a/cps/templates/layout.html b/cps/templates/layout.html
index 09b3f507..8cb6b76e 100644
--- a/cps/templates/layout.html
+++ b/cps/templates/layout.html
@@ -58,8 +58,7 @@
{% endif %}
{% if g.user.is_authenticated or g.allow_anonymous %}
- {% if g.user.role_upload() or g.user.role_admin()%}
- {% if g.allow_upload %}
+ {% if g.user.role_upload() and g.allow_upload %}
- {% endif %}
{% endif %}
{% if not g.user.is_anonymous %}
{{_('Tasks')}}
diff --git a/cps/translations/cs/LC_MESSAGES/messages.mo b/cps/translations/cs/LC_MESSAGES/messages.mo
index d03dc08c..4c982ee7 100644
Binary files a/cps/translations/cs/LC_MESSAGES/messages.mo and b/cps/translations/cs/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/cs/LC_MESSAGES/messages.po b/cps/translations/cs/LC_MESSAGES/messages.po
index 6a670547..3a0407c6 100644
--- a/cps/translations/cs/LC_MESSAGES/messages.po
+++ b/cps/translations/cs/LC_MESSAGES/messages.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-06-09 21:11+0100\n"
"Last-Translator: Lukas Heroudek
\n"
"Language: cs_CZ\n"
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -45,9 +45,9 @@ msgstr "Úspěšně obnovené připojení"
msgid "Unknown command"
msgstr "Neznámý příkaz"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Neznámý"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr "Uživatel admin"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Vše"
@@ -273,7 +274,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -303,7 +304,7 @@ msgstr "Nastavení e-mailového serveru aktualizováno"
msgid "Database Configuration"
msgstr "Konfigurace funkcí"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Vyplňte všechna pole!"
@@ -348,7 +349,7 @@ msgstr "Upravit uživatele %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Uživatel '%(nick)s' aktualizován"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Neznámá chyba. Opakujte prosím později."
@@ -383,7 +384,7 @@ msgstr "Nastavení e-mailového serveru aktualizováno"
msgid "Password for user %(user)s reset"
msgstr "Heslo pro uživatele %(user)s resetováno"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Nejprve nakonfigurujte nastavení pošty SMTP..."
@@ -483,108 +484,108 @@ msgstr "není nakonfigurováno"
msgid "Execution permissions missing"
msgstr "Chybí povolení k exekuci"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "Vlastní sloupec %(column)d neexistuje v databázi"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Formát knihy úspěšně smazán"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Kniha úspěšně smazána"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Jejda! Vybraná kniha není k dispozici. Soubor neexistuje nebo není přístupný"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "upravit metadata"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s není platným jazykem"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Soubor s příponou '%(ext)s' nelze odeslat na tento server"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Soubor, který má být odeslán musí mít příponu"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Nepodařilo se vytvořit cestu %(path)s (oprávnění odepřeno)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Uložení souboru %(file)s se nezdařilo."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Chyba databáze: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Formát souboru %(ext)s přidán do %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metadata úspěšně aktualizována"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Chyba při úpravách knihy, zkontrolujte prosím log pro podrobnosti"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Nahraná kniha pravděpodobně existuje v knihovně, zvažte prosím změnu před nahráním nové: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Soubor %(filename)s nemohl být uložen do dočasného adresáře"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Nepodařilo se přesunout soubor obalu %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Soubor %(file)s nahrán"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Chybí zdrojový nebo cílový formát pro převod"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Kniha byla úspěšně zařazena do fronty pro převod do %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Při převodu této knihy došlo k chybě: %(res)s"
@@ -692,7 +693,7 @@ msgstr "Soubor %(file)s nenalezen na Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Cesta ke knize %(path)s nebyla nalezena na Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Byl nalezen existující účet pro tuto e-mailovou adresu."
@@ -774,7 +775,7 @@ msgstr "Kobo nastavení"
msgid "Register with %(provider)s"
msgstr "Registrovat s %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "nyní jste přihlášen jako: '%(nickname)s'"
@@ -839,8 +840,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Přihlásit"
@@ -856,7 +857,7 @@ msgstr "Token vypršel"
msgid "Success! Please return to your device"
msgstr "Úspěch! Vraťte se prosím do zařízení"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Knihy"
@@ -881,7 +882,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Nejlépe hodnocené knihy"
@@ -890,7 +891,7 @@ msgid "Show Top Rated Books"
msgstr "Zobrazit nejlépe hodnocené knihy"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Přečtené knihy"
@@ -899,7 +900,7 @@ msgid "Show read and unread"
msgstr "Zobrazit prečtené a nepřečtené"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Nepřečtené knihy"
@@ -917,7 +918,7 @@ msgid "Show Random Books"
msgstr "Zobrazit náhodné knihy"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Kategorie"
@@ -927,7 +928,7 @@ msgstr "Zobrazit výběr kategorie"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Série"
@@ -945,7 +946,7 @@ msgid "Show author selection"
msgstr "Zobrazit výběr autora"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Vydavatelé"
@@ -955,7 +956,7 @@ msgstr "Zobrazit výběr vydavatele"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Jazyky"
@@ -979,7 +980,7 @@ msgstr "Formáty souborů"
msgid "Show file formats selection"
msgstr "Zobrazit výběr formátů"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Archivované knihy"
@@ -987,7 +988,7 @@ msgstr "Archivované knihy"
msgid "Show archived books"
msgstr "Zobrazit archivované knihy"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1042,58 +1043,58 @@ msgstr "Kniha byla odebrána z police: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Vytvořit polici"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Lituji, nejste oprávněni odebrat knihu z této police: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Upravit polici"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Police %(title)s vytvořena"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Police %(title)s změněna"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Došlo k chybě"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Veřejná police s názvem '%(title)s' již existuje."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Osobní police s názvem ‘%(title)s’ již existuje."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Změnit pořadí Police: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Police: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Chyba otevírání police. Police neexistuje nebo není přístupná"
@@ -1126,177 +1127,177 @@ msgstr "Nová aktualizace k dispozici. Klepnutím na tlačítko níže aktualizu
msgid "No release information available"
msgstr "Nejsou k dispozici žádné informace o verzi"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Objevte (Náhodné knihy)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Žhavé knihy (Nejstahovanější)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Autoři: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Vydavatel: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Série: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Hodnocení: %(rating)s stars"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Soubor formátů: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Jazyky: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Rozšířené hledání"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Hledat"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Stáhnutí"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Seznam hodnocení"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Seznam formátů"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Úlohy"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Vydáno po "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Vydáno před "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Hodnocení <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Hodnocení >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Kniha byla úspěšně zařazena do fronty pro odeslání na %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Při odesílání této knihy došlo k chybě: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Nejprve nakonfigurujte vaši kindle e-mailovou adresu.."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "E-mailový server není nakonfigurován, kontaktujte svého správce!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Registrovat"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Váš e-mail nemá povolení k registraci"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Potvrzovací e-mail byl odeslán na váš účet."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Nelze aktivovat ověření LDAP"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Záložní přihlášení jako: ‘%(nickname)s’, server LDAP není dosažitelný nebo neznámý uživatel"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Nelze se přihlásit: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Špatné uživatelské jméno nebo heslo"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Nové heslo bylo zasláno na vaši emailovou adresu"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Zadejte platné uživatelské jméno pro obnovení hesla"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Nyní jste přihlášeni jako: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s profil"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profil aktualizován"
@@ -1357,7 +1358,7 @@ msgstr "E-mail"
msgid "Send to Kindle E-mail Address"
msgstr "Poslat do Kindle e-mailová adresa"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Správce"
@@ -1367,7 +1368,7 @@ msgstr "Správce"
msgid "Password"
msgstr "Heslo"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Nahrávat"
@@ -1559,7 +1560,7 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1657,13 +1658,13 @@ msgstr "Převést knihu"
msgid "Book Title"
msgstr "Název knihy"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Autor"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Popis"
@@ -1671,15 +1672,15 @@ msgstr "Popis"
msgid "Identifiers"
msgstr "Identifikátory"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Typy identifikátorů"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Hodnota identifikátorů"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Odstranit"
@@ -1700,90 +1701,90 @@ msgstr "ID série"
msgid "Rating"
msgstr "Hodnocení"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Adresa URL obalu (jpg, obal je stažen a uložen v databázi, pole je potom opět prázdné)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Nahrát obal z místní jednotky"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Datum vydání"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Vydavatel"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Jazyk"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Ano"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Ne"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Nahrát formát"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Zobrazit knihu po uložení"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Získat metadata"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Uložit"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Klíčové slovo"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr "Hledat klíčové slovo"
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Kliknutím na obal načtěte metadata do formuláře"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Načítání..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Zavřít"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Zdroj"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Chyba vyhledávání!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Nebyly nalezeny žádné výsledky! Zadejte jiné klíčové slovo."
@@ -1988,6 +1989,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Povolit nahrávání"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Povolené nahrávání formátů souborů"
@@ -2349,7 +2354,7 @@ msgid "Add to shelf"
msgstr "Přidat do police"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Veřejné)"
@@ -2424,7 +2429,7 @@ msgstr "Zadejte jméno domény"
msgid "Denied Domains (Blacklist)"
msgstr "Zakázané domény pro registraci"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Další"
@@ -2535,7 +2540,7 @@ msgstr "Knihy řazené podle hodnocení"
msgid "Books ordered by file formats"
msgstr "Knihy seřazené podle souboru formátů"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Police"
@@ -2556,48 +2561,48 @@ msgstr "Přepnout navigaci"
msgid "Search Library"
msgstr "Hledat v knihovně"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Nahrávání..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Chyba"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Nahrávání hotovo, zpracovávám, čekejte prosím..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Nastavení"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Účet"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Odhlásit se"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Prosím neobnovujte stránku"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Procházet"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "O knihovně"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Předchozí"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Podrobnosti o knize"
diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo
index 88ec0827..59794715 100644
Binary files a/cps/translations/de/LC_MESSAGES/messages.mo and b/cps/translations/de/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po
index a1b69d0c..192f10f5 100644
--- a/cps/translations/de/LC_MESSAGES/messages.po
+++ b/cps/translations/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2021-08-01 17:24+0200\n"
"Last-Translator: Ozzie Isaacs\n"
"Language: de\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr "Erfolgreich neu verbunden"
msgid "Unknown command"
msgstr "Unbekannter Befehl"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Unbekannt"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr "Benutzer bearbeiten"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Alle"
@@ -268,7 +269,7 @@ msgstr "LDAP CA-Zertifikat, Zertifikat oder Key Datei ist kein gültiger Pfad"
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "Einstellungsdatenbank ist nicht schreibbar"
@@ -297,7 +298,7 @@ msgstr "Einstellungen des E-Mail-Servers aktualisiert"
msgid "Database Configuration"
msgstr "Datenbank-Konfiguration"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Bitte alle Felder ausfüllen!"
@@ -341,7 +342,7 @@ msgstr "Benutzer %(nick)s bearbeiten"
msgid "User '%(nick)s' updated"
msgstr "Benutzer '%(nick)s' aktualisiert"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen."
@@ -376,7 +377,7 @@ msgstr "Einstellungen des E-Mail-Servers aktualisiert"
msgid "Password for user %(user)s reset"
msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Bitte zuerst die SMTP-Einstellung konfigurieren ..."
@@ -476,108 +477,108 @@ msgstr "Nicht konfiguriert"
msgid "Execution permissions missing"
msgstr "Ausführeberechtigung fehlt"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "Benutzerdefinierte Spalte Nr. %(column)d ist nicht in Calibre Datenbank vorhanden"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Buch Format erfolgreich gelöscht"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Buch erfolgreich gelöscht"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Öffnen des Buchs fehlgeschlagen. Datei existiert nicht oder ist nicht zugänglich"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "Metadaten editieren"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex)s ist keine gültige Zahl, Eintrag wird ignoriert"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s ist keine gültige Sprache"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Dateiendung '%(ext)s' kann nicht auf diesen Server hochgeladen werden"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Dateien müssen eine Erweiterung haben, um hochgeladen zu werden"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Fehler beim Erzeugen des Pfads %(path)s (Zugriff verweigert)"
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Fehler beim Speichern der Datei %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Datenbankfehler: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Dateiformat %(ext)s zu %(book)s hinzugefügt"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "IDs unterscheiden nicht Groß-Kleinschreibung, alte ID wird überschrieben"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metadaten wurden erfolgreich aktualisiert"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Fehler beim Editieren des Buchs, Details im Logfile"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Das hochgeladene Buch existiert evtl. schon in der Bibliothek: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Die Datei %(filename)s konnte nicht im temporären Ordner gespeichert werden"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Fehler beim Verschieben der Cover Datei %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Datei %(file)s hochgeladen"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Quell- oder Zielformat für Konvertierung fehlt"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Buch wurde erfolgreich für die Konvertierung nach %(book_format)s eingereiht"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Es trat ein Fehler beim Konvertieren des Buches auf: %(res)s"
@@ -685,7 +686,7 @@ msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Buchpfad %(path)s wurde nicht auf Google Drive gefunden"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse"
@@ -766,7 +767,7 @@ msgstr "Kobo Setup"
msgid "Register with %(provider)s"
msgstr "Anmelden mit %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Du bist nun eingeloggt als '%(nickname)s'"
@@ -831,8 +832,8 @@ msgstr "Google Oauth Fehler: {}"
msgid "{} Stars"
msgstr "{} Sterne"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Login"
@@ -848,7 +849,7 @@ msgstr "Token ist abgelaufen"
msgid "Success! Please return to your device"
msgstr "Erfolg! Bitte zum Gerät zurückkehren"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Bücher"
@@ -873,7 +874,7 @@ msgstr "Heruntergeladene Bücher"
msgid "Show Downloaded Books"
msgstr "Zeige heruntergeladene Bücher"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Best bewertete Bücher"
@@ -882,7 +883,7 @@ msgid "Show Top Rated Books"
msgstr "Bestbewertete Bücher anzeigen"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Gelesene Bücher"
@@ -891,7 +892,7 @@ msgid "Show read and unread"
msgstr "Zeige gelesene/ungelesene Bücher"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Ungelesene Bücher"
@@ -909,7 +910,7 @@ msgid "Show Random Books"
msgstr "Zeige zufällige Bücher"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Kategorien"
@@ -919,7 +920,7 @@ msgstr "Zeige Kategorienauswahl"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Serien"
@@ -937,7 +938,7 @@ msgid "Show author selection"
msgstr "Zeige Autorenauswahl"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Verleger"
@@ -947,7 +948,7 @@ msgstr "Zeige Verlegerauswahl"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Sprachen"
@@ -971,7 +972,7 @@ msgstr "Dateiformate"
msgid "Show file formats selection"
msgstr "Zeige Dateiformatauswahl"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Archivierte Bücher"
@@ -979,7 +980,7 @@ msgstr "Archivierte Bücher"
msgid "Show archived books"
msgstr "Zeige archivierte Bücher"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Bücherliste"
@@ -1033,57 +1034,57 @@ msgstr "Das Buch wurde aus dem Bücherregal: %(sname)s entfernt"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Bücherregal erzeugen"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Dir ist es nicht erlaubt, dieses Bücherregal zu editieren"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Bücherregal editieren"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Bücherregal %(title)s erzeugt"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Bücherregal %(title)s verändert"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Es trat ein Fehler auf"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Es existiert bereit ein öffentliches Bücherregal mit dem Name '%(title)s'."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Es existiert bereit ein privates Bücherregal mit dem Name '%(title)s'."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Reihenfolge in Bücherregal '%(name)s' verändern"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Bücherregal: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Fehler beim Öffnen des Bücherregals. Bücherregal exisitert nicht oder ist nicht zugänglich"
@@ -1116,177 +1117,177 @@ msgstr "Ein neues Update ist verfügbar. Klicke auf den Button unten, um auf Ver
msgid "No release information available"
msgstr "Keine Releaseinformationen verfügbar"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Entdecke (Zufällige Bücher)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Beliebte Bücher (am meisten Downloads)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Von %(user)s heruntergeladene Bücher"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Author: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Verleger: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Bewertung: %(rating)s Sterne"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Dateiformat: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Sprache: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Erweiterte Suche"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Suche"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Downloads"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Bewertungsliste"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Liste der Dateiformate"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Aufgaben"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Herausgegeben nach dem "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Herausgegeben vor dem "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Bewertung <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Bewertung >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Lesestatus = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "Fehler bei der Suche nach eigenen Spalten, bitte Calibre-Web neustarten"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Beim Senden des Buchs trat ein Fehler auf: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Der E-Mail Server ist nicht konfigurierte, bitte den Administrator kontaktieren!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Registrieren"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Eine Bestätigungs-E-Mail wurde an deinen E-Mail Account versendet."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "LDAP-Authentifizierung kann nicht aktiviert werden"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Rückfall Login als: '%(nickname)s', LDAP Server ist nicht erreichbar, oder der Nutzer ist unbekannt"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Login nicht erfolgreich: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Falscher Benutzername oder Passwort"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Das neue Passwort wurde an die E-Mail Adresse verschickt"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Bitte einen gültigen Benutzernamen zum Zurücksetzen des Passworts angeben"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Eingeloggt als: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s's Profil"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profil aktualisiert"
@@ -1347,7 +1348,7 @@ msgstr "E-Mail"
msgid "Send to Kindle E-mail Address"
msgstr "Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Admin"
@@ -1357,7 +1358,7 @@ msgstr "Admin"
msgid "Password"
msgstr "Passwort"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Upload"
@@ -1548,7 +1549,7 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1646,13 +1647,13 @@ msgstr "Konvertiere Buch"
msgid "Book Title"
msgstr "Buchtitel"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Autor"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Beschreibung"
@@ -1660,15 +1661,15 @@ msgstr "Beschreibung"
msgid "Identifiers"
msgstr "IDs"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "ID Typ"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "ID Wert"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Entfernen"
@@ -1689,90 +1690,90 @@ msgstr "Serien ID"
msgid "Rating"
msgstr "Bewertung"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Cover-URL (jpg, Cover wird heruntergeladen und in der Datenbank gespeichert, Feld erscheint anschließend wieder leer)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Coverdatei von Lokalem Laufwerk hochladen"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Herausgabedatum"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Herausgeber"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Sprache"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Ja"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Nein"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Format hochladen"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Buch nach Bearbeitung ansehen"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Metadaten laden"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Speichern"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Suchbegriff"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Suchbegriff "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
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:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Lade..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Schließen"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Quelle"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Fehler bei der Suche!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Keine Ergebnisse gefunden! Bitte ein anderes Schlüsselwort benutzen."
@@ -1976,6 +1977,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Hochladen aktivieren"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Erlaubte Dateiformate zum Hochladen"
@@ -2337,7 +2342,7 @@ msgid "Add to shelf"
msgstr "Zu Bücherregal hinzufügen"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Öffentlich)"
@@ -2412,7 +2417,7 @@ msgstr "Domainnamen eingeben"
msgid "Denied Domains (Blacklist)"
msgstr "Verbotene Domains für eine Registrierung"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Nächste"
@@ -2522,7 +2527,7 @@ msgstr "Bücher nach Bewertungen sortiert"
msgid "Books ordered by file formats"
msgstr "Bücher nach Dateiformaten sortiert"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Bücherregale"
@@ -2543,48 +2548,48 @@ msgstr "Nagivation umschalten"
msgid "Search Library"
msgstr "Bibiliothek durchsuchen"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Lade hoch..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Fehler"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Hochladen beendet, verarbeite Daten, bitte warten..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Einstellungen"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Account"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Logout"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Bitte die Seite nicht neu laden"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Durchsuchen"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Über"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Vorheriger Eintrag"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Buchdetails"
diff --git a/cps/translations/el/LC_MESSAGES/messages.mo b/cps/translations/el/LC_MESSAGES/messages.mo
index 47ef4989..01b37b8c 100644
Binary files a/cps/translations/el/LC_MESSAGES/messages.mo and b/cps/translations/el/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/el/LC_MESSAGES/messages.po b/cps/translations/el/LC_MESSAGES/messages.po
index 3e5b003d..cd9ee4b6 100644
--- a/cps/translations/el/LC_MESSAGES/messages.po
+++ b/cps/translations/el/LC_MESSAGES/messages.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Depountis Georgios\n"
"Language: el\n"
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -45,9 +45,9 @@ msgstr "Επιτυχής επανασύνδεση"
msgid "Unknown command"
msgstr "Άγνωστη εντολή"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "ʼΑγνωστο"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr "Χρήστης Διαχειριστής"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Όλα"
@@ -273,7 +274,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "Οι ρυθμίσεις DB δεν μπορούν να Γραφτούν"
@@ -303,7 +304,7 @@ msgstr "Ενημερώθηκαν οι ρυθμίσεις E-mail διακομισ
msgid "Database Configuration"
msgstr "Διαμόρφωση Λειτουργίας"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Παρακαλούμε συμπλήρωσε όλα τα πεδία!"
@@ -348,7 +349,7 @@ msgstr "Επεξεργασία χρήστη %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Χρήστης/ες '%(nick)s' ενημερώθηκαν"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Προέκυψε ένα άγνωστο σφάλμα. Παρακαλούμε δοκίμασε ξανά αργότερα."
@@ -383,7 +384,7 @@ msgstr "Ενημερώθηκαν οι ρυθμίσεις E-mail διακομισ
msgid "Password for user %(user)s reset"
msgstr "Κωδικός για επαναφορά %(user) χρήστη/ών"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Παρακαλούμε διαμόρφωσε πρώτα τις ρυθμίσεις ταχυδρομείου SMTP..."
@@ -483,108 +484,108 @@ msgstr "δεν διαμορφώθηκε"
msgid "Execution permissions missing"
msgstr "Λείπουν άδειες εκτέλεσης"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "Η ειδικά προσαρμοσμένη στήλη No.%(column)d δεν υπάρχει στο επίπεδο βάσης δεδομένων"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Η μορφή βιβλίου Διαγράφηκε Επιτυχώς"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Το Βιβλίο Διαγράφηκε Επιτυχώς"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Oυπς! Ο επιλεγμένος τίτλος βιβλίου δεν είναι διαθέσιμος. Το αρχείο δεν υπάρχει ή δεν είναι προσβάσιμο"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "επεξεργασία μεταδεδομένων"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s δεν είναι μια έγκυρη γλώσσα"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Η επέκταση αρχείου '%(ext)s' δεν επιτρέπεται να ανέβει σε αυτό το διακομιστή"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Το αρχείο προς ανέβασμα πρέπει να έχει μια επέκταση"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Αποτυχεία δημιουργίας πορείας %(path)s (Η άδεια απορρήφθηκε)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Αποτυχία αποθήκευσης αρχείου %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Σφάλμα βάσης δεδομένων: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Μορφή αρχείου %(ext)s προστέθηκε σε %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "Τα αναγνωριστικά δεν έχουν Διάκριση Πεζών-Κεφαλαίων Γραμμάτων, Αντικατάσταση Παλιού Αναγνωριστικού"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Τα μεταδεδομένα ενημερώθηκαν επιτυχώς"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Σφάλμα επεξεργασίας βιβλίου, παρακαλούμε έλεγξε το φύλλο καταγραφής για λεπτομέρειες"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Το βιβλίο που ανέβηκε πιθανόν να υπάρχει στη βιβλιοθήκη, σκέψου να το αλλάξεις πριν ανεβάσεις νέο: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Το αρχείο %(filename)s δεν μπόρεσε να αποθηκευτεί σε temp dir"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Αποτυχία Μετακίνησης Αρχείου Φόντου %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Το αρχείο %(file)s ανέβηκε"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Η δομή πηγής ή προορισμού για μετατροπή λείπει"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Το βιβλίο είναι σε σειρά επιτυχώς για μετατροπή σε %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Υπήρξε ένα σφάλμα στη μετατροπή αυτού του βιβλίου: %(res)s"
@@ -692,7 +693,7 @@ msgstr "Το αρχείο %(file)s δεν βρέθηκε στο Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Η πορεία βιβλίου %(path)s δεν βρέθηκε στο Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Βρέθηκε ένας ήδη υπάρχον λογαριασμός για αυτή τη διεύθυνση e-mail."
@@ -774,7 +775,7 @@ msgstr "Καθορισμός Kobo"
msgid "Register with %(provider)s"
msgstr "Εγγραφή με %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "τώρα έχεις συνδεθεί ως: '%(nickname)s'"
@@ -839,8 +840,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Σύνδεση"
@@ -856,7 +857,7 @@ msgstr "Η μάρκα έχει λήξει"
msgid "Success! Please return to your device"
msgstr "Επιτυχία! Παρακαλούμε επέστρεψε στη συσκευή σου"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Βιβλία"
@@ -881,7 +882,7 @@ msgstr "Κατεβασμένα Βιβλία"
msgid "Show Downloaded Books"
msgstr "Προβολή Κατεβασμένων Βιβλίων"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Βιβλία με Κορυφαία Αξιολόγηση"
@@ -890,7 +891,7 @@ msgid "Show Top Rated Books"
msgstr "Προβολή Βιβλίων με Κορυφαία Αξιολόγηση"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Βιβλία που Διαβάστηκαν"
@@ -899,7 +900,7 @@ msgid "Show read and unread"
msgstr "Προβολή διαβασμένων και αδιάβαστων"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Βιβλία που δεν Διαβάστηκαν"
@@ -917,7 +918,7 @@ msgid "Show Random Books"
msgstr "Προβολή Τυχαίων Βιβλίων"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Κατηγορίες"
@@ -927,7 +928,7 @@ msgstr "Προβολή επιλογών κατηγορίας"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Σειρές"
@@ -945,7 +946,7 @@ msgid "Show author selection"
msgstr "Προβολή επιλογών συγγραφέα"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Εκδότες"
@@ -955,7 +956,7 @@ msgstr "Προβολή επιλογών εκδότη"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Γλώσσες"
@@ -979,7 +980,7 @@ msgstr "Μορφές αρχείου"
msgid "Show file formats selection"
msgstr "Προβολή επιλογών μορφής αρχείου"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Αρχειοθετημένα Βιβλία"
@@ -987,7 +988,7 @@ msgstr "Αρχειοθετημένα Βιβλία"
msgid "Show archived books"
msgstr "Προβολή αρχειοθετημένων βιβλίων"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Λίστα Βιβλίων"
@@ -1042,58 +1043,58 @@ msgstr "Το βιβλίο έχει αφαιρεθεί από το ράφι: %(sn
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Δημιούργησε ένα Ράφι"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Συγγνώμη αλλά δεν σου επιτρέπεται η αφαίρεση ενός βιβλίου από αυτό το ράφι: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Επεξεργασία ενός ραφιού"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Το ράφι %(title)s δημιουργήθηκε"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Το ράφι %(title)s άλλαξε"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Υπήρξε ένα σφάλμα"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Ένα δημόσιο ράφι με το όνομα '%(title)s' υπάρχει ήδη."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Ένα ιδιωτικό ράφι με το όνομα '%(title)s' υπάρχει ήδη."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Αλλαγή σειράς του Ραφιού: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Ράφι: '%(name)s"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Σφάλμα κατά το άνοιγμα του ραφιού. Το ράφι δεν υπάρχει ή δεν είναι προσβάσιμο"
@@ -1126,177 +1127,177 @@ msgstr "Μια νέα ενημέρωση είναι διαθέσιμη. Κάνε
msgid "No release information available"
msgstr "Δεν υπάρχουν διαθέσιμες πληροφορίες αποδέσμευσης"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Ανακάλυψε (Τυχαία Βιβλία)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Βιβλία στη Μόδα (Με τα περισσότερα κατεβάσματα)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Κατεβασμένα βιβλία από %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Συγγραφέας: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Εκδότης: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Σειρές: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Αξιολόγηση: %(rating)s stars"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Μορφή αρχείου: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Κατηγορία: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Γλώσσα: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Προχωρημένη Αναζήτηση"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Αναζήτηση"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Κατεβασμένα"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Λίστα αξιολογήσεων"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Λίστα μορφών αρχείου"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Εργασίες"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Εκδόθηκε μετά"
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Εκδόθηκε πριν"
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Αξιολόγηση <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Αξιολόγηση >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Το βιβλίο έχει επιτυχώς μπει σε σειρά για αποστολή στο %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Oυπς! Υπήρξε ένα σφάλμα κατά την αποστολή αυτού του βιβλίου: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Παρακαλούμε ενημέρωσε το προφίλ σου με μια έγκυρη Διεύθυνση E-mail Αποστολής στο Kindle."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Ο διακομιστής E-Mail δεν έχει διαμορφωθεί, παρακαλούμε επικοινώνησε με το διαχειριστή σου!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Εγγραφή"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Η διεύθυνση e-mail σου δεν επιτρέπεται να εγγραφεί"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Το e-mail επιβεβαίωσης έχει σταλεί στον e-mail λογαριασμό σου."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Δεν μπόρεσε να ενεργοποιηθεί η επαλήθευση LDAP"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Εναλλακτική Σύνδεση ως: '%(nickname)s', Ο Διακομιστής LDAP δεν είναι προσβάσιμος, ή ο χρήστης δεν είναι γνωστός"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Δεν μπόρεσε να συνδεθεί: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Λανθασμένο Όνομα Χρήστη ή Κωδικός"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Ο Νέος Κωδικός έχει σταλεί στη διεύθυνση email σου"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Παρακαλούμε συμπλήρωσε ένα έγκυρο όνομα χρήστη για επαναφορά του κωδικού"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Έχεις συνδεθεί ως: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s's προφίλ"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Το προφίλ ενημερώθηκε"
@@ -1357,7 +1358,7 @@ msgstr "Διεύθυνση E-mail"
msgid "Send to Kindle E-mail Address"
msgstr "Διεύθυνση E-mail Αποστολής στο Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Διαχειριστής"
@@ -1367,7 +1368,7 @@ msgstr "Διαχειριστής"
msgid "Password"
msgstr "Κωδικός"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Ανέβασμα"
@@ -1559,7 +1560,7 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1657,13 +1658,13 @@ msgstr "Μετατροπή βιβλίου"
msgid "Book Title"
msgstr "Τίτλος Βιβλίου"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Συγγραφέας"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Περιγραφή"
@@ -1671,15 +1672,15 @@ msgstr "Περιγραφή"
msgid "Identifiers"
msgstr "Αναγνωριστικά"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Είδος Αναγνωριστικού"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Τιμή Αναγνωριστικού"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Αφαίρεση"
@@ -1700,90 +1701,90 @@ msgstr "Ταυτότητα Σειράς"
msgid "Rating"
msgstr "Αξιολόγηση"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Συγκέντρωση Εξώφυλλου από URL (JPEG - Η εικόνα θα κατέβει και θα αποθηκευτεί σε βάση δεδομένων)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Ανέβασμα Εξώφυλλου από Τοπικό Δίσκο"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Ημερομηνία Έκδοσης"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Εκδότης"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Γλώσσα"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Ναι"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Όχι"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Μορφή Ανεβάσματος"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Προβολή Βιβλίου σε Αποθήκευση"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Συγκέντρωση Μεταδεδομένων"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Αποθήκευση"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Λέξη κλειδί"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr "Αναζήτηση λέξης κλειδιού"
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Κάνε κλικ στο εξώφυλλο για φόρτωση μεταδεδομένων στη φόρμα"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Φόρτωση..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Κλείσιμο"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Πηγή"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Σφάλμα αναζήτησης!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Δεν βρέθηκε(αν) αποτέλεσμα(τα)! Παρακαλούμε δοκίμασε μια άλλη λέξη κλειδί."
@@ -1988,6 +1989,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Ενεργοποίηση Ανεβάσματος"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Επιτρεπόμενες Μορφές Αρχείων για Ανέβασμα"
@@ -2349,7 +2354,7 @@ msgid "Add to shelf"
msgstr "Προσθήκη στο ράφι"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Δημόσιο)"
@@ -2424,7 +2429,7 @@ msgstr "Όνομα domain"
msgid "Denied Domains (Blacklist)"
msgstr "Domains που Απορρίφθηκαν (Μαύρη λίστα)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Επόμενο"
@@ -2535,7 +2540,7 @@ msgstr "Τα βιβλία ταξινομήθηκαν ανά Αξιολόγηση
msgid "Books ordered by file formats"
msgstr "Τα βιβλία ταξινομήθηκαν ανά μορφές αρχείου"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Ράφια"
@@ -2556,48 +2561,48 @@ msgstr "Αλλαγή Θέσης Περιήγησης"
msgid "Search Library"
msgstr "Αναζήτηση Βιβλιοθήκης"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Φόρτωση..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Σφάλμα"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Το ανέβασμα έγινε, γίνεται επεξεργασία, παρακαλούμε περίμενε..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Ρυθμίσεις"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Λογαριασμός"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Αποσύνδεση"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Παρακαλούμε μην ανανεώσεις τη σελίδα"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Περιήγηση"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Σχετικά"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Προηγούμενο"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Λεπτομέρειες Βιβλίου"
diff --git a/cps/translations/es/LC_MESSAGES/messages.mo b/cps/translations/es/LC_MESSAGES/messages.mo
index 82ed2553..f3e46184 100644
Binary files a/cps/translations/es/LC_MESSAGES/messages.mo and b/cps/translations/es/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po
index d57c31cc..549d4dc4 100644
--- a/cps/translations/es/LC_MESSAGES/messages.po
+++ b/cps/translations/es/LC_MESSAGES/messages.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-05-25 17:22+0200\n"
"Last-Translator: minakmostoles \n"
"Language: es\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -49,9 +49,9 @@ msgstr "Reconexión correcta"
msgid "Unknown command"
msgstr "Comando desconocido"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Desconocido"
@@ -74,7 +74,8 @@ msgid "Edit Users"
msgstr "Editar usuarios"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Todo"
@@ -277,7 +278,7 @@ msgstr "Ubicaciones del certificado de la CA del LDAP, del certificado o de la c
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "La base de datos de configuración no es modificable"
@@ -307,7 +308,7 @@ msgstr "Actualizados los ajustes del servidor de correo electrónico"
msgid "Database Configuration"
msgstr "Configuración de la base de datos"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "¡Por favor, rellena todos los campos!"
@@ -352,7 +353,7 @@ msgstr "Editar Usuario %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Usuario '%(nick)s' actualizado"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Ha ocurrido un error desconocido. Por favor vuelva a intentarlo más tarde."
@@ -387,7 +388,7 @@ msgstr "Actualizados los ajustes del servidor de correo electrónico"
msgid "Password for user %(user)s reset"
msgstr "Contraseña para el usuario %(user)s reinicializada"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Configura primero los parámetros del servidor SMTP..."
@@ -487,108 +488,108 @@ msgstr "no configurado"
msgid "Execution permissions missing"
msgstr "Faltan permisos de ejecución"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "Columna personalizada No.%(column)d no existe en la base de datos calibre"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Formato de libro eliminado con éxito"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Libro eliminado con éxito"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "oh, oh, el libro seleccionado no está disponible. El archivo no existe o no es accesible"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "editar metadatos"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex) no es un número válido, saltando"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s no es un idioma válido"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "No se permite subir archivos con la extensión '%(ext)s' a este servidor"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "El archivo a subir debe tener una extensión"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Fallo al crear la ruta %(path)s (permiso denegado)"
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Fallo al guardar el archivo %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Error en la base de datos: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Archivo con formato %(ext)s añadido a %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "Los identificadores no distinguen entre mayúsculas y minúsculas, sobrescribiendo el identificador antiguo"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metadatos actualizados con éxito"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Error al editar el libro, por favor, compruebe el archivo de registro (logfile) para tener más detalles"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "El libro cargado probablemente existe en la biblioteca, considera cambiarlo antes de subirlo de nuevo: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "El archivo %(filename)s no pudo salvarse en el directorio temporal (Temp Dir)"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Fallo al mover el archivo de cubierta %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "El fichero %(file)s ha sido subido"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Falta la fuente o el formato de destino para la conversión"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Libro puesto a la cola para su conversión a %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Ocurrió un error al convertir este libro: %(res)s"
@@ -696,7 +697,7 @@ msgstr "Fichero %(file)s no encontrado en Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "La ruta %(path)s del libro no fue encontrada en Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Encontrada una cuenta existente para esa dirección de correo electrónico"
@@ -778,7 +779,7 @@ msgstr "Configuración de Kobo"
msgid "Register with %(provider)s"
msgstr "Registrado con %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "has iniciado sesión como : '%(nickname)s'"
@@ -843,8 +844,8 @@ msgstr "Error Google Oauth {}"
msgid "{} Stars"
msgstr "{} Estrellas"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Inicio de sesión"
@@ -860,7 +861,7 @@ msgstr "El token ha expirado"
msgid "Success! Please return to your device"
msgstr "¡Correcto! Por favor regrese a su dispositivo"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Libros"
@@ -885,7 +886,7 @@ msgstr "Libros Descargados"
msgid "Show Downloaded Books"
msgstr "Mostrar Libros Descargados"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Libros mejor valorados"
@@ -894,7 +895,7 @@ msgid "Show Top Rated Books"
msgstr "Mostrar libros mejor valorados"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Libros leídos"
@@ -903,7 +904,7 @@ msgid "Show read and unread"
msgstr "Mostrar leídos y no leídos"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Libros no leídos"
@@ -921,7 +922,7 @@ msgid "Show Random Books"
msgstr "Mostrar libros al azar"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Categorías"
@@ -931,7 +932,7 @@ msgstr "Mostrar selección de categorías"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Series"
@@ -949,7 +950,7 @@ msgid "Show author selection"
msgstr "Mostrar selección de autores"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Editores"
@@ -959,7 +960,7 @@ msgstr "Mostrar selección de editores"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Idiomas"
@@ -983,7 +984,7 @@ msgstr "Formatos de archivo"
msgid "Show file formats selection"
msgstr "Mostrar selección de formatos de archivo"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Libros archivados"
@@ -991,7 +992,7 @@ msgstr "Libros archivados"
msgid "Show archived books"
msgstr "Mostrar libros archivados"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Lista de Libros"
@@ -1046,58 +1047,58 @@ msgstr "El libro fue eliminado del estante: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Crear un estante"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Lo siento, no tiene permiso para eliminar un libro del estante: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Editar un estante"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Estante %(title)s creado"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Estante %(title)s cambiado"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Ha sucedido un error"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Ya existe un estante público con el nombre '%(title)s'."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Ya existe un estante privado con el nombre '%(title)s'."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Cambiar orden del estante: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Estante: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Error al abrir un estante. El estante no existe o no es accesible"
@@ -1130,177 +1131,177 @@ msgstr "Hay una nueva actualización disponible. Haz clic en el botón de abajo
msgid "No release information available"
msgstr "No hay información del lanzamiento disponible"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Descubrir (Libros al azar)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Libros populares (los más descargados)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Libros descargados por %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Autor/es: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editor/es: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Series: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Calificación: %(rating)s estrellas"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Formato del archivo: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Categoría : %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Idioma: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Búsqueda avanzada"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Buscar"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Descargas"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Lista de calificaciones"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Lista de formatos"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Tareas"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Publicado después de "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Publicado antes de "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Calificación <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Calificación >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Estado de lectura = $(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "Error en la búsqueda de columnas personalizadas, por favor reinicia Calibre-Web"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Libro puesto en la cola de envío a %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Ha sucedido un error en el envío del libro: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Por favor actualiza tu perfil con la dirección de correo de su kindle..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "El servidor de correo no está configurado, por favor, ¡avisa a tu administrador!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Registro"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Su correo electrónico no está permitido para registrarse"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Se ha enviado un correo electrónico de verificación a su cuenta de correo."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "No se puede activar la autenticación LDAP"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Fallback login como: '%(nickname)s', no se puede acceder al servidor LDAP o usuario desconocido"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "No se pudo entrar: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Usuario o contraseña inválido"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Una nueva contraseña se ha enviado a su cuenta de correo electrónico"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Por favor, introduce un usuario válido para restablecer la contraseña"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Ahora estás conectado como: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "Perfil de %(name)s"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Perfil actualizado"
@@ -1361,7 +1362,7 @@ msgstr "Correo electrónico"
msgid "Send to Kindle E-mail Address"
msgstr "Enviar al correo de Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Admin"
@@ -1371,7 +1372,7 @@ msgstr "Admin"
msgid "Password"
msgstr "Contraseña"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Subir archivo"
@@ -1563,7 +1564,7 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1661,13 +1662,13 @@ msgstr "Convertir libro"
msgid "Book Title"
msgstr "Título del libro"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Autor"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Descripción"
@@ -1675,15 +1676,15 @@ msgstr "Descripción"
msgid "Identifiers"
msgstr "Identificadores"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Tipo de identificador"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Valor de identificador"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Borrar"
@@ -1704,90 +1705,90 @@ msgstr "ID de serie"
msgid "Rating"
msgstr "Clasificación"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Obtener portada de URL (JPEG, la portada ser'a descargada y almacenada en la base de datos)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Subir portada desde un disco local"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Fecha de publicación"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Editor"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Idioma"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Sí"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "No"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Subir formato"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Ver libro tras la edición"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Obtener metadatos"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Guardar"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Palabra clave"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Buscar por palabras clave "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Haz clic en la portada para cargar los metadatos en el formulario"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Cargando..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Cerrar"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Origen"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "¡Error en la búsqueda!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "¡No se encontraron resultados! Por favor intenta con otra palabra clave."
@@ -1992,6 +1993,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Permitir subidas"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Formatos de archivo permitidos para subida"
@@ -2353,7 +2358,7 @@ msgid "Add to shelf"
msgstr "Agregar al estante"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Público)"
@@ -2428,7 +2433,7 @@ msgstr "Introducir nombre de dominio"
msgid "Denied Domains (Blacklist)"
msgstr "Dominios prohibidos (Blaclist)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Siguiente"
@@ -2539,7 +2544,7 @@ msgstr "Libros ordenados por puntuación"
msgid "Books ordered by file formats"
msgstr "Libros ordenados por formato de archivo"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Estanterías"
@@ -2560,48 +2565,48 @@ msgstr "Alternar navegación"
msgid "Search Library"
msgstr "Buscar en la librería"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Cargando..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Error"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Carga hecha, procesando, por favor espere ..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Ajustes"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Cuenta"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Cerrar sesión"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Por favor, no actualice la página"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Navegar"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Acerca de"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Previo"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Detalles del libro"
diff --git a/cps/translations/fi/LC_MESSAGES/messages.mo b/cps/translations/fi/LC_MESSAGES/messages.mo
index cf1a75d3..e0e7ec8b 100644
Binary files a/cps/translations/fi/LC_MESSAGES/messages.mo and b/cps/translations/fi/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/fi/LC_MESSAGES/messages.po b/cps/translations/fi/LC_MESSAGES/messages.po
index 0a4f2fb9..5d918873 100644
--- a/cps/translations/fi/LC_MESSAGES/messages.po
+++ b/cps/translations/fi/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-01-12 13:56+0100\n"
"Last-Translator: Samuli Valavuo \n"
"Language: fi\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Tuntematon"
@@ -71,7 +71,8 @@ msgid "Edit Users"
msgstr "Pääkäyttäjä"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Kaikki"
@@ -273,7 +274,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -303,7 +304,7 @@ msgstr "Sähköpostipalvelimen tiedot päivitetty"
msgid "Database Configuration"
msgstr "Ominaisuuksien asetukset"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Ole hyvä ja täytä kaikki kentät!"
@@ -348,7 +349,7 @@ msgstr "Muokkaa käyttäjää %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Käyttäjä '%(nick)s' päivitetty"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Tapahtui tuntematon virhe. Yritä myöhemmin uudelleen."
@@ -383,7 +384,7 @@ msgstr "Sähköpostipalvelimen tiedot päivitetty"
msgid "Password for user %(user)s reset"
msgstr "Käyttäjän %(user)s salasana palautettu"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Ole hyvä ja aseta SMTP postiasetukset ensin..."
@@ -481,108 +482,108 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Virhe eKirjan avaamisessa. Tiedostoa ei ole tai se ei ole saatavilla:"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "muokkaa metadataa"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s ei ole kelvollinen kieli"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Tiedostopääte '%(ext)s' ei ole sallittujen palvelimelle ladattavien listalla"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Ladattavalla tiedostolla on oltava tiedostopääte"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Polun %(path)s luonti epäonnistui (Ei oikeutta)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Tiedoston %(file)s tallennus epäonnistui."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Tiedostoformaatti %(ext)s lisätty %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metadata päivitetty onnistuneesti"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Kirjan editoinnissa tapahtui virhe, tarkista virheilmoitus lokista"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Tiedosto %(file)s tallennettu"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Lähteen tai kohteen tiedostomuoto puuttuu"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Kirja lisätty muutosjonoon muotoon %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Kirjan muunnoksessa tapahtui virhe: %(res)s"
@@ -690,7 +691,7 @@ msgstr "Tiedostoa %(file)s ei löytynyt Google Drivesta"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Kirjan polkua %(path)s ei löytynyt Google Drivesta"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Tälle sähköpostiosoitteelle läytyi jo käyttäjätunnus."
@@ -772,7 +773,7 @@ msgstr ""
msgid "Register with %(provider)s"
msgstr "Rekisteröi tuottajalle %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "olet nyt kirjautunut tunnuksella: \"%(nickname)s\""
@@ -837,8 +838,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Kirjaudu sisään"
@@ -854,7 +855,7 @@ msgstr "Valtuutus vanhentunut"
msgid "Success! Please return to your device"
msgstr "Onnistui! Ole hyvä ja palaa laitteellesi"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Kirjat"
@@ -879,7 +880,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Parhaiten arvioidut kirjat"
@@ -888,7 +889,7 @@ msgid "Show Top Rated Books"
msgstr "Näytä parhaiten arvioidut kirjat"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Luetut kirjat"
@@ -897,7 +898,7 @@ msgid "Show read and unread"
msgstr "Näytä luetut ja lukemattomat"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Lukemattomat kirjat"
@@ -915,7 +916,7 @@ msgid "Show Random Books"
msgstr "Näytä satunnausia kirjoja"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Kategoriat"
@@ -925,7 +926,7 @@ msgstr "Näytä kategoriavalinta"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Sarjat"
@@ -943,7 +944,7 @@ msgid "Show author selection"
msgstr "Näytä kirjailijavalinta"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Julkaisijat"
@@ -953,7 +954,7 @@ msgstr "Näytä julkaisijavalinta"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Kielet"
@@ -977,7 +978,7 @@ msgstr "Tiedotomuodot"
msgid "Show file formats selection"
msgstr "Näytä tiedostomuotovalinta"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -985,7 +986,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1040,58 +1041,58 @@ msgstr "Kirja on poistettu hyllystä: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "luo hylly"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Valitettavsti sinulla ei ole oikeutta poistaa kirjaa hyllystä: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Muokkaa hyllyä"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Hylly %(title)s luotu"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Hylly %(title)s muutettu"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Tapahtui virhe"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Muuta hyllyn: '%(name)s' järjestystä"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Hylly: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Virhe hyllyn avauksessa. Hyllyä ei ole tai se ei ole saatavilla"
@@ -1124,177 +1125,177 @@ msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi ve
msgid "No release information available"
msgstr "Ei päivitystietoa saatavilla"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Löydä (satunnaiset kirjat)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Kuumat kirjat (ladatuimmat)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Kirjailija: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Julkaisija: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Sarja: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Arvostelu: %(rating)s tähteä"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Tiedostomuoto: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Kieli: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Edistynyt haku"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Hae"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "DLS"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Arvostelulistaus"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Tiedostomuotolistaus"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Tehtävät"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Julkaistu alkaen "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Julkaisut ennen "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Arvostelu <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Arvostelu >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Kirja lisätty onnistuneeksi lähetettäväksi osoitteeseen %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Kirjan: %(res)s lähettämisessa tapahtui virhe"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Ole hyvä ja aseta Kindle sähköpostiosoite ensin..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Rekisteröi"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Sähköpostiosoitteellasi ei ole sallittua rekisteröityä"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Vahvistusviesti on lähetetty sähköpostiosoitteeseesi."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "LDAP autnetikoinnin aktivointi ei onnistu"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Väärä käyttäjätunnus tai salasana"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "olet kirjautunut tunnuksella: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)sn profiili"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profiili päivitetty"
@@ -1355,7 +1356,7 @@ msgstr "Sähköposti"
msgid "Send to Kindle E-mail Address"
msgstr "Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Ylläpito"
@@ -1365,7 +1366,7 @@ msgstr "Ylläpito"
msgid "Password"
msgstr "Salasana"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Lähetä"
@@ -1557,7 +1558,7 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1655,13 +1656,13 @@ msgstr "Muunna kirja"
msgid "Book Title"
msgstr "Kirjan otsikko"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Kirjailija"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Kuvaus"
@@ -1669,15 +1670,15 @@ msgstr "Kuvaus"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1698,90 +1699,90 @@ msgstr ""
msgid "Rating"
msgstr "Arvostelu"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Kannen osoite (jpg, kuva ladataan ja tallennetaan tietokantaan, kenttä jää uudelleen tyhjäksi)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Lataa kuva paikalliselta levyltä"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Julkaisupäivä"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Julkaisija"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Kieli"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Kyllä"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Ei"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Lataa tiedostomuoto"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "katso kirjaa muokkauksen jälkeen"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Hae metadata"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Avainsana"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Hae avainsanaa "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Klikkaa kantta ladataksesi metadata lomakkeelle"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Ladataan..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Sulje"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Lähde"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Hakuvirhe!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Ei osumia! Kokeile jotain tosita hakusanaa."
@@ -1985,6 +1986,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Salli lähetys"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2346,7 +2351,7 @@ msgid "Add to shelf"
msgstr "Lisää hyllyyn"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2421,7 +2426,7 @@ msgstr "Syötä domainnimi"
msgid "Denied Domains (Blacklist)"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Seuraava"
@@ -2531,7 +2536,7 @@ msgstr ""
msgid "Books ordered by file formats"
msgstr ""
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr ""
@@ -2552,48 +2557,48 @@ msgstr "Vaihda navigointi"
msgid "Search Library"
msgstr ""
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Ladataan..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Virhe"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Lataus tehty, prosessoidaan, ole hyvä ja odota..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Asetukset"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Tili"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Kirjaudu ulos"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr ""
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Selaa"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Tietoja"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Edellinen"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Kirjan tiedot"
diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo
index 02501df2..7992b4fe 100644
Binary files a/cps/translations/fr/LC_MESSAGES/messages.mo and b/cps/translations/fr/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po
index 5ffff5d7..36b45299 100644
--- a/cps/translations/fr/LC_MESSAGES/messages.po
+++ b/cps/translations/fr/LC_MESSAGES/messages.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-06-07 06:47+0200\n"
"Last-Translator: \n"
"Language: fr\n"
@@ -31,7 +31,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -61,9 +61,9 @@ msgstr "Reconnecté avec succès"
msgid "Unknown command"
msgstr "Commande inconnue"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Inconnu"
@@ -86,7 +86,8 @@ msgid "Edit Users"
msgstr "Utilisateur admin"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Tout"
@@ -289,7 +290,7 @@ msgstr "LDAP CACertificat, certificat ou emplacement de clé non valide, veuille
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "Les paramètres de la base de données ne sont pas accessibles en écriture"
@@ -319,7 +320,7 @@ msgstr "Les paramètres du serveur de courriels ont été mis à jour"
msgid "Database Configuration"
msgstr "Configuration des options"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Veuillez compléter tous les champs !"
@@ -364,7 +365,7 @@ msgstr "Éditer l'utilisateur %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Utilisateur '%(nick)s' mis à jour"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Une erreur inconnue est survenue. Veuillez réessayer plus tard."
@@ -399,7 +400,7 @@ msgstr "Les paramètres du serveur de courriels ont été mis à jour"
msgid "Password for user %(user)s reset"
msgstr "Le mot de passe de l’utilisateur %(user)s a été réinitialisé"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Veuillez configurer les paramètres SMTP au préalable..."
@@ -499,108 +500,108 @@ msgstr "non configuré"
msgid "Execution permissions missing"
msgstr "Les permissions d'exécutions manquantes"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "La colonne personnalisée No.%(column)d n'existe pas dans la base de données calibre"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Le format du livre a été supprimé avec succès"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Le livre a été supprimé avec succès"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est pas accessible"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "modifier les métadonnées"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex)s n’est pas un nombre valide, ignoré"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s n'est pas une langue valide"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "L’extension de fichier '%(ext)s' n’est pas autorisée pour être déposée sur ce serveur"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Pour être déposé le fichier doit avoir une extension"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Impossible de créer le chemin %(path)s (Permission refusée)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Échec de la sauvegarde du fichier %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Erreur de la base de données: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Le format de fichier %(ext)s a été ajouté à %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "Les identificateurs ne sont pas sensibles à la casse, écrasant l’ancien identificateur"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Les métadonnées ont bien été mises à jour"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Erreur d’édition du livre, veuillez consulter le journal (log) pour plus de détails"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Le fichier téléchargé existe probablement dans la librairie, veuillez le modifier avant de le télécharger de nouveau: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Le fichier %(filename)s ne peut pas être sauvegardé dans le répertoire temporaire"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Impossible de déplacer le fichier de couverture %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Le fichier %(file)s a été téléchargé"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Le format de conversion de la source ou de la destination est manquant"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Le livre a été mis avec succès en file de traitement pour conversion vers %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Une erreur est survenue au cours de la conversion du livre : %(res)s"
@@ -708,7 +709,7 @@ msgstr "Le fichier %(file)s n'a pas été trouvé dans Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Le chemin du livre %(path)s n'a pas été trouvé dans Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Un compte existant a été trouvé pour cette adresse de courriel."
@@ -790,7 +791,7 @@ msgstr "Configuration Kobo"
msgid "Register with %(provider)s"
msgstr "Enregistrer avec %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "vous êtes maintenant connecté comme : '%(nickname)s'"
@@ -855,8 +856,8 @@ msgstr "Erreur Oauth Google : {}"
msgid "{} Stars"
msgstr "{} Étoiles"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Connexion"
@@ -872,7 +873,7 @@ msgstr "Jeton expiré"
msgid "Success! Please return to your device"
msgstr "Réussite! Merci de vous tourner vers votre appareil"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Livres"
@@ -897,7 +898,7 @@ msgstr "Livres téléchargés"
msgid "Show Downloaded Books"
msgstr "Montrer les livres téléchargés"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Livres les mieux notés"
@@ -906,7 +907,7 @@ msgid "Show Top Rated Books"
msgstr "Montrer les livres les mieux notés"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Livres lus"
@@ -915,7 +916,7 @@ msgid "Show read and unread"
msgstr "Montrer lus et non-lus"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Livres non-lus"
@@ -933,7 +934,7 @@ msgid "Show Random Books"
msgstr "Montrer des livres au hasard"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Catégories"
@@ -943,7 +944,7 @@ msgstr "Montrer la sélection par catégories"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Séries"
@@ -961,7 +962,7 @@ msgid "Show author selection"
msgstr "Montrer la sélection par auteur"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Éditeurs"
@@ -971,7 +972,7 @@ msgstr "Montrer la sélection par éditeur"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Langues"
@@ -995,7 +996,7 @@ msgstr "Formats de fichier"
msgid "Show file formats selection"
msgstr "Afficher la sélection des formats de fichiers"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Livres archivés"
@@ -1003,7 +1004,7 @@ msgstr "Livres archivés"
msgid "Show archived books"
msgstr "Afficher les livres archivés"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Liste des livres"
@@ -1058,58 +1059,58 @@ msgstr "Le livre a été supprimé de l'étagère %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Créer une étagère"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Désolé, vous n’êtes pas autorisé à enlever un livre de cette étagère : %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Modifier une étagère"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Étagère %(title)s créée"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "L’étagère %(title)s a été modifiée"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Il y a eu une erreur"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Une étagère publique avec le nom '%(title)s' existe déjà."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Une étagère privée avec le nom '%(title)s' existe déjà."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Modifier l’arrangement de l’étagère : ‘%(name)s’"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Étagère : '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Erreur à l’ouverture de l’étagère. Elle n’existe plus ou n’est plus accessible"
@@ -1142,177 +1143,177 @@ msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-desso
msgid "No release information available"
msgstr "Aucune information concernant cette version n’est disponible"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Découvrir (Livres au hasard)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Livres populaires (les plus téléchargés)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Livres téléchargés par %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Auteur : %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Éditeur : '%(name)s'"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Séries : %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Évaluation : %(rating)s étoiles"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Format de fichier : %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Catégorie : %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Langue : %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Recherche avancée"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Chercher"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Téléchargements"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Liste des évaluations"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Liste de formats de fichiers"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Tâches"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Publié après le "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Publié avant le "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Évaluation <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Évaluation >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Status de lecture = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "Erreur lors de la recherche de colonnes personnalisées, veuillez redémarrer Calibre-Web"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Le livre a été mis en file de traitement avec succès pour un envoi vers %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! 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:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Veuillez mettre à jour votre profil avec une adresse de courriel Kindle valide."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Le serveur de courriel n'est pas configuré, veuillez contacter votre administrateur!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Créer un compte"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Votre adresse de courriel n’est pas autorisé pour une inscription"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Le courriel de confirmation a été envoyé à votre adresse."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Impossible d’activer l’authentification LDAP"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Connexion de secours comme: '%(nickname)s', le serveur LDAP est indisponible, ou l'utilisateur est inconnu"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Impossible de se connecter: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Mauvais nom d'utilisateur ou mot de passe"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Le nouveau mot de passe a été envoyé vers votre adresse de courriel"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Veuillez entrer un nom d'utilisateur valide pour réinitialiser le mot de passe"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Vous êtes maintenant connecté en tant que : ‘%(nickname)s’"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "Profil de %(name)s"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profil mis à jour"
@@ -1373,7 +1374,7 @@ msgstr "Adresse de courriel"
msgid "Send to Kindle E-mail Address"
msgstr "Envoyer vers une adresse de courriel Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Administration"
@@ -1383,7 +1384,7 @@ msgstr "Administration"
msgid "Password"
msgstr "Mot de passe"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Téléverser"
@@ -1575,7 +1576,7 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1673,13 +1674,13 @@ msgstr "Convertir le livre"
msgid "Book Title"
msgstr "Titre du livre"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Auteur"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Description"
@@ -1687,15 +1688,15 @@ msgstr "Description"
msgid "Identifiers"
msgstr "Identifiants"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Type d'identifiant"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Valeur d'identifiant"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Supprimer"
@@ -1716,90 +1717,90 @@ msgstr "ID de séries"
msgid "Rating"
msgstr "Évaluation"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Obtenir la couverture à partir d'une URL (JPEG - l'image sera téléchargée et sauvegardée dans la base de données)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Téléverser la couverture depuis un fichier en local"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Date de publication"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Éditeur"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Langue"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Oui"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Non"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Format du fichier téléversé"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Voir le livre lors de la sauvegarde"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Obtenir les métadonnées"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Sauvegarder"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Mot-clé"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Rechercher le mot-clé "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Cliquer sur la couverture pour importer les métadonnées dans le formulaire"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Chargement..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Fermer"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Source"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Erreur lors de la recherche!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Aucun résultat. Veuillez essayer avec un nouveau mot clé."
@@ -2004,6 +2005,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Autoriser le téléversement de fichier"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Formats de fichiers à télécharger autorisés"
@@ -2365,7 +2370,7 @@ msgid "Add to shelf"
msgstr "Ajouter à l'étagère"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Public)"
@@ -2440,7 +2445,7 @@ msgstr "Saisir le nom du domaine"
msgid "Denied Domains (Blacklist)"
msgstr "Domaines refusés (Liste noire)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Suivant"
@@ -2551,7 +2556,7 @@ msgstr "Livres classés par évaluation"
msgid "Books ordered by file formats"
msgstr "Livres classés par formats de fichiers"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Etagères"
@@ -2572,48 +2577,48 @@ msgstr "Basculer la navigation"
msgid "Search Library"
msgstr "Chercher dans librairie"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Téléversement en cours..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Erreur"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Téléversement terminé, traitement en cours, veuillez patienter…."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Paramètres"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Compte"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Déconnexion"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Veuillez ne pas rafraîchir la page"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Explorer"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "À propos"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Précédent"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Détails du livre"
diff --git a/cps/translations/hu/LC_MESSAGES/messages.mo b/cps/translations/hu/LC_MESSAGES/messages.mo
index bd42e50e..dbec4a92 100644
Binary files a/cps/translations/hu/LC_MESSAGES/messages.mo and b/cps/translations/hu/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/hu/LC_MESSAGES/messages.po b/cps/translations/hu/LC_MESSAGES/messages.po
index 06d891e2..6343df50 100644
--- a/cps/translations/hu/LC_MESSAGES/messages.po
+++ b/cps/translations/hu/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2019-04-06 23:36+0200\n"
"Last-Translator: \n"
"Language: hu\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Ismeretlen"
@@ -71,7 +71,8 @@ msgid "Edit Users"
msgstr "Rendszergazda felhasználó"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr ""
@@ -273,7 +274,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -303,7 +304,7 @@ msgstr "Az e-mail kiszolgáló beállításai frissítve."
msgid "Database Configuration"
msgstr "Funkciók beállítása"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Az összes mezőt ki kell tölteni!"
@@ -348,7 +349,7 @@ msgstr " A felhasználó szerkesztése: %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "A felhasználó frissítve: %(nick)s"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Ismeretlen hiba történt. Próbáld újra később!"
@@ -383,7 +384,7 @@ msgstr "Az e-mail kiszolgáló beállításai frissítve."
msgid "Password for user %(user)s reset"
msgstr "A(z) %(user)s felhasználó jelszavának alaphelyzetbe állítása"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Először be kell állítani az SMTP levelező beállításokat..."
@@ -481,108 +482,108 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Hiba történt az e-könyv megnyitásakor. A fájl nem létezik vagy nem érhető el:"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "Metaadatok szerkesztése"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "A(z) %(langname)s nem érvényes nyelv"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "A(z) \"%(ext)s\" kiterjesztésű fájlok feltöltése nincs engedélyezve ezen a szerveren."
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "A feltöltendő fájlnak kiterjesztéssel kell rendelkeznie!"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Nem sikerült létrehozni az elérési utat (engedély megtagadva): %(path)s."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Nem sikerült elmenteni a %(file)s fájlt."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "A(z) %(ext)s fájlformátum hozzáadva a könyvhez: %(book)s."
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "A metaadatok sikeresen frissültek"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Hiba a könyv szerkesztése során, további részletek a naplófájlban."
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Az átalakításhoz hiányzik a forrás- vagy a célformátum!"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "A könyv sikeresen átalakításra lett jelölve a következő formátumra: %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Hiba történt a könyv átalakításakor: %(res)s"
@@ -690,7 +691,7 @@ msgstr "A \"%(file)s\" fájl nem található a Google Drive-on"
msgid "Book path %(path)s not found on Google Drive"
msgstr "A könyv elérési útja (\"%(path)s\") nem található a Google Drive-on"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Már létezik felhasználó ehhez az e-mail címhez."
@@ -772,7 +773,7 @@ msgstr ""
msgid "Register with %(provider)s"
msgstr ""
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Be vagy jelentkezve mint: %(nickname)s"
@@ -837,8 +838,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Belépés"
@@ -854,7 +855,7 @@ msgstr "A token érvényessége lejárt."
msgid "Success! Please return to your device"
msgstr "Sikerült! Újra használható az eszköz."
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr ""
@@ -879,7 +880,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Legjobb könyvek"
@@ -888,7 +889,7 @@ msgid "Show Top Rated Books"
msgstr "Legjobbra értékelt könyvek mutatása"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Olvasott könyvek"
@@ -897,7 +898,7 @@ msgid "Show read and unread"
msgstr "Mutassa az olvasva/olvasatlan állapotot"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Olvasatlan könyvek"
@@ -915,7 +916,7 @@ msgid "Show Random Books"
msgstr "Mutass könyveket találomra"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Címkék"
@@ -925,7 +926,7 @@ msgstr "Címke választó mutatása"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Sorozatok"
@@ -943,7 +944,7 @@ msgid "Show author selection"
msgstr "Szerző választó mutatása"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Kiadók"
@@ -953,7 +954,7 @@ msgstr "Kiadó választó mutatása"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Nyelvek"
@@ -977,7 +978,7 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -985,7 +986,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1040,58 +1041,58 @@ msgstr "A könyv el lett távolítva a polcról: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Polc készítése"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Sajnálom, nincs jogosultságot eltávolítani könyvet erről a polcról: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Polc szerkesztése"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "A következő polc létre lett hozva: %(title)s"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "A következő polc megváltoztatva: %(title)s"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Hiba történt"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "A következő polc átrendezése: %(name)s"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Polc: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Hiba a polc megnyitásakor. A polc nem létezik vagy nem elérhető."
@@ -1124,177 +1125,177 @@ msgstr "Új frissítés érhető el. Kattints az alábbi gombra a frissítéshez
msgid "No release information available"
msgstr "Nincs információ a kiadásról."
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Felfedezés (könyvek találomra)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Kelendő könyvek (legtöbbet letöltöttek)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Kiadó: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Sorozat: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr ""
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Címke: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Nyelv: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Részletes keresés"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Keresés"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Letöltések"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr ""
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr ""
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Feladatok"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Kiadva ezután: "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Kiadva ezelőtt: "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Értékelés <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Értékelés <= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "A könyv sikeresen küldésre lett jelölve a következő címre: %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Hiba történt a könyv küldésekor: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Először be kell állítani a kindle e-mail címet..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Regisztrálás"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Nem engedélyezett a megadott e-mail cím bejegyzése"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Jóváhagyó levél elküldve az email címedre."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr ""
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Rossz felhasználó név vagy jelszó!"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s profilja"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "A profil frissítve."
@@ -1355,7 +1356,7 @@ msgstr "E-mail"
msgid "Send to Kindle E-mail Address"
msgstr "Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Rendszergazda"
@@ -1365,7 +1366,7 @@ msgstr "Rendszergazda"
msgid "Password"
msgstr "Jelszó"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Feltöltés"
@@ -1557,7 +1558,7 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1655,13 +1656,13 @@ msgstr "Könyv konvertálása"
msgid "Book Title"
msgstr "Könyv címe"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Szerző"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Leírás"
@@ -1669,15 +1670,15 @@ msgstr "Leírás"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1698,90 +1699,90 @@ msgstr ""
msgid "Rating"
msgstr "Értékelés"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Borító URL (jpg, borító letöltve és elmentve az adatbázisban, a mező újra üres lesz utána)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Borító feltöltése helyi meghajtóról"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Kiadás éve"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Kiadó"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Nyelv"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Igen"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Nem"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Feltöltés formátuma"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Könyv megnézése szerkesztés után"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Metaadatok beszerzése"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Kulcsszó"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Keresési kulcsszó "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Kattints a borítóra a metadatok betöltésére"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Betöltés..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Bezárás"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Forrás"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Keresési hiba!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Nincs találat! Próbálj másik kulcsszót."
@@ -1985,6 +1986,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Feltöltés engedélyezése"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2346,7 +2351,7 @@ msgid "Add to shelf"
msgstr "Hozzáadás polchoz"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2421,7 +2426,7 @@ msgstr "Tartomány megadása"
msgid "Denied Domains (Blacklist)"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Következő"
@@ -2531,7 +2536,7 @@ msgstr ""
msgid "Books ordered by file formats"
msgstr ""
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr ""
@@ -2552,48 +2557,48 @@ msgstr "Navigáció átkapcsolása"
msgid "Search Library"
msgstr ""
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Feltöltés..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Hiba"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Feltöltés kész, feldolgozás alatt, kérlek várj..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Beállítások"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Felhasználói fiók"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Kilépés"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr ""
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Böngészés"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Névjegy"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Előző"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Könyv részletei"
diff --git a/cps/translations/it/LC_MESSAGES/messages.mo b/cps/translations/it/LC_MESSAGES/messages.mo
index af9006f7..83bc12dc 100644
Binary files a/cps/translations/it/LC_MESSAGES/messages.mo and b/cps/translations/it/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po
index 6e1dda30..15bd2a43 100644
--- a/cps/translations/it/LC_MESSAGES/messages.po
+++ b/cps/translations/it/LC_MESSAGES/messages.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2017-04-04 15:09+0200\n"
"Last-Translator: ElQuimm \n"
"Language: it\n"
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -45,9 +45,9 @@ msgstr "Ricollegato con successo"
msgid "Unknown command"
msgstr "Comando sconosciuto"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Sconosciuto"
@@ -69,7 +69,8 @@ msgid "Edit Users"
msgstr "Modifica gli utenti"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Tutti"
@@ -268,7 +269,7 @@ msgstr "LDAP CACertificate, il certificato o la posizione della chiave non sono
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "I parametri del DB non sono scrivibili"
@@ -296,7 +297,7 @@ msgstr "Configurazione del Database aggiornata"
msgid "Database Configuration"
msgstr "Configurazione del Database"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Per favore compila tutti i campi!"
@@ -340,7 +341,7 @@ msgstr "Modifica l'utente %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "L'utente '%(nick)s' è stato aggiornato"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Si è verificato un errore sconosciuto: per favore riprova."
@@ -375,7 +376,7 @@ msgstr "Configurazione del server e-mail aggiornata"
msgid "Password for user %(user)s reset"
msgstr "La password dell'utente %(user)s è stata resettata"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Configura dapprima le impostazioni del server SMTP..."
@@ -473,108 +474,108 @@ msgstr "non configurato"
msgid "Execution permissions missing"
msgstr "Mancano i permessi di esecuzione"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "La colonna personale no.%(column)d non esiste nel database di Calibre"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Il formato del libro è stato eliminato con successo"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Il libro é stato eliminato con successo"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Errore durante l'apertura del libro selezionato. Il file non esiste o il file non è accessibile"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "modifica i metadati"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex)s non è un numero valido, proseguo"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s non è una lingua valida"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Non è consentito caricare file con l'estensione '%(ext)s' su questo server"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Il file da caricare deve avere un'estensione"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Impossibile creare la cartella %(path)s (autorizzazione negata)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Il salvataggio del file %(file)s non è riuscito."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Errore nel database: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Ho aggiunto il formato %(ext)s al libro %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "Gli identificatori non tengono conto delle lettere maiuscole o minuscole, sovrascrivo l'identificatore precedente"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "I metadati sono stati aggiornati con successo"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Errore nella modifica del libro. Per favore verifica i dettagli nel file di registro (logfile)"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Probabilmente il libro caricato esiste già nella libreria; considera di cambiare prima di sottoporlo nuovamente: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Il file %(filename)s non può essere salvato nella cartella temporanea"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Impossibile spostare il file della copertina %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Il file %(file)s è stato caricato"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Mancano o il formato sorgente o quello di destinazione, entrambi necessari alla conversione"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Libro accodato con successo per essere convertito in %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Si è verificato un errore durante la conversione del libro: %(res)s"
@@ -682,7 +683,7 @@ msgstr "File %(file)s non trovato su Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Non ho trovato la cartella %(path)s del libro su Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr "Ho trovato un account creato in precedenza con questo indirizzo e-mail."
@@ -763,7 +764,7 @@ msgstr "Configurazione di Kobo"
msgid "Register with %(provider)s"
msgstr "Registra con %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "ora sei connesso come: '%(nickname)s'"
@@ -828,8 +829,8 @@ msgstr "Google, errore Oauth: {}"
msgid "{} Stars"
msgstr "{} Stelle"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Accesso"
@@ -845,7 +846,7 @@ msgstr "Il token è scaduto"
msgid "Success! Please return to your device"
msgstr "Riuscito! Torna al tuo dispositivo"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Libri"
@@ -870,7 +871,7 @@ msgstr "Libri scaricati"
msgid "Show Downloaded Books"
msgstr "Mostra l'opzione per la visualizzazione dei libri scaricati"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Libri meglio valutati"
@@ -879,7 +880,7 @@ msgid "Show Top Rated Books"
msgstr "Mostra l'opzione per la selezione dei libri meglio valutati"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Libri letti"
@@ -888,7 +889,7 @@ msgid "Show read and unread"
msgstr "Mostra l'opzione per la selezione letto e non letto"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Libri non letti"
@@ -906,7 +907,7 @@ msgid "Show Random Books"
msgstr "Mostra libri casualmente"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Categorie"
@@ -916,7 +917,7 @@ msgstr "Mostra l'opzione per la selezione delle categorie"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Serie"
@@ -934,7 +935,7 @@ msgid "Show author selection"
msgstr "Mostra l'opzione per la selezione degli autori"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Editori"
@@ -944,7 +945,7 @@ msgstr "Mostra l'opzione per la selezione degli editori"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Lingue"
@@ -968,7 +969,7 @@ msgstr "Formati file"
msgid "Show file formats selection"
msgstr "Mostra l'opzione per la selezione del formato dei file"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Libri archiviati"
@@ -976,7 +977,7 @@ msgstr "Libri archiviati"
msgid "Show archived books"
msgstr "Mostra l'opzione per la selezione dei libri archiviati"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Elenco libri"
@@ -1031,57 +1032,57 @@ msgstr "Il libro è stato rimosso dallo scaffale: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Crea uno scaffale"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Spiacente, non sei autorizzato a modificare questo scaffale"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Modifica uno scaffale"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Lo scaffale %(title)s è stato creato"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Lo scaffale %(title)s è stato modificato"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "C'era un errore"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Esiste già uno scaffale pubblico denominato '%(title)s'."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Esiste già uno scaffale privato denominato '%(title)s'."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Modifica l'ordine dello scaffale: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Scaffale: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Errore durante l'apertura dello scaffale. Lo scaffale non esiste o non è accessibile"
@@ -1114,177 +1115,177 @@ msgstr "Nuovo aggiornamento disponibile. Clicca sul pulsante sottostante per agg
msgid "No release information available"
msgstr "Non sono disponibili informazioni sulla versione"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Scopri (libri casuali)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "I libri più richiesti"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "I libri scaricati da %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Autore: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editore: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Valutazione: %(rating)s stelle"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Formato del file: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Categoria: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Lingua: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Ricerca avanzata"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Cerca"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Downloads"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Elenco delle valutazioni"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Elenco dei formati"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Compito"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Pubblicato dopo il "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Pubblicato prima del "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Valutazione <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Valutazione >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Stato di lettura = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "Errore di ricerca nelle colonne personalizzate. Per favore riavvia Calibre-Web"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Libro accodato con successo per essere spedito a %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Oops! Si è verificato un errore durante l'invio di questo libro: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Per favore aggiorna il tuo profilo con un indirizzo e-mail Kindle a cui inviare i libri."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Registra"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Il tuo e-mail non è autorizzato alla registrazione"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Un messaggio di conferma è stato inviato al tuo recapito e-mail."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Non posso attivare l'autenticazione LDAP"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Fallback login come: '%(nickname)s', il server LDAP non è raggiungibile o l'utente è sconosciuto"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Non posso accedere: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Nome utente o password errati"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Una nuova password è stata inviata al tuo recapito e-mail"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Per favore digita un nome di utente valido per resettare la password"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Ora sei connesso come '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "Profilo di %(name)s"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profilo aggiornato"
@@ -1345,7 +1346,7 @@ msgstr "Indirizzo e-mail"
msgid "Send to Kindle E-mail Address"
msgstr "Invia all'indirizzo e-mail di Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Amministrazione"
@@ -1355,7 +1356,7 @@ msgstr "Amministrazione"
msgid "Password"
msgstr "Password"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Upload"
@@ -1546,7 +1547,7 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1644,13 +1645,13 @@ msgstr "Converti libro"
msgid "Book Title"
msgstr "Titolo del libro"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Autore"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Descrizione"
@@ -1658,15 +1659,15 @@ msgstr "Descrizione"
msgid "Identifiers"
msgstr "Identificatori"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Tipo di identificatore"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Valore dell'identificatore"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Rimuovi"
@@ -1687,89 +1688,89 @@ msgstr "ID della serie"
msgid "Rating"
msgstr "Valutazione"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Carica la copertina da URL (jpeg - l'immagine della copertina viene scaricata e salvata nel database)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Carica la copertina dal disco locale"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Data di pubblicazione"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Editore"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Lingua"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Sì"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "No"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Carica formato"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Visualizza il libro dopo la modifica"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Ottieni metadati"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Salva"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Parola chiave"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
msgid "Search keyword"
msgstr "Cerca parola chiave"
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Fai clic sulla copertina per caricare i metadati nel modulo"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Caricamento in corso..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Chiudi"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Fonte"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Errore nella ricerca!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Nessun risultato! Prova con un altro criterio di ricerca."
@@ -1972,6 +1973,10 @@ msgstr "Converti caratteri non inglesi del titolo e dell'autore durante il salva
msgid "Enable Uploads"
msgstr "Abilita il caricamento"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Formati di file autorizzati ad essere caricati"
@@ -2331,7 +2336,7 @@ msgid "Add to shelf"
msgstr "Aggiungi allo scaffale"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Pubblico)"
@@ -2406,7 +2411,7 @@ msgstr "Digita il nome di dominio"
msgid "Denied Domains (Blacklist)"
msgstr "Dominii bloccati per la registrazione (Blacklist)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Prossimo"
@@ -2516,7 +2521,7 @@ msgstr "Libri ordinati per valutazione"
msgid "Books ordered by file formats"
msgstr "Libri ordinati per formato"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Scaffali"
@@ -2537,48 +2542,48 @@ msgstr "Alterna navigazione"
msgid "Search Library"
msgstr "Ricerca nella libreria"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Uploading..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Errore"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Caricamento riuscito, sto elaborando, per favore aspetta..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Configurazione"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Account"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Logout"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Per favore non ricaricare la pagina"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Naviga"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Informazioni su"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Precedente"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Dettagli del libro"
diff --git a/cps/translations/ja/LC_MESSAGES/messages.mo b/cps/translations/ja/LC_MESSAGES/messages.mo
index 3fad6032..b06a320d 100644
Binary files a/cps/translations/ja/LC_MESSAGES/messages.mo and b/cps/translations/ja/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/ja/LC_MESSAGES/messages.po b/cps/translations/ja/LC_MESSAGES/messages.po
index f8ce8069..db9458ff 100644
--- a/cps/translations/ja/LC_MESSAGES/messages.po
+++ b/cps/translations/ja/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2018-02-07 02:20-0500\n"
"Last-Translator: white \n"
"Language: ja\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "不明"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr ""
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr ""
@@ -268,7 +269,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -298,7 +299,7 @@ msgstr "メールサーバの設定を更新しました"
msgid "Database Configuration"
msgstr "機能設定"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "全ての項目を入力してください"
@@ -343,7 +344,7 @@ msgstr "%(nick)s を編集"
msgid "User '%(nick)s' updated"
msgstr "ユーザ '%(nick)s' を更新しました"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "不明なエラーが発生しました。あとで再試行してください。"
@@ -378,7 +379,7 @@ msgstr "メールサーバの設定を更新しました"
msgid "Password for user %(user)s reset"
msgstr "%(user)s 用のパスワードをリセット"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "初めにSMTPメールの設定をしてください"
@@ -476,108 +477,108 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr ""
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "メタデータを編集"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s は有効な言語ではありません"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "ファイル拡張子 '%(ext)s' をこのサーバにアップロードすることは許可されていません"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "アップロードするファイルには拡張子が必要です"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "%(path)s の作成に失敗しました (Permission denied)。"
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "%(file)s を保存できません。"
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "ファイル形式 %(ext)s が %(book)s に追加されました"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "メタデータを更新しました"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "本の編集でエラーが発生しました。詳細はログファイルを確認してください"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "変換元の形式または変換後の形式が指定されていません"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "本の %(book_format)s への変換がキューに追加されました"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "この本の変換中にエラーが発生しました: %(res)s"
@@ -685,7 +686,7 @@ msgstr "ファイル %(file)s はGoogleドライブ上にありません"
msgid "Book path %(path)s not found on Google Drive"
msgstr "本のパス %(path)s はGoogleドライブ上にありません"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "このメールアドレスで登録されたアカウントがあります"
@@ -767,7 +768,7 @@ msgstr ""
msgid "Register with %(provider)s"
msgstr ""
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "%(nickname)s としてログイン中"
@@ -832,8 +833,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "ログイン"
@@ -849,7 +850,7 @@ msgstr "トークンが無効です"
msgid "Success! Please return to your device"
msgstr "成功です!端末に戻ってください"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr ""
@@ -874,7 +875,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr ""
@@ -883,7 +884,7 @@ msgid "Show Top Rated Books"
msgstr ""
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "読んだ本"
@@ -892,7 +893,7 @@ msgid "Show read and unread"
msgstr "既読の本と未読の本を表示"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "未読の本"
@@ -910,7 +911,7 @@ msgid "Show Random Books"
msgstr "ランダムで本を表示"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "カテゴリ"
@@ -920,7 +921,7 @@ msgstr "カテゴリ選択を表示"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "シリーズ"
@@ -938,7 +939,7 @@ msgid "Show author selection"
msgstr "著者選択を表示"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "出版社"
@@ -948,7 +949,7 @@ msgstr "出版社選択を表示"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "言語"
@@ -972,7 +973,7 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -980,7 +981,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1035,58 +1036,58 @@ msgstr "本が %(sname)s から削除されました"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "本棚を作成する"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "申し訳ありませんが、%(sname)s から本を削除することが許可されていません"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "本棚を編集する"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "%(title)s を作成しました"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "%(title)s を変更しました"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "エラーが発生しました"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "'%(name)s' 内の本の順番を変更する"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "本棚: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "本棚を開けません。この本棚は存在しないかアクセスできません"
@@ -1119,177 +1120,177 @@ msgstr "アップデートが利用可能です。下のボタンをクリック
msgid "No release information available"
msgstr "リリース情報がありません"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "本を見つける (ランダムで表示)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr ""
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "出版社: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "シリーズ: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr ""
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "カテゴリ: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "言語: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "詳細検索"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "検索"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr ""
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr ""
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr ""
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "タスク"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "これ以降に出版 "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "これ以前に出版 "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "評価 <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "評価 >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "本の %(kindlemail)s への送信がキューに追加されました"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "%(res)s を送信中にエラーが発生しました"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "初めにKindleのメールアドレスを設定してください"
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "登録"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "このメールアドレスは登録が許可されていません"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "確認メールがこのメールアドレスに送信されました。"
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr ""
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "ユーザ名またはパスワードが違います"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s のプロフィール"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "プロフィールを更新しました"
@@ -1350,7 +1351,7 @@ msgstr ""
msgid "Send to Kindle E-mail Address"
msgstr ""
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "管理者"
@@ -1360,7 +1361,7 @@ msgstr "管理者"
msgid "Password"
msgstr "パスワード"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "アップロード"
@@ -1552,7 +1553,7 @@ msgid "OK"
msgstr ""
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1650,13 +1651,13 @@ msgstr "本を変換"
msgid "Book Title"
msgstr "本のタイトル"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "著者"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "詳細"
@@ -1664,15 +1665,15 @@ msgstr "詳細"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1693,90 +1694,90 @@ msgstr ""
msgid "Rating"
msgstr "評価"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr ""
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr ""
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr ""
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "出版社"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "言語"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "はい"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "いいえ"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr ""
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr ""
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr ""
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "キーワード"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr "キーワードを検索"
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "カバー画像をクリックしてメタデータをフォームに読み込んでください"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "読み込み中..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "閉じる"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "ソース"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "検索エラー"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "検索結果が見つかりません。別のキーワードで検索してみてください。"
@@ -1980,6 +1981,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr ""
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2340,7 +2345,7 @@ msgid "Add to shelf"
msgstr "本棚に追加"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2415,7 +2420,7 @@ msgstr "ドメイン名を入力"
msgid "Denied Domains (Blacklist)"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "次"
@@ -2525,7 +2530,7 @@ msgstr ""
msgid "Books ordered by file formats"
msgstr ""
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr ""
@@ -2546,48 +2551,48 @@ msgstr ""
msgid "Search Library"
msgstr ""
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "アップロード中..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "エラー"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "アップロード完了。現在処理中ですのでお待ち下さい..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "設定"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "アカウント"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "ログアウト"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr ""
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "閲覧"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "このサイトについて"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "前"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "本の詳細"
diff --git a/cps/translations/km/LC_MESSAGES/messages.mo b/cps/translations/km/LC_MESSAGES/messages.mo
index f2839dab..b5af5537 100644
Binary files a/cps/translations/km/LC_MESSAGES/messages.mo and b/cps/translations/km/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/km/LC_MESSAGES/messages.po b/cps/translations/km/LC_MESSAGES/messages.po
index 983a9b03..365a89f7 100644
--- a/cps/translations/km/LC_MESSAGES/messages.po
+++ b/cps/translations/km/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2018-08-27 17:06+0700\n"
"Last-Translator: \n"
"Language: km_KH\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -47,9 +47,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "មិនដឹង"
@@ -72,7 +72,8 @@ msgid "Edit Users"
msgstr "អ្នកប្រើប្រាស់រដ្ឋបាល"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr ""
@@ -274,7 +275,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -304,7 +305,7 @@ msgstr "ទំនាក់ទំនងទៅមូលដ្ឋានទិន្
msgid "Database Configuration"
msgstr "ការកំណត់មុខងារ"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "សូមបំពេញចន្លោះទាំងអស់!"
@@ -348,7 +349,7 @@ msgstr "កែប្រែអ្នកប្រើប្រាស់ %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "អ្នកប្រើប្រាស់ ‘%(nick)s’ ត្រូវបានកែប្រែ"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr ""
@@ -383,7 +384,7 @@ msgstr ""
msgid "Password for user %(user)s reset"
msgstr ""
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "សូមកំណត់អ៊ីមែល SMTP ជាមុនសិន"
@@ -481,108 +482,108 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr ""
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "កែប្រែទិន្នន័យមេតា"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
+#: cps/editbooks.py:490 cps/editbooks.py:954
#, python-format
-msgid "%(langname)s is not a valid language"
+msgid "'%(langname)s' is not a valid language"
msgstr ""
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "ឯកសារប្រភេទ '%(ext)s' មិនត្រូវបានអនុញ្ញាតឲអាប់ឡូដទៅម៉ាស៊ីន server នេះទេ"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "ឯកសារដែលត្រូវអាប់ឡូដត្រូវមានកន្ទុយឯកសារ"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "មិនអាចបង្កើតទីតាំង %(path)s (ពុំមានសិទ្ធិ)។"
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "មិនអាចរក្សាទុកឯកសារ %(file)s ។"
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "ឯកសារទម្រង់ %(ext)s ត្រូវបានបន្ថែមទៅ %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr ""
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "មានបញ្ហាពេលកែប្រែសៀវភៅ សូមពិនិត្យមើល logfile សម្រាប់ព័ត៌មានបន្ថែម"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr ""
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr ""
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr ""
@@ -690,7 +691,7 @@ msgstr "ឯកសារ %(file)s រកមិនឃើញក្នុង Google
msgid "Book path %(path)s not found on Google Drive"
msgstr "ទីតាំងសៀវភៅ %(path)s រកមិនឃើញក្នុង Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr ""
@@ -771,7 +772,7 @@ msgstr ""
msgid "Register with %(provider)s"
msgstr ""
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "ឥឡូវអ្នកបានចូលដោយមានឈ្មោះថា៖ ‘%(nickname)s’"
@@ -836,8 +837,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "ចូលប្រើប្រាស់"
@@ -853,7 +854,7 @@ msgstr "វត្ថុតាងហួសពេលកំណត់"
msgid "Success! Please return to your device"
msgstr "ជោគជ័យ! សូមវិលមកឧបករណ៍អ្នកវិញ"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr ""
@@ -878,7 +879,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "សៀវភៅដែលមានការវាយតម្លៃល្អជាងគេ"
@@ -887,7 +888,7 @@ msgid "Show Top Rated Books"
msgstr "បង្ហាញសៀវភៅដែលមានការវាយតម្លៃល្អជាងគេ"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "សៀវភៅដែលបានអានរួច"
@@ -896,7 +897,7 @@ msgid "Show read and unread"
msgstr "បង្ហាញអានរួច និងមិនទាន់អាន"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "សៀវភៅដែលមិនទាន់បានអាន"
@@ -914,7 +915,7 @@ msgid "Show Random Books"
msgstr "បង្ហាញសៀវភៅចៃដន្យ"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "ប្រភេទនានា"
@@ -924,7 +925,7 @@ msgstr "បង្ហាញជម្រើសប្រភេទ"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "ស៊េរី"
@@ -942,7 +943,7 @@ msgid "Show author selection"
msgstr "បង្ហាញជម្រើសអ្នកនិពន្ធ"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr ""
@@ -952,7 +953,7 @@ msgstr ""
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "ភាសានានា"
@@ -976,7 +977,7 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -984,7 +985,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1039,58 +1040,58 @@ msgstr "សៀវភៅត្រូវបានដកចេញពីធ្នើ
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "បង្កើតធ្នើ"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "សូមអភ័យទោស អ្នកមិនមានសិទ្ធិដកសៀវភៅចេញពីធ្នើនេះទេ៖ %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "កែប្រែធ្នើ"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "ធ្នើឈ្មោះ %(title)s ត្រូវបានបង្កើត"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "ធ្នើឈ្មោះ %(title)s ត្រូវបានប្តូរ"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "មានបញ្ហា"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "ប្តូរលំដាប់ធ្នើ៖ ‘%(name)s’"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "ធ្នើ៖ ‘%(name)s’"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "មានបញ្ហាពេលបើកធ្នើ។ ពុំមានធ្នើ ឬមិនអាចបើកបាន"
@@ -1123,177 +1124,177 @@ msgstr ""
msgid "No release information available"
msgstr ""
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "ស្រាវជ្រាវ (សៀវភៅចៃដន្យ)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "សៀវភៅដែលត្រូវបានទាញយកច្រើនជាងគេ"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "ស៊េរី៖ %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr ""
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "ប្រភេទ៖ %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "ភាសា៖ %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "ស្វែងរកកម្រិតខ្ពស់"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "ស្វែងរក"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "ឯកសារ DLS"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr ""
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr ""
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "កិច្ចការនានា"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "បានបោះពុម្ភក្រោយ "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "បានបោះពុម្ភមុន "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "ការវាយតម្លៃ <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "ការវាយតម្លៃ >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "សៀវភៅបានចូលជួរសម្រាប់ផ្ញើទៅ %(kindlemail)s ដោយជោគជ័យ"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "មានបញ្ហានៅពេលផ្ញើសៀវភៅនេះ៖ %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr ""
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "ចុះឈ្មោះ"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr ""
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr ""
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "ខុសឈ្មោះអ្នកប្រើប្រាស់ ឬលេខសម្ងាត់"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "ព័ត៌មានសង្ខេបរបស់ %(name)s"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "ព័ត៌មានសង្ខេបបានកែប្រែ"
@@ -1354,7 +1355,7 @@ msgstr ""
msgid "Send to Kindle E-mail Address"
msgstr "ឧបករណ៍ Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "រដ្ឋបាល"
@@ -1364,7 +1365,7 @@ msgstr "រដ្ឋបាល"
msgid "Password"
msgstr "លេខសម្ងាត់"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "អាប់ឡូដ"
@@ -1556,7 +1557,7 @@ msgid "OK"
msgstr "បាទ/ចាស"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1654,13 +1655,13 @@ msgstr ""
msgid "Book Title"
msgstr "ចំណងជើងសៀវភៅ"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "អ្នកនិពន្ធ"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "ពិពណ៌នា"
@@ -1668,15 +1669,15 @@ msgstr "ពិពណ៌នា"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1697,90 +1698,90 @@ msgstr "លេខសម្គាល់ស៊េរី"
msgid "Rating"
msgstr "ការវាយតម្លៃ"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "URL របស់ក្របមុខ (ឯកសារ JPG ក្របមុខត្រូវបានទាញយក និងរក្សាទុកក្នុង database ក្រោយមកចន្លោះនេះទទេម្តងទៀត)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr ""
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "ថ្ងៃបោះពុម្ភ"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "អ្នកបោះពុម្ភ"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "ភាសា"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "បាទ/ចាស"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "ទេ"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "ទម្រង់អាប់ឡូដ"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "មើលសៀវភៅក្រោយពីកែប្រែ"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "មើលទិន្នន័យមេតា"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "ពាក្យគន្លឹះ"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr "ស្វែងរកពាក្យគន្លឹះ"
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "ចុចលើគម្របដើម្បីបញ្ចូលទិន្នន័យមេតាទៅក្នុង form"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "កំពុងដំណើរការ..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "បិទ"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "ប្រភព"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "ការស្វែងរកមានកំហុស!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr ""
@@ -1983,6 +1984,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr ""
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2344,7 +2349,7 @@ msgid "Add to shelf"
msgstr "បន្ថែមទៅធ្នើ"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2419,7 +2424,7 @@ msgstr ""
msgid "Denied Domains (Blacklist)"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "បន្ទាប់"
@@ -2529,7 +2534,7 @@ msgstr ""
msgid "Books ordered by file formats"
msgstr ""
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr ""
@@ -2550,48 +2555,48 @@ msgstr "បិទ/បើកការរុករក"
msgid "Search Library"
msgstr ""
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "កំពុងអាប់ឡូត..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr ""
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "ការកំណត់"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr ""
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "ចេញពីការប្រើប្រាស់"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr ""
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "រុករក"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "អំពី"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "មុន"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "ព័ត៌មានលម្អិតរបស់សៀវភៅ"
diff --git a/cps/translations/nl/LC_MESSAGES/messages.mo b/cps/translations/nl/LC_MESSAGES/messages.mo
index 5f2aa6a7..f28ef909 100644
Binary files a/cps/translations/nl/LC_MESSAGES/messages.mo and b/cps/translations/nl/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po
index 8bbad408..7cc832e6 100644
--- a/cps/translations/nl/LC_MESSAGES/messages.po
+++ b/cps/translations/nl/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web (GPLV3)\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-12-12 08:20+0100\n"
"Last-Translator: Marcel Maas \n"
"Language: nl\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -47,9 +47,9 @@ msgstr "Opnieuw verbinden gelukt"
msgid "Unknown command"
msgstr "Onbekende opdracht"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Onbekend"
@@ -72,7 +72,8 @@ msgid "Edit Users"
msgstr "Systeembeheerder"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Alles"
@@ -274,7 +275,7 @@ msgstr "LDAP CACertficaat, Certificaat of Sleutel Locatie is ongeldig. Voer alsj
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "DB-instellingen niet opgeslagen"
@@ -304,7 +305,7 @@ msgstr "E-mailserver-instellingen bijgewerkt"
msgid "Database Configuration"
msgstr "Databaseconfiguratie"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Vul alle velden in!"
@@ -349,7 +350,7 @@ msgstr "Gebruiker '%(nick)s' bewerken"
msgid "User '%(nick)s' updated"
msgstr "Gebruiker '%(nick)s' bijgewerkt"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Onbekende fout opgetreden. Probeer het later nog eens."
@@ -384,7 +385,7 @@ msgstr "E-mailserver-instellingen bijgewerkt"
msgid "Password for user %(user)s reset"
msgstr "Wachtwoord voor gebruiker %(user)s is hersteld"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Stel eerst SMTP-mail in..."
@@ -484,108 +485,108 @@ msgstr "niet geconfigureerd"
msgid "Execution permissions missing"
msgstr "Kan programma niet uitvoeren"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "Aangepaste kolom Nr.%(column)d bestaat niet in de Calibre Database"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Het boekformaat is verwijderd"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Het boek is verwijderd"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Oeps! Geselecteerd boek is niet beschikbaar. Bestand bestaat niet of is niet toegankelijk"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "metagegevens bewerken"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex)s is geen geldig nummer, sla het over"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s is geen geldige taal"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "De bestandsextensie '%(ext)s' is niet toegestaan op deze server"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Het te uploaden bestand moet voorzien zijn van een extensie"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Kan de locatie '%(path)s' niet aanmaken (niet gemachtigd)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Kan %(file)s niet opslaan."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Database fout: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Bestandsformaat %(ext)s toegevoegd aan %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "Identificatoren zijn niet hoofdlettergevoelig, overschrijf huidige identificatoren"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "De metagegevens zijn bijgewerkt"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Kan het boek niet bewerken, controleer het logbestand"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Geüpload boek staat mogelijk al in de bibliotheek, controleer alvorens door te gaan: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Bestand %(filename)s kon niet opgeslagen worden in de tijdelijke map"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Omslag %(file)s niet verplaatst: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Bestand %(file)s geüpload"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Bron- of doelformaat ontbreekt voor conversie"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Het boek is in de wachtrij geplaatst voor conversie naar %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Er is een fout opgetreden bij het converteren van dit boek: %(res)s"
@@ -693,7 +694,7 @@ msgstr "Bestand '%(file)s' niet aangetroffen op Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Boeken locatie '%(path)s' niet aangetroffen op Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Bestaand account met dit e-mailadres aangetroffen."
@@ -775,7 +776,7 @@ msgstr "Kobo Instellen"
msgid "Register with %(provider)s"
msgstr "Aanmelden bij %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "je bent ingelogd als: '%(nickname)s'"
@@ -840,8 +841,8 @@ msgstr "Google OAuth foutmelding: {}"
msgid "{} Stars"
msgstr "{} sterren"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Inloggen"
@@ -857,7 +858,7 @@ msgstr "Toegangssleutel is verlopen"
msgid "Success! Please return to your device"
msgstr "Gelukt! Ga terug naar je apparaat"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Boeken"
@@ -882,7 +883,7 @@ msgstr "Gedownloade boeken"
msgid "Show Downloaded Books"
msgstr "Gedownloade boeken tonen"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Best beoordeelde boeken"
@@ -891,7 +892,7 @@ msgid "Show Top Rated Books"
msgstr "Best beoordeelde boeken tonen"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Gelezen boeken"
@@ -900,7 +901,7 @@ msgid "Show read and unread"
msgstr "Gelezen/Ongelezen boeken tonen"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Ongelezen boeken"
@@ -918,7 +919,7 @@ msgid "Show Random Books"
msgstr "Willekeurige boeken tonen"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Categorieën"
@@ -928,7 +929,7 @@ msgstr "Categoriekeuze tonen"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Boekenreeksen"
@@ -946,7 +947,7 @@ msgid "Show author selection"
msgstr "Auteurkeuze tonen"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Uitgevers"
@@ -956,7 +957,7 @@ msgstr "Uitgeverskeuze tonen"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Talen"
@@ -980,7 +981,7 @@ msgstr "Bestandsformaten"
msgid "Show file formats selection"
msgstr "Bestandsformaten tonen"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Gearchiveerde boeken"
@@ -988,7 +989,7 @@ msgstr "Gearchiveerde boeken"
msgid "Show archived books"
msgstr "Gearchiveerde boeken tonen"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Boekenlijst"
@@ -1043,58 +1044,58 @@ msgstr "Het boek is verwijderd van boekenplank: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Boekenplank maken"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Je bent niet gemachtigd deze boekenplank aan te passen"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Pas een boekenplank aan"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Boekenplank '%(title)s' aangemaakt"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Boekenplank '%(title)s' is aangepast"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Er is een fout opgetreden"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Een openbare boekenplank met de naam '%(title)s' bestaat al."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Een persoonlijke boekenplank met de naam '%(title)s' bestaat al."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Volgorde van boekenplank veranderen: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Boekenplank: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Kan boekenplank niet openen: de boekenplank bestaat niet of is ontoegankelijk"
@@ -1127,177 +1128,177 @@ msgstr "Er is een update beschikbaar. Klik op de knop hieronder om te updaten na
msgid "No release information available"
msgstr "Geen update-informatie beschikbaar"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Verkennen (willekeurige boeken)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Populaire boeken (meest gedownload)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Gedownloade boeken door %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Auteur: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Uitgever: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Reeks: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Beoordeling: %(rating)s sterren"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Bestandsformaat: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Categorie: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Taal: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Geavanceerd zoeken"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Zoeken"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Downloads"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Beoordelingen"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Alle bestandsformaten"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Taken"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Gepubliceerd na "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Gepubliceerd vóór "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Beoordeling <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Beoordeling >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Lees Status = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "Fout tijdens het zoeken van aangepaste kolommen, start Calibre-Web opnieuw op"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Het boek is in de wachtrij geplaatst om te worden verstuurd aan %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Fout opgetreden bij het versturen van dit boek: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Stel je kindle-e-mailadres in..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "E-mailserver is niet geconfigureerd, neem contact op met de beheerder!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Registreren"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Dit e-mailadres mag niet worden gebruikt voor registratie"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Er is een bevestigings-e-mail verstuurd naar je e-mailadres."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Kan de LDAP authenticatie niet activeren"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Terugvallen op login: '%(nickname)s', LDAP Server is onbereikbaar, of de gebruiker is onbekend"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Inloggen mislukt: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Verkeerde gebruikersnaam of wachtwoord"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Een nieuw wachtwoord is verzonden naar je e-mailadres"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Geef een geldige gebruikersnaam op om je wachtwoord te herstellen"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Je bent ingelogd als: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)ss profiel"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profiel bijgewerkt"
@@ -1358,7 +1359,7 @@ msgstr "E-mailadres"
msgid "Send to Kindle E-mail Address"
msgstr "Kindle-e-mailadres"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Beheer"
@@ -1368,7 +1369,7 @@ msgstr "Beheer"
msgid "Password"
msgstr "Wachtwoord"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Uploaden"
@@ -1560,7 +1561,7 @@ msgid "OK"
msgstr "Oké"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1658,13 +1659,13 @@ msgstr "Boek converteren"
msgid "Book Title"
msgstr "Boektitel"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Auteur"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Omschrijving"
@@ -1672,15 +1673,15 @@ msgstr "Omschrijving"
msgid "Identifiers"
msgstr "Identificatoren"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Identificatie type"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Identificatie waarde"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Verwijderen"
@@ -1701,90 +1702,90 @@ msgstr "Boekenreeks volgnummer"
msgid "Rating"
msgstr "Beoordeling"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Omslag-url (jpg) (de omslag wordt gedownload en opgeslagen in de database)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Omslag uploaden vanaf de harde schijf"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Publicatiedatum"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Uitgever"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Taal"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Ja"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Nee"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Uploadformaat"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Boek inkijken na bewerking"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Metagegevens ophalen"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Opslaan"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Trefwoord"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Trefwoord zoeken "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Klik op de omslag om de metagegevens in het formulier te laden"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Bezig met laden..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Sluiten"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Bron"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Zoekfout!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Geen resultaten gevonden! Gebruik een ander trefwoord."
@@ -1989,6 +1990,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Uploaden inschakelen"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Toegelaten upload bestandsformaten"
@@ -2350,7 +2355,7 @@ msgid "Add to shelf"
msgstr "Toevoegen aan boekenplank"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Openbaar)"
@@ -2425,7 +2430,7 @@ msgstr "Voer domeinnaam in"
msgid "Denied Domains (Blacklist)"
msgstr "Geweigerde domeinen voor registratie"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Volgende"
@@ -2536,7 +2541,7 @@ msgstr "Boeken gesorteerd op beoordeling"
msgid "Books ordered by file formats"
msgstr "Boeken gesorteerd op bestandsformaat"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Boekenplanken"
@@ -2557,48 +2562,48 @@ msgstr "Navigatie aanpassen"
msgid "Search Library"
msgstr "Zoek in bibliotheek"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Bezig met uploaden..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Fout"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Uploaden voltooid, bezig met verwerken..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Instellingen"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Account"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Afmelden"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Deze pagina niet vernieuwen"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Verkennen"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Informatie"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Vorige"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Boekgegevens"
diff --git a/cps/translations/pl/LC_MESSAGES/messages.mo b/cps/translations/pl/LC_MESSAGES/messages.mo
index e796b117..641be5ae 100644
Binary files a/cps/translations/pl/LC_MESSAGES/messages.mo and b/cps/translations/pl/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po
index 1ecbe85f..781fe840 100644
--- a/cps/translations/pl/LC_MESSAGES/messages.po
+++ b/cps/translations/pl/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre Web - polski (POT: 2021-06-12 08:52)\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2021-06-12 15:35+0200\n"
"Last-Translator: Radosław Kierznowski \n"
"Language: pl\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -48,9 +48,9 @@ msgid "Unknown command"
msgstr "Nieznane polecenie"
# ???
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Nieznany"
@@ -73,7 +73,8 @@ msgstr "Edytuj użytkowników"
# ???
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Wszystko"
@@ -274,7 +275,7 @@ msgstr "Główny urząd certyfikatu LDAP, Certyfikat lub Lokalizacja Klucza nie
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "Ustawienia Bazy Danych nie są zapisywalne"
@@ -303,7 +304,7 @@ msgstr "Zaktualizowano ustawienia serwera poczty e-mail"
msgid "Database Configuration"
msgstr "Konfiguracja bazy danych"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Proszę wypełnić wszystkie pola!"
@@ -348,7 +349,7 @@ msgstr "Edytuj użytkownika %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Użytkownik '%(nick)s' został zaktualizowany"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później."
@@ -384,7 +385,7 @@ msgstr "Zaktualizowano ustawienia serwera poczty e-mail"
msgid "Password for user %(user)s reset"
msgstr "Zrestartowano hasło użytkownika %(user)s"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
@@ -485,108 +486,108 @@ msgstr "nie skonfigurowane"
msgid "Execution permissions missing"
msgstr "Brak uprawnienia do wykonywania pliku"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "Niestandardowa kolumna No.%(column)d nie istnieje w bazie calibre"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Plik książki w wybranym formacie został usunięty"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Książka została usunięta"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Błąd otwierania e-booka. Plik nie istnieje lub jest niedostępny"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "edytuj metadane"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex)s nie jest poprawną liczbą, pomijanie"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s nie jest prawidłowym językiem"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Rozszerzenie pliku '%(ext)s' nie jest dozwolone do wysłania na ten serwer"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Plik do wysłania musi mieć rozszerzenie"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Nie udało się utworzyć łącza %(path)s (Odmowa dostępu)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Nie można zapisać pliku %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Błąd bazy danych: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Format pliku %(ext)s dodany do %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "W identyfikatorach nie jest rozróżniana wielkość liter, nadpisywanie starego identyfikatora"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metadane zostały pomyślnie zaktualizowane"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Błąd podczas edycji książki, sprawdź plik dziennika, aby uzyskać szczegółowe informacje"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Wysłana książka prawdopodobnie istnieje w bibliotece, rozważ zmianę przed przesłaniem nowej: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Nie można zapisać pliku %(filename)s w katalogu tymczasowym"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Nie udało się przenieść pliku okładki %(file)s:%(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Wysłano plik %(file)s"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Brak formatu źródłowego lub docelowego do konwersji"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Książka została pomyślnie umieszczona w zadaniach do konwersji %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Podczas konwersji książki wystąpił błąd: %(res)s"
@@ -696,7 +697,7 @@ msgstr "Nie znaleziono pliku %(file)s na Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Nie znaleziono ścieżki do książki %(path)s na Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr "Znaleziono istniejące konto dla tego adresu e-mail"
@@ -778,7 +779,7 @@ msgstr "Konfiguracja Kobo"
msgid "Register with %(provider)s"
msgstr "Zarejestruj się %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "zalogowałeś się jako: '%(nickname)s'"
@@ -843,8 +844,8 @@ msgstr "Błąd Google Oauth: {}"
msgid "{} Stars"
msgstr "{} Gwiazdek"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Zaloguj się"
@@ -860,7 +861,7 @@ msgstr "Token wygasł"
msgid "Success! Please return to your device"
msgstr "Powodzenie! Wróć do swojego urządzenia"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Książki"
@@ -885,7 +886,7 @@ msgstr "Pobrane książki"
msgid "Show Downloaded Books"
msgstr "Pokaż pobrane książki"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Najwyżej ocenione"
@@ -894,7 +895,7 @@ msgid "Show Top Rated Books"
msgstr "Pokaż menu najwyżej ocenionych książek"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Przeczytane"
@@ -903,7 +904,7 @@ msgid "Show read and unread"
msgstr "Pokaż menu przeczytane i nieprzeczytane"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Nieprzeczytane"
@@ -921,7 +922,7 @@ msgid "Show Random Books"
msgstr "Pokazuj losowe książki"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Kategorie"
@@ -931,7 +932,7 @@ msgstr "Pokaż menu wyboru kategorii"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Cykle"
@@ -949,7 +950,7 @@ msgid "Show author selection"
msgstr "Pokaż menu wyboru autora"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Wydawcy"
@@ -959,7 +960,7 @@ msgstr "Pokaż menu wyboru wydawcy"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Języki"
@@ -983,7 +984,7 @@ msgstr "Formaty plików"
msgid "Show file formats selection"
msgstr "Pokaż menu formatu plików"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Zarchiwizowane książki"
@@ -991,7 +992,7 @@ msgstr "Zarchiwizowane książki"
msgid "Show archived books"
msgstr "Pokaż zarchiwizowane książki"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Lista książek"
@@ -1046,58 +1047,58 @@ msgstr "Książka została usunięta z półki: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Utwórz półkę"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Niestety nie możesz usunąć książki z tej półki %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Edytuj półkę"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Półka %(title)s została utworzona"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Półka %(title)s została zmieniona"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Wystąpił błąd"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Publiczna półka o nazwie '%(title)s' już istnieje."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Prywatna półka o nazwie '%(title)s' już istnieje."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Zmieniono kolejność półki: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Półka: „%(name)s”"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Błąd otwierania półki. Półka nie istnieje lub jest niedostępna"
@@ -1130,178 +1131,178 @@ msgstr "Dostępna jest nowa aktualizacja. Kliknij przycisk poniżej, aby zaktual
msgid "No release information available"
msgstr "Brak dostępnych informacji o wersji"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Odkrywaj (losowe książki)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Najpopularniejsze książki (najczęściej pobierane)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Książki pobrane przez %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Autor: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Wydawca: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Cykl: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Ocena: %(rating)s gwiazdek"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Format pliku: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Język: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Wyszukiwanie"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Szukaj"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "DLS"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Lista z ocenami"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Lista formatów"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Zadania"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Opublikowane po "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Opublikowane przed "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Ocena <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Ocena >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Status przeczytania = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
#, fuzzy
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "Błąd podczas wyszukiwania kolumn niestandardowych, proszę zrestartować Calibre-Web"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Książka została umieszczona w kolejce do wysłania do %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! 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:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Najpierw skonfiguruj adres e-mail Kindle..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Serwer e-mail nie jest skonfigurowany, skontaktuj się z administratorem!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Zarejestruj się"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Twój e-mail nie może się zarejestrować"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Wiadomość e-mail z potwierdzeniem została wysłana na Twoje konto e-mail."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Nie można aktywować uwierzytelniania LDAP"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Nie można zalogować: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Błędna nazwa użytkownika lub hasło"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Nowe hasło zostało wysłane na Twój adres e-mail"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Wprowadź prawidłową nazwę użytkownika, aby zresetować hasło"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Jesteś teraz zalogowany jako: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "Profil użytkownika %(name)s"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Zaktualizowano profil"
@@ -1363,7 +1364,7 @@ msgid "Send to Kindle E-mail Address"
msgstr "Adres e-mail dla wysyłania do Kindle"
# ???
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Panel administratora"
@@ -1373,7 +1374,7 @@ msgstr "Panel administratora"
msgid "Password"
msgstr "Hasło"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Wysyłanie"
@@ -1566,7 +1567,7 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1665,13 +1666,13 @@ msgstr "Konwertuj książkę"
msgid "Book Title"
msgstr "Tytuł książki"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Autor"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Opis"
@@ -1679,15 +1680,15 @@ msgstr "Opis"
msgid "Identifiers"
msgstr "Identyfikatory"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Rodzaj identyfikatora"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Wartość identyfikatora"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Usuń"
@@ -1708,90 +1709,90 @@ msgstr "ID cyklu"
msgid "Rating"
msgstr "Ocena"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Pobierz okładkę z linku (JPEG - obraz zostanie pobrany i zapisany w bazie)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Wyślij okładkę z dysku lokalnego"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Data publikacji"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Wydawca"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Język"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Tak"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Nie"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Wyślij format"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Po zapisaniu wyświetl szczegóły książki"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Uzyskaj metadane"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Zapisz"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Słowo kluczowe"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Szukaj słowa kluczowego "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
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:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Ładowanie..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Zamknij"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Źródło"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Błąd wyszukiwania!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Nie znaleziono! Spróbuj użyć innego słowa kluczowego."
@@ -2001,6 +2002,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Włącz wysyłanie"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Dozwolone formaty przesyłania"
@@ -2362,7 +2367,7 @@ msgid "Add to shelf"
msgstr "Dodaj do półki"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(publiczna)"
@@ -2437,7 +2442,7 @@ msgstr "Podaj nazwę domeny"
msgid "Denied Domains (Blacklist)"
msgstr "Domeny zabronione (czarna lista)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Następne"
@@ -2550,7 +2555,7 @@ msgstr "Książki sortowane według oceny"
msgid "Books ordered by file formats"
msgstr "Ksiązki sortowane według formatu"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Półki"
@@ -2571,50 +2576,50 @@ msgstr "Przełącz nawigację"
msgid "Search Library"
msgstr "Przeszukaj bibliotekę"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Wysyłanie…"
# ???
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Błąd"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Wysyłanie zakończone, przetwarzanie, proszę czekać…"
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Ustawienia"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Konto"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Wyloguj się"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Proszę nie odświeżać strony"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Przeglądaj"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Informacje"
# ???
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Poprzedni"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Szczegóły książki"
diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.mo b/cps/translations/pt_BR/LC_MESSAGES/messages.mo
index d1f3e954..38214e1f 100644
Binary files a/cps/translations/pt_BR/LC_MESSAGES/messages.mo and b/cps/translations/pt_BR/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po
index d2bcdb06..516ad4d6 100644
--- a/cps/translations/pt_BR/LC_MESSAGES/messages.po
+++ b/cps/translations/pt_BR/LC_MESSAGES/messages.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: br\n"
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -43,9 +43,9 @@ msgstr "Reconexão bem-sucedida"
msgid "Unknown command"
msgstr "Comando desconhecido"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Desconhecido"
@@ -68,7 +68,8 @@ msgid "Edit Users"
msgstr "Usuário Admin"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Todos"
@@ -272,7 +273,7 @@ msgstr "LDAP CACertificate, Certificados ou chave de localização não é váli
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "O banco de dados de configurações não é gravável"
@@ -302,7 +303,7 @@ msgstr "Atualização das configurações do servidor de e-mail"
msgid "Database Configuration"
msgstr "Configuração das Características"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Por favor, preencha todos os campos!"
@@ -347,7 +348,7 @@ msgstr "Editar usuário %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Usuário '%(nick)s' atualizado"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Ocorreu um erro desconhecido. Por favor, tente novamente mais tarde."
@@ -382,7 +383,7 @@ msgstr "Atualização das configurações do servidor de e-mail"
msgid "Password for user %(user)s reset"
msgstr "Senha para redefinição do usuário %(user)s"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Por favor, configure primeiro as configurações de correio SMTP..."
@@ -482,108 +483,108 @@ msgstr "não configurado"
msgid "Execution permissions missing"
msgstr "Faltam as permissões de execução"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "A coluna personalizada No.%(column)d não existe no banco de dados do calibre"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Formato do Livro Eliminado com Sucesso"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Livro Eliminado com Sucesso"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Oops! O título do livro seleccionado não está disponível. O arquivo não existe ou não é acessível"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "editar metadados"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s não é um idioma válido"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "A extensão de arquivo '%(ext)s' não pode ser enviada para este servidor"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "O arquivo a ser carregado deve ter uma extensão"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Falha ao criar o caminho %(path)s (Permission denied)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Falha ao armazenar o arquivo %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Erro de banco de dados: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Formato de arquivo %(ext)s adicionado a %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "Os identificadores não são sensíveis a maiúsculas ou minúsculas, mas sim a maiúsculas e minúsculas"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metadados atualizados com sucesso"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Livro de edição de erros, por favor verifique o ficheiro de registo para mais detalhes"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "O livro carregado provavelmente existe na biblioteca, considere mudar antes de carregar novo: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "O arquivo %(filename)s não pôde ser salvo no diretório temporário"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Falha ao mover arquivo de capa %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Arquivo %(file)s enviado"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Falta o formato de origem ou destino para a conversão"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Livro enfileirado com sucesso para conversão em %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Ocorreu um erro ao converter este livro: %(res)s"
@@ -691,7 +692,7 @@ msgstr "Arquivo %(file)s não encontrado no Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Caminho do livro %(path)s não encontrado no Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Encontrado uma conta existente para este endereço de e-mail."
@@ -773,7 +774,7 @@ msgstr "Configuração Kobo"
msgid "Register with %(provider)s"
msgstr "Registre-se com %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "agora você está logado como: '%(nickname)s'"
@@ -838,8 +839,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Login"
@@ -855,7 +856,7 @@ msgstr "O Token expirou"
msgid "Success! Please return to your device"
msgstr "Sucesso! Por favor, volte ao seu aparelho"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Livros"
@@ -880,7 +881,7 @@ msgstr "Livros descarregados"
msgid "Show Downloaded Books"
msgstr "Mostrar Livros Descarregados"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Livros Mais Bem Avaliados"
@@ -889,7 +890,7 @@ msgid "Show Top Rated Books"
msgstr "Mostrar os melhores livros avaliados"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Livros Lidos"
@@ -898,7 +899,7 @@ msgid "Show read and unread"
msgstr "Mostrar lido e não lido"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Livros Não Lidos"
@@ -916,7 +917,7 @@ msgid "Show Random Books"
msgstr "Mostrar Livros Aleatórios"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Categorias"
@@ -926,7 +927,7 @@ msgstr "Mostrar seleção de categoria"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Série"
@@ -944,7 +945,7 @@ msgid "Show author selection"
msgstr "Mostrar selecção de autor"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Editores"
@@ -954,7 +955,7 @@ msgstr "Mostrar selecção de editores"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Idiomas"
@@ -978,7 +979,7 @@ msgstr "Formatos de arquivo"
msgid "Show file formats selection"
msgstr "Mostrar seleção de formatos de arquivo"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Livros Arquivados"
@@ -986,7 +987,7 @@ msgstr "Livros Arquivados"
msgid "Show archived books"
msgstr "Mostrar livros arquivados"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Lista de Livros"
@@ -1041,58 +1042,58 @@ msgstr "O livro foi removido da estante: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Crie uma estante"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Desculpe, você não tem permissão para remover um livro desta estante: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Editar uma estante"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Estante %(title)s criada"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Estante %(title)s alterada"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Houve um erro"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Já existe uma estante pública com o nome '%(title)s' ."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Já existe uma estante privada com o nome'%(title)s' ."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Alterar ordem da Estante: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Estante: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Erro ao abrir estante. A estante não existe ou não está acessível"
@@ -1125,177 +1126,177 @@ msgstr "Uma nova atualização está disponível. Clique no botão abaixo para a
msgid "No release information available"
msgstr "Não há informações de lançamento disponíveis"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Descobrir (Livros Aleatórios)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Hot Books (Os Mais Descarregados)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Livros baixados por %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Autor: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editor: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Série: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Avaliação: %(rating)s estrelas"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Formato do arquivo: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Categoria: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Idioma: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Pesquisa Avançada"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Pesquisa"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Downloads"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Lista de classificações"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Lista de formatos de arquivo"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Tarefas"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Publicado depois de "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Publicado antes de "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Avaliação <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Avaliação >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Status de leitura = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Livro enfileirado com sucesso para envio para %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Ups! Ocorreu um erro ao enviar este livro: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Por favor, atualize seu perfil com um endereço de e-mail válido para Kindle."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "O servidor de E-Mail não está configurado, por favor contacte o seu administrador!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Registe-se"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Seu e-mail não tem permissão para registrar"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "O e-mail de confirmação foi enviado para a sua conta de e-mail."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Não é possível ativar a autenticação LDAP"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Login de reserva como:'%(nickname)s', servidor LDAP não acessível ou usuário desconhecido"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Não foi possível fazer o login: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Nome de usuário ou senha incorretos"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Nova senha foi enviada para seu endereço de e-mail"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Por favor, digite um nome de usuário válido para redefinir a senha"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Você agora está logado como: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "Perfil de %(name)s's"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Perfil atualizado"
@@ -1356,7 +1357,7 @@ msgstr "Endereço de e-mail"
msgid "Send to Kindle E-mail Address"
msgstr "Enviar para o endereço de e-mail do Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Admin"
@@ -1366,7 +1367,7 @@ msgstr "Admin"
msgid "Password"
msgstr "Senha"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Upload"
@@ -1558,7 +1559,7 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1656,13 +1657,13 @@ msgstr "Converter livro"
msgid "Book Title"
msgstr "Título do Livro"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Autor"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Descrição"
@@ -1670,15 +1671,15 @@ msgstr "Descrição"
msgid "Identifiers"
msgstr "Identificadores"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Tipo de identificador"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Valor do Identificador"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Remover"
@@ -1699,90 +1700,90 @@ msgstr "Identificação da série"
msgid "Rating"
msgstr "Classificação"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Buscar capa na URL (JPEG - Imagem será baixada e armazenada na base de dados)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Upload de capa do disco local"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Data de Publicação"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Editora"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Idioma"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Sim"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Não"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Formato de upload"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Ver Livro ao salvar"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Buscar Metadados"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Salvar"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Palavra-chave"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Pesquisar palavra-chave "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Clique na capa para carregar os metadados para o formulário"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "A carregar..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Fechar"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Fonte"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Erro de busca!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Nenhum resultado(s) encontrado(s)! Por favor, tente outra palavra-chave."
@@ -1987,6 +1988,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Habilitar Uploads"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Upload de formatos de arquivo permitidos"
@@ -2348,7 +2353,7 @@ msgid "Add to shelf"
msgstr "Adicionar à estante"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Público)"
@@ -2423,7 +2428,7 @@ msgstr "Digite o nome do domínio"
msgid "Denied Domains (Blacklist)"
msgstr "Domínios negados (Blacklist)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Próximo"
@@ -2534,7 +2539,7 @@ msgstr "Livros encomendados por Rating"
msgid "Books ordered by file formats"
msgstr "Livros ordenados por formatos de arquivo"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Prateleiras"
@@ -2555,48 +2560,48 @@ msgstr "Alternar a navegação"
msgid "Search Library"
msgstr "Biblioteca de Pesquisa"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Enviando..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Erro"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Upload feito, processando, por favor aguarde ..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Configurações"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Conta"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Sair"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Por favor, não atualize a página"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Navegue em"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Sobre"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Anterior"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Detalhes do Livro"
diff --git a/cps/translations/ru/LC_MESSAGES/messages.mo b/cps/translations/ru/LC_MESSAGES/messages.mo
index 486bb167..dad3b9e5 100644
Binary files a/cps/translations/ru/LC_MESSAGES/messages.mo and b/cps/translations/ru/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po
index 0f75ad17..62b48c02 100644
--- a/cps/translations/ru/LC_MESSAGES/messages.po
+++ b/cps/translations/ru/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-04-29 01:20+0400\n"
"Last-Translator: ZIZA\n"
"Language: ru\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -47,9 +47,9 @@ msgstr "Успешно переподключено"
msgid "Unknown command"
msgstr "Неизвестная команда"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Неизвестно"
@@ -72,7 +72,8 @@ msgid "Edit Users"
msgstr "Управление сервером"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Все"
@@ -275,7 +276,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -305,7 +306,7 @@ msgstr "Настройки E-mail сервера обновлены"
msgid "Database Configuration"
msgstr "Дополнительный Настройки"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Пожалуйста, заполните все поля!"
@@ -350,7 +351,7 @@ msgstr "Изменить пользователя %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Пользователь '%(nick)s' обновлён"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Неизвестная ошибка. Попробуйте позже."
@@ -385,7 +386,7 @@ msgstr "Настройки E-mail сервера обновлены"
msgid "Password for user %(user)s reset"
msgstr "Пароль для пользователя %(user)s сброшен"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Пожалуйста, сперва настройте параметры SMTP....."
@@ -485,108 +486,108 @@ msgstr "не настроено"
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Невозможно открыть книгу. Файл не существует или недоступен"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "изменить метаданные"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s не допустимый язык"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Запрещена загрузка файлов с расширением '%(ext)s'"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Загружаемый файл должен иметь расширение"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Ошибка при создании пути %(path)s (Доступ запрещён)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Не удалось сохранить файл %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Формат файла %(ext)s добавлен в %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Метаданные обновлены"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Ошибка редактирования книги. Пожалуйста, проверьте лог-файл для дополнительной информации"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Загруженная книга, вероятно, существует в библиотеке, перед тем как загрузить новую, рассмотрите возможность изменения: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Файл %(filename)s не удалось сохранить во временную папку"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Файл %(file)s загружен"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Исходный или целевой формат для конвертирования отсутствует"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Книга успешно поставлена в очередь для конвертирования в %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Произошла ошибка при конвертирования этой книги: %(res)s"
@@ -694,7 +695,7 @@ msgstr "Файл %(file)s не найден на Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Путь книги %(path)s не найден на Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Этот адрес электронной почты уже зарегистрирован."
@@ -776,7 +777,7 @@ msgstr "Настройка Kobo"
msgid "Register with %(provider)s"
msgstr "Зарегистрируйтесь с %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "вы вошли как пользователь '%(nickname)s'"
@@ -841,8 +842,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Логин"
@@ -858,7 +859,7 @@ msgstr "Ключ просрочен"
msgid "Success! Please return to your device"
msgstr "Успешно! Пожалуйста, проверьте свое устройство"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Книги"
@@ -883,7 +884,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Книги с наилучшим рейтингом"
@@ -892,7 +893,7 @@ msgid "Show Top Rated Books"
msgstr "Показывать книги с наивысшим рейтингом"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Прочитанные Книги"
@@ -901,7 +902,7 @@ msgid "Show read and unread"
msgstr "Показывать прочитанные и непрочитанные"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Непрочитанные Книги"
@@ -919,7 +920,7 @@ msgid "Show Random Books"
msgstr "Показывать Случайные Книги"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Категории"
@@ -929,7 +930,7 @@ msgstr "Показывать выбор категории"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Серии"
@@ -947,7 +948,7 @@ msgid "Show author selection"
msgstr "Показывать выбор автора"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Издатели"
@@ -957,7 +958,7 @@ msgstr "Показать выбор издателя"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Языки"
@@ -981,7 +982,7 @@ msgstr "Форматы файлов"
msgid "Show file formats selection"
msgstr "Показать выбор форматов файлов"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -989,7 +990,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1044,58 +1045,58 @@ msgstr "Книга удалена с полки: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Создать полку"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Извините, вы не можете удалить книгу с полки: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Изменить полку"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Создана полка %(title)s"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Колка %(title)s изменена"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Произошла ошибка"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "Публичная полка с названием '%(title)s' уже существует."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "Приватная полка с названием '%(title)s' уже существует."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Изменить расположение полки '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Полка: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Ошибка открытия Полки. Полка не существует или недоступна"
@@ -1128,177 +1129,177 @@ msgstr "Новое обновление доступно. Нажмите на к
msgid "No release information available"
msgstr "Информация о выпуске недоступна"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Обзор (Случайные Книги)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Популярные книги (часто загружаемые)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Автор: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Издатель: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Серии: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Оценка: %(rating)s звезды(а)"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Формат файла: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Категория: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Язык: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Расширенный поиск"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Поиск"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Скачать"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Список рейтингов"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Список форматов файлов"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Задания"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Опубликовано после "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Опубликовано до "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Рейтинг <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Рейтинг >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Книга успешно поставлена в очередь для отправки на %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "При отправке этой книги произошла ошибка: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Пожалуйста, сначала настройте e-mail на вашем kindle..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Сервер электронной почты не настроен, обратитесь к администратору !"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Зарегистрироваться"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Ваш e-mail не подходит для регистрации"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Письмо с подтверждением отправлено вам на e-mail."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Не удается активировать LDAP аутентификацию"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Резервный вход в систему как: '%(nickname)s', LDAP-сервер недоступен или пользователь не известен"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Не удалось войти: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Ошибка в имени пользователя или пароле"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Новый пароль был отправлен на ваш адрес электронной почты"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Пожалуйста, введите действительное имя пользователя для сброса пароля"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Вы вошли как: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "Профиль %(name)s's"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Профиль обновлён"
@@ -1359,7 +1360,7 @@ msgstr "Адрес электронной почты"
msgid "Send to Kindle E-mail Address"
msgstr "Отправить на Kindle Адрес электронной почты"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Управление"
@@ -1369,7 +1370,7 @@ msgstr "Управление"
msgid "Password"
msgstr "Пароль"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Загрузить"
@@ -1561,7 +1562,7 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1659,13 +1660,13 @@ msgstr "Конвертировать книгу"
msgid "Book Title"
msgstr "Название книги"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Автор"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Описание"
@@ -1673,15 +1674,15 @@ msgstr "Описание"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1702,90 +1703,90 @@ msgstr "ID Серии"
msgid "Rating"
msgstr "Рейтинг"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "URL обложки(jpg, обложка загружается и сохраняется в базе данных, после этого поле снова пустое)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Загрузить обложку с диска"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Опубликовано"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Издатель"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Язык"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Да"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Нет"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Загружаемый формат"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Просмотреть книгу после сохранения"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Получить метаданные"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Сохранить"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Ключевое слово"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Поиск по ключевому слову "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Нажмите на обложку, чтобы получить метаданные"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Загрузка..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Закрыть"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Источник"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Ошибка поиска!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Результат(ы) не найдены! Попробуйте другое ключевое слово."
@@ -1990,6 +1991,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Разрешить загрузку на сервер"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2351,7 +2356,7 @@ msgid "Add to shelf"
msgstr "Добавить на книжную полку"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Публичная)"
@@ -2426,7 +2431,7 @@ msgstr "Введите доменное имя"
msgid "Denied Domains (Blacklist)"
msgstr "Запрещенные домены (черный список)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Далее"
@@ -2537,7 +2542,7 @@ msgstr "Книги, упорядоченные по рейтингу"
msgid "Books ordered by file formats"
msgstr "Книги отсортированы по формату файла"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Полки"
@@ -2558,48 +2563,48 @@ msgstr "Включить навигацию"
msgid "Search Library"
msgstr "Поиск в библиотеке"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Загружается..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Ошибка"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Загрузка завершена, обработка, пожалуйста, подождите..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Настройки"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Учетная запись"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Выход"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Пожалуйста не обновляйте страницу"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Просмотр"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "О программе"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Предыдущий"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Подробнее о книге"
diff --git a/cps/translations/sv/LC_MESSAGES/messages.mo b/cps/translations/sv/LC_MESSAGES/messages.mo
index 8ff53494..fbf3c9e5 100644
Binary files a/cps/translations/sv/LC_MESSAGES/messages.mo and b/cps/translations/sv/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/sv/LC_MESSAGES/messages.po b/cps/translations/sv/LC_MESSAGES/messages.po
index 71389676..7e960eea 100644
--- a/cps/translations/sv/LC_MESSAGES/messages.po
+++ b/cps/translations/sv/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2021-05-13 11:00+0000\n"
"Last-Translator: Jonatan Nyberg \n"
"Language: sv\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr "Återanslutning lyckades"
msgid "Unknown command"
msgstr "Okänt kommando"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Okänd"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr "Redigera användare"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Alla"
@@ -272,7 +273,7 @@ msgstr "LDAP-certifikat, certifikat eller nyckelplats är inte giltigt, vänlige
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "Inställningar för DB är inte skrivbara"
@@ -302,7 +303,7 @@ msgstr "E-postserverinställningar uppdaterade"
msgid "Database Configuration"
msgstr "Funktion konfiguration"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Fyll i alla fält!"
@@ -346,7 +347,7 @@ msgstr "Redigera användaren %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Användaren '%(nick)s' uppdaterad"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Ett okänt fel uppstod. Försök igen senare."
@@ -382,7 +383,7 @@ msgstr "E-postserverinställningar uppdaterade"
msgid "Password for user %(user)s reset"
msgstr "Lösenord för användaren %(user)s återställd"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Konfigurera SMTP-postinställningarna först..."
@@ -482,108 +483,108 @@ msgstr "inte konfigurerad"
msgid "Execution permissions missing"
msgstr "Körningstillstånd saknas"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "Anpassad kolumn n.%(column)d finns inte i calibre-databasen"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "Bokformat har tagits bort"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "Boken har tagits bort"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Hoppsan! Vald boktitel är inte tillgänglig. Filen finns inte eller är inte tillgänglig"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "redigera metadata"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s är inte ett giltigt språk"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Filändelsen '%(ext)s' får inte laddas upp till den här servern"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Filen som ska laddas upp måste ha en ändelse"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Det gick inte att skapa sökväg %(path)s (behörighet nekad)."
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Det gick inte att lagra filen %(file)s."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "Databasfel: %(error)s."
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Filformatet %(ext)s lades till %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "Identifierare är inte skiftlägeskänsliga, skriver över gammal identifierare"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metadata uppdaterades"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Det gick inte att redigera boken, kontrollera loggfilen för mer information"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Uppladdad bok finns förmodligen i biblioteket, överväg att ändra innan du laddar upp nya: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Filen %(filename)s kunde inte sparas i temp dir"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Det gick inte att flytta omslagsfil %(file)s: %(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "Filen %(file)s uppladdad"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Källa eller målformat för konvertering saknas"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Boken är i kö för konvertering till %(book_format)s"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Det gick inte att konvertera den här boken: %(res)s"
@@ -691,7 +692,7 @@ msgstr "Filen %(file)s hittades inte på Google Drive"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Boksökvägen %(path)s hittades inte på Google Drive"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr "Hittade ett befintligt konto för den här e-postadressen"
@@ -772,7 +773,7 @@ msgstr "Kobo-installation"
msgid "Register with %(provider)s"
msgstr "Registrera dig med %(provider)s"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "du är nu inloggad som: \"%(nickname)s\""
@@ -837,8 +838,8 @@ msgstr "Google Oauth-fel: {}"
msgid "{} Stars"
msgstr "{} stjärnor"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Logga in"
@@ -854,7 +855,7 @@ msgstr "Token har löpt ut"
msgid "Success! Please return to your device"
msgstr "Lyckades! Vänligen återvänd till din enhet"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "Böcker"
@@ -879,7 +880,7 @@ msgstr "Hämtade böcker"
msgid "Show Downloaded Books"
msgstr "Visa hämtade böcker"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Bäst rankade böcker"
@@ -888,7 +889,7 @@ msgid "Show Top Rated Books"
msgstr "Visa böcker med bästa betyg"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Lästa böcker"
@@ -897,7 +898,7 @@ msgid "Show read and unread"
msgstr "Visa lästa och olästa"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Olästa böcker"
@@ -915,7 +916,7 @@ msgid "Show Random Books"
msgstr "Visa slumpmässiga böcker"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Kategorier"
@@ -925,7 +926,7 @@ msgstr "Visa kategorival"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Serier"
@@ -943,7 +944,7 @@ msgid "Show author selection"
msgstr "Visa författarval"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Förlag"
@@ -953,7 +954,7 @@ msgstr "Visa urval av förlag"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Språk"
@@ -977,7 +978,7 @@ msgstr "Filformat"
msgid "Show file formats selection"
msgstr "Visa val av filformat"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "Arkiverade böcker"
@@ -985,7 +986,7 @@ msgstr "Arkiverade böcker"
msgid "Show archived books"
msgstr "Visa arkiverade böcker"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "Boklista"
@@ -1040,58 +1041,58 @@ msgstr "Boken har tagits bort från hyllan: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Skapa en hylla"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Tyvärr har du inte rätt att ta bort en bok från den här hyllan: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Redigera en hylla"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Hyllan %(title)s skapad"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Hyllan %(title)s ändrad"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Det fanns ett fel"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "En offentlig hylla med namnet \"%(title)s\" finns redan."
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "En privat hylla med namnet \"%(title)s\" finns redan."
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Ändra ordning på hyllan: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Hylla: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Fel vid öppning av hyllan. Hylla finns inte eller är inte tillgänglig"
@@ -1124,177 +1125,177 @@ msgstr "En ny uppdatering är tillgänglig. Klicka på knappen nedan för att up
msgid "No release information available"
msgstr "Ingen versionsinformation tillgänglig"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Upptäck (slumpmässiga böcker)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Heta böcker (mest hämtade)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "Hämtade böcker av %(user)s"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Författare: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Förlag: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Serier: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Betyg: %(rating)s stars"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Filformat: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Kategori: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Språk: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Avancerad sökning"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Sök"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "Hämtningar"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Betygslista"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Lista över filformat"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Uppgifter"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Publicerad efter "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Publicerad före "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Betyg <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Betyg >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "Lässtatus = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Boken är i kö för att skicka till %(kindlemail)s"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Det gick inte att skicka den här boken: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Konfigurera din kindle-e-postadress först..."
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "E-postservern är inte konfigurerad, kontakta din administratör!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Registrera"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "Din e-post är inte tillåten att registrera"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Bekräftelsemail skickades till ditt e-postkonto."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "Det går inte att aktivera LDAP-autentisering"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "Det gick inte att logga in: %(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Fel användarnamn eller lösenord"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Nytt lösenord skickades till din e-postadress"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Ange giltigt användarnamn för att återställa lösenordet"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Du är nu inloggad som: \"%(nickname)s\""
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)ss profil"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profilen uppdaterad"
@@ -1355,7 +1356,7 @@ msgstr "E-post"
msgid "Send to Kindle E-mail Address"
msgstr "Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Administratör"
@@ -1365,7 +1366,7 @@ msgstr "Administratör"
msgid "Password"
msgstr "Lösenord"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Ladda upp"
@@ -1557,7 +1558,7 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1655,13 +1656,13 @@ msgstr "Konvertera boken"
msgid "Book Title"
msgstr "Boktitel"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Författare"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Beskrivning"
@@ -1669,15 +1670,15 @@ msgstr "Beskrivning"
msgid "Identifiers"
msgstr "Identifierare"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "Identifierartyp"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "Identifierarvärde"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "Ta bort"
@@ -1698,90 +1699,90 @@ msgstr "Serie-ID"
msgid "Rating"
msgstr "Betyg"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "Omslagswebbadress (jpg, omslag hämtas och lagras i databasen, fältet är efteråt tomt igen)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "Ladda upp omslag från lokal enhet"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Publiceringsdatum"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Förlag"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Språk"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Ja"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Nej"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Ladda upp format"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "Visa bok vid Spara"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Hämta metadata"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "Spara"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Sökord"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Sök sökord "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Klicka på omslaget för att läsa in metadata till formuläret"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Läser in..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Stäng"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Källa"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Sökningsfel!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "Inga resultat hittades! Försök med ett annat sökord."
@@ -1986,6 +1987,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Aktivera uppladdning"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "Tillåtna filformat för uppladdning"
@@ -2347,7 +2352,7 @@ msgid "Add to shelf"
msgstr "Lägg till hyllan"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Publik)"
@@ -2423,7 +2428,7 @@ msgstr "Ange domännamn"
msgid "Denied Domains (Blacklist)"
msgstr "Avvisade domäner för registrering"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Nästa"
@@ -2534,7 +2539,7 @@ msgstr "Böcker sorterade efter Betyg"
msgid "Books ordered by file formats"
msgstr "Böcker ordnade av filformat"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "Hyllor"
@@ -2555,48 +2560,48 @@ msgstr "Växla navigering"
msgid "Search Library"
msgstr "Sök i bibliotek"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Laddar upp..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Fel"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Uppladdning klar, bearbetning, vänligen vänta ..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Inställningar"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Konto"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Logga ut"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "Vänligen uppdatera inte sidan"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Bläddra"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Om"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Föregående"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Bokdetaljer"
diff --git a/cps/translations/tr/LC_MESSAGES/messages.mo b/cps/translations/tr/LC_MESSAGES/messages.mo
index 4b905164..1aa97504 100644
Binary files a/cps/translations/tr/LC_MESSAGES/messages.mo and b/cps/translations/tr/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/tr/LC_MESSAGES/messages.po b/cps/translations/tr/LC_MESSAGES/messages.po
index 6abf48bb..1595fd6d 100644
--- a/cps/translations/tr/LC_MESSAGES/messages.po
+++ b/cps/translations/tr/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-04-23 22:47+0300\n"
"Last-Translator: iz \n"
"Language: tr\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Bilinmeyen"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr ""
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "Tümü"
@@ -269,7 +270,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -299,7 +300,7 @@ msgstr "E-posta sunucusu ayarları güncellendi"
msgid "Database Configuration"
msgstr "Özellik Yapılandırması"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Lütfen tüm alanları doldurun!"
@@ -344,7 +345,7 @@ msgstr "%(nick)s kullanıcısını düzenle"
msgid "User '%(nick)s' updated"
msgstr "'%(nick)s' kullanıcısı güncellendi"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "Bilinmeyen bir hata oluştu. Lütfen daha sonra tekrar deneyiniz."
@@ -379,7 +380,7 @@ msgstr "E-posta sunucusu ayarları güncellendi"
msgid "Password for user %(user)s reset"
msgstr "%(user)s kullanıcısının şifresi sıfırlandı"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Lütfen önce SMTP e-posta ayarlarını ayarlayın..."
@@ -478,108 +479,108 @@ msgstr "ayarlanmadı"
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr ""
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "metaveri düzenle"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s geçerli bir dil değil"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "'%(ext)s' uzantılı dosyaların bu sunucuya yüklenmesine izin verilmiyor"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Yüklenecek dosyanın mutlaka bir uzantısı olması gerekli"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "%(path)s dizini oluşturulamadı. (İzin reddedildi)"
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "%(file)s dosyası kaydedilemedi."
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "%(book)s kitabına %(ext)s dosya biçimi eklendi"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "Metaveri başarıyla güncellendi"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "eKitap düzenlenirken hata oluştu, detaylar için lütfen log dosyasını kontrol edin"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Yüklenen eKitap muhtemelen kitaplıkta zaten var. Yenisini yüklemeden değiştirmeyi düşünün: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "%(filename)s dosyası geçici dizine kaydedilemedi"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "%(file)s dosyası yüklendi"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "Dönüştürme için kaynak ya da hedef biçimi eksik"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "eKitap %(book_format)s formatlarına dönüştürülmek üzere başarıyla sıraya alındı"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Bu eKitabı dönüştürürken bir hata oluştu: %(res)s"
@@ -687,7 +688,7 @@ msgstr "%(file)s dosyası Google Drive'da bulunamadı"
msgid "Book path %(path)s not found on Google Drive"
msgstr "eKitap yolu %(path)s Google Drive'da bulunamadı"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
#, fuzzy
msgid "Found an existing account for this e-mail address"
msgstr "Bu e-posta adresi için bir hesap mevcut."
@@ -769,7 +770,7 @@ msgstr ""
msgid "Register with %(provider)s"
msgstr "%(provider)s ile Kaydol"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "giriş yaptınız: '%(nickname)s'"
@@ -834,8 +835,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Giriş"
@@ -851,7 +852,7 @@ msgstr "Token süresi doldu"
msgid "Success! Please return to your device"
msgstr "Başarılı! Lütfen cihazınıza dönün"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "eKitaplar"
@@ -876,7 +877,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr ""
@@ -885,7 +886,7 @@ msgid "Show Top Rated Books"
msgstr ""
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Okunanlar"
@@ -894,7 +895,7 @@ msgid "Show read and unread"
msgstr "Okunan ve okunmayanları göster"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Okunmamışlar"
@@ -912,7 +913,7 @@ msgid "Show Random Books"
msgstr "Rastgele Kitap Göster"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Kategoriler"
@@ -922,7 +923,7 @@ msgstr "Kategori seçimini göster"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Seriler"
@@ -940,7 +941,7 @@ msgid "Show author selection"
msgstr "Yazar seçimini göster"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "Yayıncılar"
@@ -950,7 +951,7 @@ msgstr "Yayıncı seçimini göster"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Diller"
@@ -974,7 +975,7 @@ msgstr "Biçimler"
msgid "Show file formats selection"
msgstr "Dosya biçimi seçimini göster"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -982,7 +983,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1037,58 +1038,58 @@ msgstr "eKitap kitaplıktan silindi: %(sname)s"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Kitaplık oluştur"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Maalesef bu kitaplıktan eKitap silmenize izin verilmiyor: %(sname)s"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Kitaplığı düzenle"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "%(title)s kitaplığı oluşturuldu."
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "%(title)s kitaplığı değiştirildi"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Bir hata oluştu"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Kitaplık sıralamasını değiştir: '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Kitaplık: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Kitaplık açılırken hata oluştu. Kitaplık mevcut değil ya da erişilebilir değil"
@@ -1121,177 +1122,177 @@ msgstr "Yeni bir güncelleme mevcut. Son sürüme güncellemek için aşağıdak
msgid "No release information available"
msgstr "Sürüm bilgisi mevcut değil"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Keşfet (Rastgele)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr ""
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "Yazar: %(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "Yayınevi: %(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Seri: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Değerlendirme: %(rating)s yıldız"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "Biçim: %(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Kategori: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Dil: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Gelişmiş Arama"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Ara"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr ""
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "Değerlendirme listesi"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "Biçim listesi"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "Görevler"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "Yayınlanma (sonra)"
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Yayınlanma (önce)"
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Değerlendirme <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Değerlendirme >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "%(kindlemail)s'a gönderilmek üzere başarıyla sıraya alındı"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr ""
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr ""
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "E-Posta sunucusu ayarlanmadı, lütfen yöneticinizle iletişime geçin!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Kayıt ol"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "E-posta adresinizle kaydolunmasına izin verilmiyor"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Onay e-Postası hesabınıza gönderildi."
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "LDAP Kimlik Doğrulaması etkinleştirilemiyor"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Yanlış Kullanıcı adı ya da Şifre"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "Yeni şifre e-Posta adresinize gönderildi"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "Şifrenizi sıfırlayabilmek için lütfen geçerli bir kullanıcı adı giriniz"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Giriş yaptınız: '%(nickname)s'"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s Profili"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Profil güncellendi"
@@ -1352,7 +1353,7 @@ msgstr ""
msgid "Send to Kindle E-mail Address"
msgstr ""
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Yönetim"
@@ -1362,7 +1363,7 @@ msgstr "Yönetim"
msgid "Password"
msgstr "Şifre"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Yükleme"
@@ -1554,7 +1555,7 @@ msgid "OK"
msgstr ""
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1652,13 +1653,13 @@ msgstr "eKitabı dönüştür"
msgid "Book Title"
msgstr "Kitap Adı"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Yazar"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Açıklama"
@@ -1666,15 +1667,15 @@ msgstr "Açıklama"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1695,90 +1696,90 @@ msgstr ""
msgid "Rating"
msgstr "Değerlendirme"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr ""
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr ""
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr ""
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Yayınevi"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Dil"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Evet"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Hayır"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr ""
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr ""
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr ""
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Anahtar Kelime"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr "Anahtar kelime ara"
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Forma metaveri yüklemek için kapağa tıklayın"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Yükleniyor..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Kapak"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Kaynak"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Arama hatası!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr ""
@@ -1982,6 +1983,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr ""
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2342,7 +2347,7 @@ msgid "Add to shelf"
msgstr "Kitaplığa ekle"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2417,7 +2422,7 @@ msgstr "Servis adı girin"
msgid "Denied Domains (Blacklist)"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Sonraki"
@@ -2528,7 +2533,7 @@ msgstr ""
msgid "Books ordered by file formats"
msgstr "Biçime göre sıralanmış eKitaplar"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr ""
@@ -2549,48 +2554,48 @@ msgstr ""
msgid "Search Library"
msgstr ""
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Yükleniyor..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "Hata"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "Yükleme tamamlandı, işleniyor, lütfen bekleyin..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Ayarlar"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "Hesap"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Çıkış"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr ""
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Gözat"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Hakkında"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Önceki"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "eKitap Detayları"
diff --git a/cps/translations/uk/LC_MESSAGES/messages.mo b/cps/translations/uk/LC_MESSAGES/messages.mo
index 15e812be..30a10969 100644
Binary files a/cps/translations/uk/LC_MESSAGES/messages.mo and b/cps/translations/uk/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/uk/LC_MESSAGES/messages.po b/cps/translations/uk/LC_MESSAGES/messages.po
index 40684c5c..c9593fc3 100644
--- a/cps/translations/uk/LC_MESSAGES/messages.po
+++ b/cps/translations/uk/LC_MESSAGES/messages.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
"Last-Translator: ABIS Team \n"
"Language: uk\n"
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -45,9 +45,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "Невідомий"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr "Керування сервером"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr ""
@@ -272,7 +273,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -302,7 +303,7 @@ msgstr "З'єднання з базою даних закрите"
msgid "Database Configuration"
msgstr "Особливі налаштування"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "Будь-ласка, заповніть всі поля!"
@@ -346,7 +347,7 @@ msgstr "Змінити користувача %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "Користувача '%(nick)s' оновлено"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr ""
@@ -381,7 +382,7 @@ msgstr ""
msgid "Password for user %(user)s reset"
msgstr ""
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "Будь-ласка, спочатку сконфігуруйте параметри SMTP"
@@ -479,108 +480,108 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Неможливо відкрити книгу. Файл не існує або немає доступу."
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "змінити метадані"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
+#: cps/editbooks.py:490 cps/editbooks.py:954
#, python-format
-msgid "%(langname)s is not a valid language"
+msgid "'%(langname)s' is not a valid language"
msgstr ""
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr ""
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "Завантажувальний файл повинен мати розширення"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr ""
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr ""
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr ""
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "Сталась помилка при редагуванні книги. Будь-ласка, перевірте лог-файл для деталей"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr ""
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr ""
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr ""
@@ -688,7 +689,7 @@ msgstr ""
msgid "Book path %(path)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr ""
@@ -769,7 +770,7 @@ msgstr ""
msgid "Register with %(provider)s"
msgstr ""
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Ви увійшли як користувач: '%(nickname)s'"
@@ -834,8 +835,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "Ім'я користувача"
@@ -851,7 +852,7 @@ msgstr "Час дії токено вичерпано"
msgid "Success! Please return to your device"
msgstr "Вдалося! Будь-ласка, поверніться до вашого пристрою"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr ""
@@ -876,7 +877,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "Книги з найкращим рейтингом"
@@ -885,7 +886,7 @@ msgid "Show Top Rated Books"
msgstr "Показувати книги з найвищим рейтингом"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "Прочитані книги"
@@ -894,7 +895,7 @@ msgid "Show read and unread"
msgstr "Показувати прочитані та непрочитані книги"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "Непрочитані книги"
@@ -912,7 +913,7 @@ msgid "Show Random Books"
msgstr "Показувати випадкові книги"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "Категорії"
@@ -922,7 +923,7 @@ msgstr "Показувати вибір категорії"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "Серії"
@@ -940,7 +941,7 @@ msgid "Show author selection"
msgstr "Показувати вибір автора"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr ""
@@ -950,7 +951,7 @@ msgstr ""
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "Мови"
@@ -974,7 +975,7 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -982,7 +983,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1037,58 +1038,58 @@ msgstr "Книга видалена з книжкової полиці: %(sname)
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "створити книжкову полицю"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
#, fuzzy
msgid "Sorry you are not allowed to edit this shelf"
msgstr "Вибачте, але у вас немає дозволу для видалення книги з цієї полиці"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "Змінити книжкову полицю"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "Створена книжкова полиця %(title)s"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Книжкова полиця %(title)s змінена"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "Сталась помилка"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Змінити розташування книжкової полиці '%(name)s'"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Книжкова полиця: '%(name)s'"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Помилка при відкриванні полиці. Полиця не існує або до неї відсутній доступ"
@@ -1121,177 +1122,177 @@ msgstr ""
msgid "No release information available"
msgstr ""
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "Огляд (випадкові книги)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "Популярні книги (найбільш завантажувані)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "Серії: %(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr ""
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "Категорія: %(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "Мова: %(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "Розширений пошук"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "Пошук"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "DLS"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr ""
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr ""
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr ""
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr ""
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "Опубліковано до"
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr ""
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr ""
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr ""
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Помилка при відправці книги: %(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr ""
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "Зареєструватись"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr ""
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr ""
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "Помилка в імені користувача або паролі"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "Профіль %(name)s"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "Профіль оновлено"
@@ -1352,7 +1353,7 @@ msgstr ""
msgid "Send to Kindle E-mail Address"
msgstr "Kindle"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "Адмін"
@@ -1362,7 +1363,7 @@ msgstr "Адмін"
msgid "Password"
msgstr "Пароль"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "Додати нову книгу"
@@ -1554,7 +1555,7 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1652,13 +1653,13 @@ msgstr ""
msgid "Book Title"
msgstr "Назва книги"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "Автор"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "Опис"
@@ -1666,15 +1667,15 @@ msgstr "Опис"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1695,90 +1696,90 @@ msgstr ""
msgid "Rating"
msgstr "Рейтинг"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr ""
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr ""
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "Опубліковано"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "Видавець"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "Мова"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "Так"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "Ні"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "Формат завантаження"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "переглянути книгу після редагування"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "Отримати метадані"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "Ключове слово"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " Пошук по ключовому слову"
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "Натисніть на обкладинку, щоб отримати метадані"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "Завантаження..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "Закрити"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "Джерело"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "Помилка пошуку!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr ""
@@ -1981,6 +1982,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "Дозволити завантаження книг на сервер"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2342,7 +2347,7 @@ msgid "Add to shelf"
msgstr "Додати на книжкову полицю"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2417,7 +2422,7 @@ msgstr ""
msgid "Denied Domains (Blacklist)"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Далі"
@@ -2527,7 +2532,7 @@ msgstr ""
msgid "Books ordered by file formats"
msgstr ""
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr ""
@@ -2548,48 +2553,48 @@ msgstr "Включити навігацію"
msgid "Search Library"
msgstr ""
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "Завантаження..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr ""
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "Налаштування"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr ""
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "Вийти"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr ""
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "Перегляд"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Про програму"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Попередній перегляд"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Деталі"
diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo
index bdf51f02..2b44952e 100644
Binary files a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo and b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
index f8643957..c92be615 100644
--- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
+++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-09-27 22:18+0800\n"
"Last-Translator: xlivevil \n"
"Language: zh_CN\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr "重新连接成功"
msgid "Unknown command"
msgstr "未知命令"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "未知"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr "管理用户"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "全部"
@@ -268,7 +269,7 @@ msgstr "LDAP CA证书、证书或密钥位置无效,请输入正确的路径"
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "设置数据库不可写入"
@@ -297,7 +298,7 @@ msgstr "邮件服务器设置已更新"
msgid "Database Configuration"
msgstr "数据库配置"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "请填写所有字段!"
@@ -341,7 +342,7 @@ msgstr "编辑用户 %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "用户“%(nick)s”已更新"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "发生一个未知错误,请稍后再试。"
@@ -376,7 +377,7 @@ msgstr "邮件服务器设置已更新"
msgid "Password for user %(user)s reset"
msgstr "用户 %(user)s 的密码已重置"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "请先配置SMTP邮箱设置..."
@@ -475,108 +476,108 @@ msgstr "未配置"
msgid "Execution permissions missing"
msgstr "缺少执行权限"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "自定义列号:%(column)d在Calibre数据库中不存在"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "书籍格式已成功删除"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "书籍已成功删除"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "糟糕!选择书名无法打开。文件不存在或者文件不可访问"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "编辑元数据"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex)s 不是一个有效的数值,忽略"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s 不是一种有效语言"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "不能上传文件扩展名为“%(ext)s”的文件到此服务器"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "要上传的文件必须具有扩展名"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "创建路径 %(path)s 失败(权限拒绝)。"
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "保存文件 %(file)s 失败。"
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "数据库错误:%(error)s。"
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "已添加 %(ext)s 格式到 %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "标识符不区分大小写,覆盖旧标识符"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "已成功更新元数据"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "编辑书籍出错,请检查日志文件以获取详细信息"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "上传的书籍可能已经存在,建议修改后重新上传: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "文件 %(filename)s 无法保存到临时目录"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "移动封面文件失败 %(file)s:%(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "文件 %(file)s 已上传"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "转换的源或目的格式缺失"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "书籍已经被成功加入到 %(book_format)s 格式转换队列"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "转换此书籍时出现错误: %(res)s"
@@ -684,7 +685,7 @@ msgstr "Google Drive上找不到文件 %(file)s"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Google Drive上找不到书籍路径 %(path)s"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr "使用此邮箱的账号已经存在。"
@@ -765,7 +766,7 @@ msgstr "Kobo 设置"
msgid "Register with %(provider)s"
msgstr "使用 %(provider)s 注册"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "您现在已以“%(nickname)s”身份登录"
@@ -830,8 +831,8 @@ msgstr "Google Oauth 错误: {}"
msgid "{} Stars"
msgstr "{} 星"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "登录"
@@ -847,7 +848,7 @@ msgstr "Token已过期"
msgid "Success! Please return to your device"
msgstr "成功!请返回您的设备"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "书籍"
@@ -872,7 +873,7 @@ msgstr "下载历史"
msgid "Show Downloaded Books"
msgstr "显示下载过的书籍"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "最高评分书籍"
@@ -881,7 +882,7 @@ msgid "Show Top Rated Books"
msgstr "显示最高评分书籍"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "已读书籍"
@@ -890,7 +891,7 @@ msgid "Show read and unread"
msgstr "显示阅读状态"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "未读书籍"
@@ -908,7 +909,7 @@ msgid "Show Random Books"
msgstr "显示随机书籍"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "分类"
@@ -918,7 +919,7 @@ msgstr "显示分类选择"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "丛书"
@@ -936,7 +937,7 @@ msgid "Show author selection"
msgstr "显示作者选择"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "出版社"
@@ -946,7 +947,7 @@ msgstr "显示出版社选择"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "语言"
@@ -970,7 +971,7 @@ msgstr "文件格式"
msgid "Show file formats selection"
msgstr "显示文件格式选择"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "归档书籍"
@@ -978,7 +979,7 @@ msgstr "归档书籍"
msgid "Show archived books"
msgstr "显示归档书籍"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "书籍列表"
@@ -1032,57 +1033,57 @@ msgstr "此书已从书架 %(sname)s 中删除"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "创建书架"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
msgid "Sorry you are not allowed to edit this shelf"
msgstr "对不起,您没有编辑这个书架的权限"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "编辑书架"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "书架 %(title)s 已创建"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "书架 %(title)s 已修改"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "发生错误"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "公共书架:%(title)s已经存在已经存在。"
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "私有书架:%(title)s已经存在已经存在。"
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "修改书架 %(name)s 顺序"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "书架:%(name)s"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "打开书架出错。书架不存在或不可访问"
@@ -1115,177 +1116,177 @@ msgstr "有新的更新。单击下面的按钮以更新到版本: %(version)s"
msgid "No release information available"
msgstr "无可用发布信息"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "发现(随机书籍)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "热门书籍(最多下载)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "%(user)s 下载过的书籍"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "作者:%(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "出版社:%(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "丛书:%(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "评分:%(rating)s 星"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "文件格式:%(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "分类:%(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "语言:%(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "高级搜索"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "搜索"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "下载次数"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "评分列表"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "文件格式列表"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "任务列表"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "出版时间晚于 "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "出版时间早于 "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "评分 <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "评分 >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "阅读状态 = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "搜索自定义列时出错,请重启 Calibre-Web"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "书籍已经成功加入 %(kindlemail)s 的发送队列"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "糟糕!发送这本书籍的时候出现错误:%(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "请先配置您的kindle邮箱。"
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "邮件服务未配置,请联系网站管理员!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "注册"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "您的电子邮件不允许注册"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "确认邮件已经发送到您的邮箱。"
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "无法激活LDAP认证"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "后备登录“%(nickname)s”:无法访问LDAP服务器,或用户未知"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "无法登录:%(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "用户名或密码错误"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "新密码已发送到您的邮箱"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "请输入有效的用户名进行密码重置"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "您现在已以“%(nickname)s”登录"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s 的用户配置"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "资料已更新"
@@ -1346,7 +1347,7 @@ msgstr "邮箱地址"
msgid "Send to Kindle E-mail Address"
msgstr "接收书籍的Kindle邮箱地址"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "管理权限"
@@ -1356,7 +1357,7 @@ msgstr "管理权限"
msgid "Password"
msgstr "密码"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "上传书籍"
@@ -1547,7 +1548,7 @@ msgid "OK"
msgstr "确定"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1645,13 +1646,13 @@ msgstr "转换书籍"
msgid "Book Title"
msgstr "书名"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "作者"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "简介"
@@ -1659,15 +1660,15 @@ msgstr "简介"
msgid "Identifiers"
msgstr "书号"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "书号类型"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "书号编号"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "移除"
@@ -1688,90 +1689,90 @@ msgstr "丛书编号"
msgid "Rating"
msgstr "评分"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "从URL获取封面(JPEG - 图片将下载并存储在数据库中)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "从本地磁盘上传封面"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "出版日期"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "出版社"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "语言"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "确认"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "没有"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "上传格式"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "查看保存书籍"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "获取元数据"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "保存"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "关键字"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " 搜索关键字 "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "单击封面将元数据加载到表单"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "加载中..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "关闭"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "源"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "搜索错误!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "无搜索结果!请尝试另一个关键字。"
@@ -1975,6 +1976,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr "启用上传"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "允许上传的文件格式"
@@ -2336,7 +2341,7 @@ msgid "Add to shelf"
msgstr "添加到书架"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(公共)"
@@ -2411,7 +2416,7 @@ msgstr "输入域名"
msgid "Denied Domains (Blacklist)"
msgstr "禁止注册的域名(黑名单)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "下一个"
@@ -2521,7 +2526,7 @@ msgstr "书籍按评分排序"
msgid "Books ordered by file formats"
msgstr "书籍按文件格式排序"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "书架列表"
@@ -2542,48 +2547,48 @@ msgstr "切换导航"
msgid "Search Library"
msgstr "搜索书库"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "正在上传..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "错误"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "上传完成,正在处理,请稍候..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "设置"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "账号"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "注销"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "请不要刷新页面"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "按条件浏览"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "关于"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "上一个"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "书籍详情"
diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo
index 037dec23..ee2a2a2e 100644
Binary files a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo and b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po
index 32d7baa2..d4d34dde 100644
--- a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po
+++ b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+0100\n"
"PO-Revision-Date: 2020-09-27 22:18+0800\n"
"Last-Translator: xlivevil \n"
"Language: zh_TW\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -46,9 +46,9 @@ msgstr "重新連接成功"
msgid "Unknown command"
msgstr "未知命令"
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr "未知"
@@ -70,7 +70,8 @@ msgid "Edit Users"
msgstr "管理用戶"
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr "全部"
@@ -268,7 +269,7 @@ msgstr "LDAP CA證書、證書或密鑰位置無效,請輸入正確的路徑"
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr "設置數據庫不可寫入"
@@ -297,7 +298,7 @@ msgstr "郵件服務器設置已更新"
msgid "Database Configuration"
msgstr "數據庫配置"
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr "請填寫所有欄位!"
@@ -341,7 +342,7 @@ msgstr "編輯用戶 %(nick)s"
msgid "User '%(nick)s' updated"
msgstr "用戶“%(nick)s”已更新"
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr "發生一個未知錯誤,請稍後再試。"
@@ -376,7 +377,7 @@ msgstr "郵件服務器設置已更新"
msgid "Password for user %(user)s reset"
msgstr "用戶 %(user)s 的密碼已重置"
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr "請先配置SMTP郵箱設置..."
@@ -475,108 +476,108 @@ msgstr "未配置"
msgid "Execution permissions missing"
msgstr "缺少執行權限"
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "自定義列號:%(column)d在Calibre數據庫中不存在"
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr "書籍格式已成功刪除"
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr "書籍已成功刪除"
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "糟糕!選擇書名無法打開。文件不存在或者文件不可訪問"
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr "編輯元數據"
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr "%(seriesindex)s 不是一個有效的數值,忽略"
-#: cps/editbooks.py:491
-#, python-format
-msgid "%(langname)s is not a valid language"
+#: cps/editbooks.py:490 cps/editbooks.py:954
+#, fuzzy, python-format
+msgid "'%(langname)s' is not a valid language"
msgstr "%(langname)s 不是一種有效語言"
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "不能上傳文件附檔名為“%(ext)s”的文件到此服務器"
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr "要上傳的文件必須具有附檔名"
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "創建路徑 %(path)s 失敗(權限拒絕)。"
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr "保存文件 %(file)s 失敗。"
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr "數據庫錯誤:%(error)s。"
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "已添加 %(ext)s 格式到 %(book)s"
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr "標識符不區分大小寫,覆蓋舊標識符"
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr "已成功更新元數據"
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr "編輯書籍出錯,請檢查日誌文件以獲取詳細信息"
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "上傳的書籍可能已經存在,建議修改後重新上傳: "
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "文件 %(filename)s 無法保存到臨時目錄"
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "移動封面文件失敗 %(file)s:%(error)s"
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr "文件 %(file)s 已上傳"
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr "轉換的來源或目的格式不存在"
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "書籍已經被成功加入到 %(book_format)s 格式轉換隊列"
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "轉換此書籍時出現錯誤: %(res)s"
@@ -684,7 +685,7 @@ msgstr "Google Drive上找不到文件 %(file)s"
msgid "Book path %(path)s not found on Google Drive"
msgstr "Google Drive上找不到書籍路徑 %(path)s"
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr "使用此郵箱的賬號已經存在。"
@@ -765,7 +766,7 @@ msgstr "Kobo 設置"
msgid "Register with %(provider)s"
msgstr "使用 %(provider)s 註冊"
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "您現在已以“%(nickname)s”身份登入"
@@ -830,8 +831,8 @@ msgstr "Google Oauth 錯誤: {}"
msgid "{} Stars"
msgstr "{} 星"
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr "登入"
@@ -847,7 +848,7 @@ msgstr "Token已過期"
msgid "Success! Please return to your device"
msgstr "成功!請返回您的設備"
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr "書籍"
@@ -872,7 +873,7 @@ msgstr "已下載書籍"
msgid "Show Downloaded Books"
msgstr "顯示下載過的書籍"
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr "最高評分書籍"
@@ -881,7 +882,7 @@ msgid "Show Top Rated Books"
msgstr "顯示最高評分書籍"
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr "已讀書籍"
@@ -890,7 +891,7 @@ msgid "Show read and unread"
msgstr "顯示閱讀狀態"
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr "未讀書籍"
@@ -908,7 +909,7 @@ msgid "Show Random Books"
msgstr "隨機顯示書籍"
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr "分類"
@@ -918,7 +919,7 @@ msgstr "顯示分類選擇"
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr "叢書"
@@ -936,7 +937,7 @@ msgid "Show author selection"
msgstr "顯示作者選擇"
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr "出版社"
@@ -946,7 +947,7 @@ msgstr "顯示出版社選擇"
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr "語言"
@@ -970,7 +971,7 @@ msgstr "文件格式"
msgid "Show file formats selection"
msgstr "顯示文件格式選擇"
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr "歸檔書籍"
@@ -978,7 +979,7 @@ msgstr "歸檔書籍"
msgid "Show archived books"
msgstr "顯示歸檔書籍"
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr "書籍列表"
@@ -1032,57 +1033,57 @@ msgstr "此書已從書架 %(sname)s 中刪除"
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "創建書架"
-#: cps/shelf.py:241
+#: cps/shelf.py:237
msgid "Sorry you are not allowed to edit this shelf"
msgstr "對不起,您沒有編輯這個書架的權限"
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr "編輯書架"
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr "書架 %(title)s 已創建"
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr "書架 %(title)s 已修改"
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr "發生錯誤"
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr "公共書架:%(title)s已經存在已經存在。"
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr "私有書架:%(title)s已經存在。"
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "修改書架 %(name)s 順序"
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "書架:%(name)s"
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "打開書架出錯。書架不存在或不可訪問"
@@ -1115,177 +1116,177 @@ msgstr "有新的更新。單擊下面的按鈕以更新到版本: %(version)s"
msgid "No release information available"
msgstr "無可用發佈信息"
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr "發現(隨機書籍)"
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr "熱門書籍(最多下載)"
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr "%(user)s 下載過的書籍"
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr "作者:%(name)s"
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr "出版社:%(name)s"
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr "叢書:%(serie)s"
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "評分:%(rating)s 星"
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr "文件格式:%(format)s"
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr "分類:%(name)s"
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr "語言:%(name)s"
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr "進階搜尋"
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr "搜尋"
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr "下載次數"
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr "評分列表"
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr "文件格式列表"
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr "任務列表"
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr "出版時間晚於 "
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr "出版時間早於 "
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr "評分 <= %(rating)s"
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr "評分 >= %(rating)s"
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr "閱讀狀態 = %(status)s"
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr "搜詢自定義欄位時出錯,請重啟 Calibre-Web"
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "書籍已經成功加入 %(kindlemail)s 的發送隊列"
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "糟糕!發送這本書籍的時候出現錯誤:%(res)s"
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "請先設置您的kindle郵箱。"
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "郵件服務未配置,請聯繫網站管理員!"
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr "註冊"
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr "您的電子郵件不允許註冊"
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "確認郵件已經發送到您的郵箱。"
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr "無法激活LDAP認證"
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "備援登入“%(nickname)s”:無法訪問LDAP伺服器,或用戶未知"
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr "無法登入:%(message)s"
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr "用戶名或密碼錯誤"
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr "新密碼已發送到您的郵箱"
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr "請輸入有效的用戶名進行密碼重置"
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "您現在已以“%(nickname)s”登入"
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s 的用戶配置"
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr "資料已更新"
@@ -1346,7 +1347,7 @@ msgstr "郵箱地址"
msgid "Send to Kindle E-mail Address"
msgstr "接收書籍的Kindle郵箱地址"
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr "管理權限"
@@ -1356,7 +1357,7 @@ msgstr "管理權限"
msgid "Password"
msgstr "密碼"
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr "上傳書籍"
@@ -1547,7 +1548,7 @@ msgid "OK"
msgstr "確定"
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1645,13 +1646,13 @@ msgstr "轉換書籍"
msgid "Book Title"
msgstr "書名"
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr "作者"
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr "簡介"
@@ -1659,15 +1660,15 @@ msgstr "簡介"
msgid "Identifiers"
msgstr "書號"
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr "書號類型"
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr "書號編號"
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr "移除"
@@ -1688,90 +1689,90 @@ msgstr "叢書編號"
msgid "Rating"
msgstr "評分"
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr "從URL獲取封面(JPEG - 圖片將下載並存儲在數據庫中)"
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr "從本地硬碟上傳封面"
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr "出版日期"
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr "出版社"
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr "語言"
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr "確認"
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr "沒有"
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr "上傳格式"
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr "查看保存書籍"
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr "獲取元數據"
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr "儲存"
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr "關鍵字"
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
#, fuzzy
msgid "Search keyword"
msgstr " 搜索關鍵字 "
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr "單擊封面將元數據加載到表單"
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr "加載中..."
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr "關閉"
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr "來源"
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr "搜索錯誤!"
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr "無搜索結果!請嘗試另一個關鍵字。"
@@ -1975,6 +1976,10 @@ msgstr "儲存到硬碟時同步轉換書名與作者中的非英語字元"
msgid "Enable Uploads"
msgstr "啟用上傳"
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr "允許上傳的文件格式"
@@ -2336,7 +2341,7 @@ msgid "Add to shelf"
msgstr "添加到書架"
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(公共)"
@@ -2411,7 +2416,7 @@ msgstr "輸入網域名"
msgid "Denied Domains (Blacklist)"
msgstr "禁止註冊的網域名(黑名單)"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "下一個"
@@ -2521,7 +2526,7 @@ msgstr "書籍按評分排序"
msgid "Books ordered by file formats"
msgstr "書籍按文件格式排序"
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr "書架列表"
@@ -2542,48 +2547,48 @@ msgstr "切換導航"
msgid "Search Library"
msgstr "搜索書庫"
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr "正在上傳..."
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr "錯誤"
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr "上傳完成,正在處理中,請稍候..."
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr "設置"
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr "賬號"
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr "登出"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr "請不要刷新頁面"
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr "瀏覽"
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "關於"
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "上一個"
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "書籍詳情"
diff --git a/cps/ub.py b/cps/ub.py
index e3a379ab..c074acc7 100644
--- a/cps/ub.py
+++ b/cps/ub.py
@@ -306,11 +306,11 @@ class Anonymous(AnonymousUserMixin, UserBase):
return None
def set_view_property(self, page, prop, value):
- if 'view' in flask_session:
- if not flask_session['view'].get(page):
- flask_session['view'][page] = dict()
- flask_session['view'][page][prop] = value
- return None
+ if not 'view' in flask_session:
+ flask_session['view'] = dict()
+ if not flask_session['view'].get(page):
+ flask_session['view'][page] = dict()
+ flask_session['view'][page][prop] = value
class User_Sessions(Base):
__tablename__ = 'user_session'
diff --git a/cps/web.py b/cps/web.py
index b872a0ba..67a121be 100644
--- a/cps/web.py
+++ b/cps/web.py
@@ -54,6 +54,7 @@ from .helper import check_valid_domain, render_task_status, check_email, check_u
from .pagination import Pagination
from .redirect import redirect_back
from .usermanagement import login_required_if_no_ano
+from .kobo_sync_status import remove_synced_book
from .render_template import render_title_template
feature_support = {
@@ -206,6 +207,8 @@ def toggle_archived(book_id):
archived_book.is_archived = True
ub.session.merge(archived_book)
ub.session_commit("Book {} archivebit toggled".format(book_id))
+ if archived_book.is_archived:
+ remove_synced_book(book_id)
return ""
@@ -862,7 +865,7 @@ def list_books():
elif search:
entries, filtered_count, __ = calibre_db.get_search_results(search,
off,
- order,
+ [order,''],
limit,
config.config_read_column,
*join)
@@ -1060,22 +1063,14 @@ def formats_list():
@login_required_if_no_ano
def language_overview():
if current_user.check_visibility(constants.SIDEBAR_LANGUAGE) and current_user.filter_language() == u"all":
- if current_user.get_view_property('language', 'dir') == 'desc':
- order = db.Languages.lang_code.desc()
- order_no = 0
- else:
- order = db.Languages.lang_code.asc()
- order_no = 1
+ order_no = 0 if current_user.get_view_property('language', 'dir') == 'desc' else 1
charlist = list()
- languages = calibre_db.speaking_language(reverse_order=not order_no)
+ languages = calibre_db.speaking_language(reverse_order=not order_no, with_count=True)
for lang in languages:
- upper_lang = lang.name[0].upper()
+ upper_lang = lang[0].name[0].upper()
if upper_lang not in charlist:
charlist.append(upper_lang)
- lang_counter = calibre_db.session.query(db.books_languages_link,
- func.count('books_languages_link.book').label('bookcount')).group_by(
- text('books_languages_link.lang_code')).all()
- return render_title_template('languages.html', languages=languages, lang_counter=lang_counter,
+ return render_title_template('languages.html', languages=languages,
charlist=charlist, title=_(u"Languages"), page="langlist",
data="language", order=order_no)
else:
@@ -1578,9 +1573,6 @@ def register():
@web.route('/login', methods=['GET', 'POST'])
def login():
- #if not config.db_configured:
- # log.debug(u"Redirect to initial configuration")
- # return redirect(url_for('admin.basic_configuration'))
if current_user is not None and current_user.is_authenticated:
return redirect(url_for('web.index'))
if config.config_login_type == constants.LOGIN_LDAP and not services.ldap:
diff --git a/messages.pot b/messages.pot
index ad2d6482..71c3f1ad 100644
--- a/messages.pot
+++ b/messages.pot
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-21 09:26+0100\n"
+"POT-Creation-Date: 2021-12-04 10:53+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.8.0\n"
+"Generated-By: Babel 2.9.0\n"
#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31
msgid "not installed"
@@ -45,9 +45,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:167 cps/editbooks.py:704 cps/editbooks.py:718
-#: cps/editbooks.py:859 cps/editbooks.py:861 cps/editbooks.py:888
-#: cps/editbooks.py:904 cps/updater.py:584 cps/uploader.py:93
+#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717
+#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891
+#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93
#: cps/uploader.py:103
msgid "Unknown"
msgstr ""
@@ -69,7 +69,8 @@ msgid "Edit Users"
msgstr ""
#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275
-#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/list.html:13
+#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9
+#: cps/templates/list.html:13
msgid "All"
msgstr ""
@@ -267,7 +268,7 @@ msgstr ""
#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482
#: cps/admin.py:1551 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203
-#: cps/shelf.py:275 cps/shelf.py:336 cps/shelf.py:371 cps/shelf.py:446
+#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445
msgid "Settings DB is not Writeable"
msgstr ""
@@ -295,7 +296,7 @@ msgstr ""
msgid "Database Configuration"
msgstr ""
-#: cps/admin.py:1340 cps/web.py:1497
+#: cps/admin.py:1340 cps/web.py:1487
msgid "Please fill out all fields!"
msgstr ""
@@ -339,7 +340,7 @@ msgstr ""
msgid "User '%(nick)s' updated"
msgstr ""
-#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1522 cps/web.py:1585
+#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575
msgid "An unknown error occurred. Please try again later."
msgstr ""
@@ -374,7 +375,7 @@ msgstr ""
msgid "Password for user %(user)s reset"
msgstr ""
-#: cps/admin.py:1613 cps/web.py:1462
+#: cps/admin.py:1613 cps/web.py:1452
msgid "Please configure the SMTP mail settings first..."
msgstr ""
@@ -472,108 +473,108 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/db.py:651 cps/web.py:672 cps/web.py:1173
+#: cps/db.py:651 cps/web.py:675 cps/web.py:1163
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/editbooks.py:306 cps/editbooks.py:308
+#: cps/editbooks.py:305 cps/editbooks.py:307
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:315 cps/editbooks.py:317
+#: cps/editbooks.py:314 cps/editbooks.py:316
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:373 cps/editbooks.py:760 cps/web.py:528 cps/web.py:1724
-#: cps/web.py:1765 cps/web.py:1832
+#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:531 cps/web.py:1714
+#: cps/web.py:1755 cps/web.py:1822
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr ""
-#: cps/editbooks.py:407
+#: cps/editbooks.py:406
msgid "edit metadata"
msgstr ""
-#: cps/editbooks.py:455
+#: cps/editbooks.py:454
#, python-format
msgid "%(seriesindex)s is not a valid number, skipping"
msgstr ""
-#: cps/editbooks.py:491
+#: cps/editbooks.py:490 cps/editbooks.py:954
#, python-format
-msgid "%(langname)s is not a valid language"
+msgid "'%(langname)s' is not a valid language"
msgstr ""
-#: cps/editbooks.py:631 cps/editbooks.py:974
+#: cps/editbooks.py:630 cps/editbooks.py:981
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr ""
-#: cps/editbooks.py:635 cps/editbooks.py:978
+#: cps/editbooks.py:634 cps/editbooks.py:985
msgid "File to be uploaded must have an extension"
msgstr ""
-#: cps/editbooks.py:647
+#: cps/editbooks.py:646
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:652
+#: cps/editbooks.py:651
#, python-format
msgid "Failed to store file %(file)s."
msgstr ""
-#: cps/editbooks.py:670 cps/editbooks.py:1065 cps/web.py:1685
+#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1675
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:675
+#: cps/editbooks.py:674
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr ""
-#: cps/editbooks.py:811
+#: cps/editbooks.py:810
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:845
+#: cps/editbooks.py:844
msgid "Metadata successfully updated"
msgstr ""
-#: cps/editbooks.py:854
+#: cps/editbooks.py:857
msgid "Error editing book, please check logfile for details"
msgstr ""
-#: cps/editbooks.py:892
+#: cps/editbooks.py:895
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:986
+#: cps/editbooks.py:993
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:1005
+#: cps/editbooks.py:1012
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:1052
+#: cps/editbooks.py:1059
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:1077
+#: cps/editbooks.py:1084
msgid "Source or destination format for conversion missing"
msgstr ""
-#: cps/editbooks.py:1085
+#: cps/editbooks.py:1092
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr ""
-#: cps/editbooks.py:1089
+#: cps/editbooks.py:1096
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr ""
@@ -681,7 +682,7 @@ msgstr ""
msgid "Book path %(path)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:507 cps/web.py:1680
+#: cps/helper.py:507 cps/web.py:1670
msgid "Found an existing account for this e-mail address"
msgstr ""
@@ -762,7 +763,7 @@ msgstr ""
msgid "Register with %(provider)s"
msgstr ""
-#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1556
+#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr ""
@@ -827,8 +828,8 @@ msgstr ""
msgid "{} Stars"
msgstr ""
-#: cps/remotelogin.py:65 cps/templates/layout.html:86
-#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1605
+#: cps/remotelogin.py:65 cps/templates/layout.html:84
+#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1595
msgid "Login"
msgstr ""
@@ -844,7 +845,7 @@ msgstr ""
msgid "Success! Please return to your device"
msgstr ""
-#: cps/render_template.py:39 cps/web.py:421
+#: cps/render_template.py:39 cps/web.py:424
msgid "Books"
msgstr ""
@@ -869,7 +870,7 @@ msgstr ""
msgid "Show Downloaded Books"
msgstr ""
-#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:435
+#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438
msgid "Top Rated Books"
msgstr ""
@@ -878,7 +879,7 @@ msgid "Show Top Rated Books"
msgstr ""
#: cps/render_template.py:59 cps/templates/index.xml:54
-#: cps/templates/index.xml:58 cps/web.py:681
+#: cps/templates/index.xml:58 cps/web.py:684
msgid "Read Books"
msgstr ""
@@ -887,7 +888,7 @@ msgid "Show read and unread"
msgstr ""
#: cps/render_template.py:63 cps/templates/index.xml:61
-#: cps/templates/index.xml:65 cps/web.py:684
+#: cps/templates/index.xml:65 cps/web.py:687
msgid "Unread Books"
msgstr ""
@@ -905,7 +906,7 @@ msgid "Show Random Books"
msgstr ""
#: cps/render_template.py:69 cps/templates/book_table.html:67
-#: cps/templates/index.xml:83 cps/web.py:1060
+#: cps/templates/index.xml:83 cps/web.py:1050
msgid "Categories"
msgstr ""
@@ -915,7 +916,7 @@ msgstr ""
#: cps/render_template.py:72 cps/templates/book_edit.html:90
#: cps/templates/book_table.html:68 cps/templates/index.xml:90
-#: cps/templates/search_form.html:69 cps/web.py:954 cps/web.py:965
+#: cps/templates/search_form.html:69 cps/web.py:957 cps/web.py:968
msgid "Series"
msgstr ""
@@ -933,7 +934,7 @@ msgid "Show author selection"
msgstr ""
#: cps/render_template.py:79 cps/templates/book_table.html:72
-#: cps/templates/index.xml:76 cps/web.py:931
+#: cps/templates/index.xml:76 cps/web.py:934
msgid "Publishers"
msgstr ""
@@ -943,7 +944,7 @@ msgstr ""
#: cps/render_template.py:82 cps/templates/book_table.html:70
#: cps/templates/index.xml:97 cps/templates/search_form.html:107
-#: cps/web.py:1037
+#: cps/web.py:1027
msgid "Languages"
msgstr ""
@@ -967,7 +968,7 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
-#: cps/render_template.py:93 cps/web.py:708
+#: cps/render_template.py:93 cps/web.py:711
msgid "Archived Books"
msgstr ""
@@ -975,7 +976,7 @@ msgstr ""
msgid "Show archived books"
msgstr ""
-#: cps/render_template.py:97 cps/web.py:785
+#: cps/render_template.py:97 cps/web.py:788
msgid "Books List"
msgstr ""
@@ -1029,57 +1030,57 @@ msgstr ""
msgid "Sorry you are not allowed to remove a book from this shelf"
msgstr ""
-#: cps/shelf.py:228
-msgid "Sorry you are not allowed to create a public shelf"
-msgstr ""
-
-#: cps/shelf.py:232 cps/templates/layout.html:142
+#: cps/shelf.py:228 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr ""
-#: cps/shelf.py:241
+#: cps/shelf.py:237
msgid "Sorry you are not allowed to edit this shelf"
msgstr ""
-#: cps/shelf.py:243
+#: cps/shelf.py:239
msgid "Edit a shelf"
msgstr ""
-#: cps/shelf.py:262
+#: cps/shelf.py:249
+msgid "Sorry you are not allowed to create a public shelf"
+msgstr ""
+
+#: cps/shelf.py:261
#, python-format
msgid "Shelf %(title)s created"
msgstr ""
-#: cps/shelf.py:265
+#: cps/shelf.py:264
#, python-format
msgid "Shelf %(title)s changed"
msgstr ""
-#: cps/shelf.py:279
+#: cps/shelf.py:278
msgid "There was an error"
msgstr ""
-#: cps/shelf.py:301
+#: cps/shelf.py:300
#, python-format
msgid "A public shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:312
+#: cps/shelf.py:311
#, python-format
msgid "A private shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/shelf.py:381
+#: cps/shelf.py:380
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr ""
-#: cps/shelf.py:451
+#: cps/shelf.py:450
#, python-format
msgid "Shelf: '%(name)s'"
msgstr ""
-#: cps/shelf.py:455
+#: cps/shelf.py:454
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr ""
@@ -1112,177 +1113,177 @@ msgstr ""
msgid "No release information available"
msgstr ""
-#: cps/templates/index.html:5 cps/web.py:445
+#: cps/templates/index.html:5 cps/web.py:448
msgid "Discover (Random Books)"
msgstr ""
-#: cps/web.py:476
+#: cps/web.py:479
msgid "Hot Books (Most Downloaded)"
msgstr ""
-#: cps/web.py:512
+#: cps/web.py:515
#, python-format
msgid "Downloaded books by %(user)s"
msgstr ""
-#: cps/web.py:544
+#: cps/web.py:547
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:559
+#: cps/web.py:562
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
-#: cps/web.py:574
+#: cps/web.py:577
#, python-format
msgid "Series: %(serie)s"
msgstr ""
-#: cps/web.py:587
+#: cps/web.py:590
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:602
+#: cps/web.py:605
#, python-format
msgid "File format: %(format)s"
msgstr ""
-#: cps/web.py:620
+#: cps/web.py:623
#, python-format
msgid "Category: %(name)s"
msgstr ""
-#: cps/web.py:636
+#: cps/web.py:639
#, python-format
msgid "Language: %(name)s"
msgstr ""
-#: cps/templates/layout.html:56 cps/web.py:742 cps/web.py:1389
+#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379
msgid "Advanced Search"
msgstr ""
-#: cps/templates/book_edit.html:239 cps/templates/feed.xml:33
+#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33
#: cps/templates/index.xml:11 cps/templates/layout.html:45
#: cps/templates/layout.html:48 cps/templates/search_form.html:226
-#: cps/web.py:755 cps/web.py:1095
+#: cps/web.py:758 cps/web.py:1085
msgid "Search"
msgstr ""
-#: cps/templates/admin.html:16 cps/web.py:909
+#: cps/templates/admin.html:16 cps/web.py:912
msgid "Downloads"
msgstr ""
-#: cps/web.py:986
+#: cps/web.py:989
msgid "Ratings list"
msgstr ""
-#: cps/web.py:1007
+#: cps/web.py:1010
msgid "File formats list"
msgstr ""
-#: cps/templates/layout.html:75 cps/templates/tasks.html:7 cps/web.py:1074
+#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064
msgid "Tasks"
msgstr ""
-#: cps/web.py:1233
+#: cps/web.py:1223
msgid "Published after "
msgstr ""
-#: cps/web.py:1240
+#: cps/web.py:1230
msgid "Published before "
msgstr ""
-#: cps/web.py:1262
+#: cps/web.py:1252
#, python-format
msgid "Rating <= %(rating)s"
msgstr ""
-#: cps/web.py:1264
+#: cps/web.py:1254
#, python-format
msgid "Rating >= %(rating)s"
msgstr ""
-#: cps/web.py:1266
+#: cps/web.py:1256
#, python-format
msgid "Read Status = %(status)s"
msgstr ""
-#: cps/web.py:1371
+#: cps/web.py:1361
msgid "Error on search for custom columns, please restart Calibre-Web"
msgstr ""
-#: cps/web.py:1467
+#: cps/web.py:1457
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr ""
-#: cps/web.py:1471
+#: cps/web.py:1461
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr ""
-#: cps/web.py:1473
+#: cps/web.py:1463
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr ""
-#: cps/web.py:1490
+#: cps/web.py:1480
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/templates/layout.html:87 cps/templates/register.html:17 cps/web.py:1491
-#: cps/web.py:1498 cps/web.py:1504 cps/web.py:1523 cps/web.py:1527
-#: cps/web.py:1533
+#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1481
+#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517
+#: cps/web.py:1523
msgid "Register"
msgstr ""
-#: cps/web.py:1525
+#: cps/web.py:1515
msgid "Your e-mail is not allowed to register"
msgstr ""
-#: cps/web.py:1528
+#: cps/web.py:1518
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
-#: cps/web.py:1545
+#: cps/web.py:1535
msgid "Cannot activate LDAP authentication"
msgstr ""
-#: cps/web.py:1564
+#: cps/web.py:1554
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1570
+#: cps/web.py:1560
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1574 cps/web.py:1599
+#: cps/web.py:1564 cps/web.py:1589
msgid "Wrong Username or Password"
msgstr ""
-#: cps/web.py:1581
+#: cps/web.py:1571
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1587
+#: cps/web.py:1577
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1594
+#: cps/web.py:1584
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1660 cps/web.py:1709
+#: cps/web.py:1650 cps/web.py:1699
#, python-format
msgid "%(name)s's profile"
msgstr ""
-#: cps/web.py:1676
+#: cps/web.py:1666
msgid "Profile updated"
msgstr ""
@@ -1343,7 +1344,7 @@ msgstr ""
msgid "Send to Kindle E-mail Address"
msgstr ""
-#: cps/templates/admin.html:17 cps/templates/layout.html:78
+#: cps/templates/admin.html:17 cps/templates/layout.html:76
#: cps/templates/user_table.html:143
msgid "Admin"
msgstr ""
@@ -1353,7 +1354,7 @@ msgstr ""
msgid "Password"
msgstr ""
-#: cps/templates/admin.html:20 cps/templates/layout.html:67
+#: cps/templates/admin.html:20 cps/templates/layout.html:66
#: cps/templates/user_table.html:145
msgid "Upload"
msgstr ""
@@ -1544,7 +1545,7 @@ msgid "OK"
msgstr ""
#: cps/templates/admin.html:215 cps/templates/admin.html:229
-#: cps/templates/book_edit.html:217 cps/templates/book_table.html:124
+#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124
#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359
#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64
#: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117
@@ -1642,13 +1643,13 @@ msgstr ""
msgid "Book Title"
msgstr ""
-#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:274
-#: cps/templates/book_edit.html:292 cps/templates/search_form.html:12
+#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270
+#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12
msgid "Author"
msgstr ""
-#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:279
-#: cps/templates/book_edit.html:294 cps/templates/search_form.html:153
+#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275
+#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153
msgid "Description"
msgstr ""
@@ -1656,15 +1657,15 @@ msgstr ""
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:303
+#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:304
+#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301
#: cps/templates/user_table.html:24
msgid "Remove"
msgstr ""
@@ -1685,89 +1686,89 @@ msgstr ""
msgid "Rating"
msgstr ""
-#: cps/templates/book_edit.html:104
+#: cps/templates/book_edit.html:103
msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)"
msgstr ""
-#: cps/templates/book_edit.html:108
+#: cps/templates/book_edit.html:107
msgid "Upload Cover from Local Disk"
msgstr ""
-#: cps/templates/book_edit.html:114
+#: cps/templates/book_edit.html:112
msgid "Published Date"
msgstr ""
-#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:276
-#: cps/templates/book_edit.html:293 cps/templates/detail.html:164
+#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272
+#: cps/templates/book_edit.html:289 cps/templates/detail.html:164
#: cps/templates/search_form.html:16
msgid "Publisher"
msgstr ""
-#: cps/templates/book_edit.html:127 cps/templates/detail.html:131
+#: cps/templates/book_edit.html:125 cps/templates/detail.html:131
#: cps/templates/user_edit.html:33
msgid "Language"
msgstr ""
-#: cps/templates/book_edit.html:137 cps/templates/search_form.html:45
+#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45
#: cps/templates/search_form.html:164
msgid "Yes"
msgstr ""
-#: cps/templates/book_edit.html:138 cps/templates/search_form.html:46
+#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46
#: cps/templates/search_form.html:165
msgid "No"
msgstr ""
-#: cps/templates/book_edit.html:203
+#: cps/templates/book_edit.html:200
msgid "Upload Format"
msgstr ""
-#: cps/templates/book_edit.html:212
+#: cps/templates/book_edit.html:208
msgid "View Book on Save"
msgstr ""
-#: cps/templates/book_edit.html:215 cps/templates/book_edit.html:233
+#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229
msgid "Fetch Metadata"
msgstr ""
-#: cps/templates/book_edit.html:216 cps/templates/config_db.html:53
+#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53
#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172
#: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25
#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:139
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:236
+#: cps/templates/book_edit.html:232
msgid "Keyword"
msgstr ""
-#: cps/templates/book_edit.html:237
+#: cps/templates/book_edit.html:233
msgid "Search keyword"
msgstr ""
-#: cps/templates/book_edit.html:243
+#: cps/templates/book_edit.html:239
msgid "Click the cover to load metadata to the form"
msgstr ""
-#: cps/templates/book_edit.html:250 cps/templates/book_edit.html:289
+#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285
msgid "Loading..."
msgstr ""
-#: cps/templates/book_edit.html:254 cps/templates/layout.html:64
-#: cps/templates/layout.html:188 cps/templates/modal_dialogs.html:34
+#: cps/templates/book_edit.html:250 cps/templates/layout.html:63
+#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34
#: cps/templates/user_edit.html:160
msgid "Close"
msgstr ""
-#: cps/templates/book_edit.html:281 cps/templates/book_edit.html:295
+#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291
msgid "Source"
msgstr ""
-#: cps/templates/book_edit.html:290
+#: cps/templates/book_edit.html:286
msgid "Search error!"
msgstr ""
-#: cps/templates/book_edit.html:291
+#: cps/templates/book_edit.html:287
msgid "No Result(s) found! Please try another keyword."
msgstr ""
@@ -1969,6 +1970,10 @@ msgstr ""
msgid "Enable Uploads"
msgstr ""
+#: cps/templates/config_edit.html:108
+msgid "(Please ensure users having also upload rights)"
+msgstr ""
+
#: cps/templates/config_edit.html:112
msgid "Allowed Upload Fileformats"
msgstr ""
@@ -2328,7 +2333,7 @@ msgid "Add to shelf"
msgstr ""
#: cps/templates/detail.html:267 cps/templates/detail.html:284
-#: cps/templates/feed.xml:79 cps/templates/layout.html:139
+#: cps/templates/feed.xml:79 cps/templates/layout.html:137
#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2403,7 +2408,7 @@ msgstr ""
msgid "Denied Domains (Blacklist)"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:172
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr ""
@@ -2513,7 +2518,7 @@ msgstr ""
msgid "Books ordered by file formats"
msgstr ""
-#: cps/templates/index.xml:119 cps/templates/layout.html:137
+#: cps/templates/index.xml:119 cps/templates/layout.html:135
#: cps/templates/search_form.html:87
msgid "Shelves"
msgstr ""
@@ -2534,48 +2539,48 @@ msgstr ""
msgid "Search Library"
msgstr ""
-#: cps/templates/layout.html:64 cps/templates/layout.html:119
+#: cps/templates/layout.html:63 cps/templates/layout.html:117
msgid "Uploading..."
msgstr ""
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Error"
msgstr ""
-#: cps/templates/layout.html:64
+#: cps/templates/layout.html:63
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:78 cps/templates/read.html:71
+#: cps/templates/layout.html:76 cps/templates/read.html:71
#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108
msgid "Settings"
msgstr ""
-#: cps/templates/layout.html:80
+#: cps/templates/layout.html:78
msgid "Account"
msgstr ""
-#: cps/templates/layout.html:82
+#: cps/templates/layout.html:80
msgid "Logout"
msgstr ""
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:118
msgid "Please do not refresh the page"
msgstr ""
-#: cps/templates/layout.html:130
+#: cps/templates/layout.html:128
msgid "Browse"
msgstr ""
-#: cps/templates/layout.html:143 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr ""
-#: cps/templates/layout.html:157
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr ""
-#: cps/templates/layout.html:184
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr ""
diff --git a/optional-requirements.txt b/optional-requirements.txt
index c9a05fc0..03f58bb5 100644
--- a/optional-requirements.txt
+++ b/optional-requirements.txt
@@ -1,18 +1,18 @@
# GDrive Integration
gevent>20.6.0,<22.0.0
greenlet>=0.4.17,<1.2.0
-httplib2>=0.9.2,<0.20.0
+httplib2>=0.9.2,<0.21.0
oauth2client>=4.0.0,<4.1.4
-uritemplate>=3.0.0,<3.1.0
+uritemplate>=3.0.0,<4.2.0
pyasn1-modules>=0.0.8,<0.3.0
pyasn1>=0.1.9,<0.5.0
-PyDrive2>=1.3.1,<1.9.0
+PyDrive2>=1.3.1,<1.11.0
PyYAML>=3.12
rsa>=3.4.2,<4.8.0
six>=1.10.0,<1.17.0
# Gdrive and Gmail integration
-google-api-python-client>=1.7.11,<2.1.0
+google-api-python-client>=1.7.11,<2.32.0
# Gmail
google-auth-oauthlib>=0.4.3,<0.5.0
@@ -26,16 +26,16 @@ python-ldap>=3.0.0,<3.4.0
Flask-SimpleLDAP>=1.4.0,<1.5.0
#oauth
-Flask-Dance>=2.0.0,<5.1.0
+Flask-Dance>=2.0.0,<5.2.0
SQLAlchemy-Utils>=0.33.5,<0.38.0
# extracting metadata
rarfile>=2.7
-scholarly>=1.2.0, <1.3
+scholarly>=1.2.0, <1.5
# other
natsort>=2.2.0,<8.1.0
comicapi>=2.2.0,<2.3.0
#Kobo integration
-jsonschema>=3.2.0,<3.3.0
+jsonschema>=3.2.0,<4.3.0
diff --git a/requirements.txt b/requirements.txt
index dc1b0d95..1db961fe 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,11 +1,11 @@
-Babel>=1.3, <3.0
+Babel>=1.3,<3.0
Flask-Babel>=0.11.1,<2.1.0
Flask-Login>=0.3.2,<0.5.1
Flask-Principal>=0.3.2,<0.5.1
backports_abc>=0.4
Flask>=1.0.2,<2.1.0
iso-639>=0.4.5,<0.5.0
-PyPDF3>=1.0.0,<1.0.4
+PyPDF3>=1.0.0,<1.0.6
pytz>=2016.10
requests>=2.11.1,<2.25.0
SQLAlchemy>=1.3.0,<1.5.0
@@ -13,4 +13,4 @@ tornado>=4.1,<6.2
Wand>=0.4.4,<0.7.0
unidecode>=0.04.19,<1.3.0
lxml>=3.8.0,<4.7.0
-flask-wtf>=0.14.2,<0.16.0
+flask-wtf>=0.14.2,<1.1.0
diff --git a/setup.cfg b/setup.cfg
index 76f7e405..3f1b1f8d 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -29,7 +29,7 @@ keywords =
calibre
calibre-web
library
-python_requires = >=3.0
+python_requires = >=3.5
[options.entry_points]
console_scripts =
@@ -82,7 +82,7 @@ oauth =
SQLAlchemy-Utils>=0.33.5,<0.38.0
metadata =
rarfile>=2.7
- scholarly>=1.2.0, <1.3
+ scholarly>=1.2.0,<1.3
comics =
natsort>=2.2.0,<7.2.0
comicapi>= 2.2.0,<2.3.0
diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html
index 1733a51a..dea6d5e9 100644
--- a/test/Calibre-Web TestSummary_Linux.html
+++ b/test/Calibre-Web TestSummary_Linux.html
@@ -37,20 +37,20 @@
-
Start Time: 2021-10-30 19:49:15
+
Start Time: 2021-12-02 06:37:36
-
Stop Time: 2021-10-30 23:31:02
+
Stop Time: 2021-12-02 10:15:15
-
Duration: 3h 2 min
+
Duration: 2h 57 min
@@ -356,19 +356,28 @@
TestCoverEditBooks
- 1
- 1
+ 2
+ 2
0
0
0
- Detail
+ Detail
+
+ TestCoverEditBooks - test_invalid_jpg_hdd
+
+ PASS
+
+
+
+
+
TestCoverEditBooks - test_upload_jpg
@@ -1849,15 +1858,15 @@
-
+
TestKoboSync
- 10
- 10
- 0
- 0
+ 11
+ 6
+ 4
+ 1
0
- Detail
+ Detail
@@ -1881,34 +1890,103 @@
-
+
TestKoboSync - test_kobo_sync_selected_shelfs
- PASS
+
+
+
+
+
+
+
+
- TestKoboSync - test_shelves_add_remove_books
+ TestKoboSync - test_kobo_upload_book
PASS
-
+
+
+ TestKoboSync - test_shelves_add_remove_books
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TestKoboSync - test_sync_changed_book
- PASS
+
+
+
+
+
+
+
+
-
+
TestKoboSync - test_sync_invalid
@@ -1917,7 +1995,7 @@
-
+
TestKoboSync - test_sync_reading_state
@@ -1926,16 +2004,36 @@
-
+
TestKoboSync - test_sync_shelf
- PASS
+
+
+
+
+
+
+
+
-
+
TestKoboSync - test_sync_unchanged
@@ -1944,11 +2042,31 @@
-
+
TestKoboSync - test_sync_upload
- PASS
+
+
+
+
+
+
+
+
@@ -1956,13 +2074,13 @@
TestKoboSyncBig
- 4
- 4
+ 5
+ 5
0
0
0
- Detail
+ Detail
@@ -1970,7 +2088,7 @@
- TestKoboSyncBig - test_kobo_sync_selected_shelfs
+ TestKoboSyncBig - test_kobo_sync_multi_user
PASS
@@ -1979,7 +2097,7 @@
- TestKoboSyncBig - test_sync_changed_book
+ TestKoboSyncBig - test_kobo_sync_selected_shelfs
PASS
@@ -1988,7 +2106,7 @@
- TestKoboSyncBig - test_sync_reading_state
+ TestKoboSyncBig - test_sync_changed_book
PASS
@@ -1996,6 +2114,15 @@
+
+ TestKoboSyncBig - test_sync_reading_state
+
+ PASS
+
+
+
+
+
TestKoboSyncBig - test_sync_shelf
@@ -2137,15 +2264,15 @@
-
- TestLogging
- 9
+
+ TestCalibreWebListOrders
+ 8
8
0
0
- 1
+ 0
- Detail
+ Detail
@@ -2153,7 +2280,7 @@
- TestLogging - test_access_log_recover
+ TestCalibreWebListOrders - test_author_sort
PASS
@@ -2162,7 +2289,7 @@
- TestLogging - test_debug_log
+ TestCalibreWebListOrders - test_download_sort
PASS
@@ -2171,7 +2298,7 @@
- TestLogging - test_debuginfo_download
+ TestCalibreWebListOrders - test_format_sort
PASS
@@ -2179,6 +2306,93 @@
+
+ TestCalibreWebListOrders - test_lang_sort
+
+ PASS
+
+
+
+
+
+
+ TestCalibreWebListOrders - test_publisher_sort
+
+ PASS
+
+
+
+
+
+
+ TestCalibreWebListOrders - test_ratings_sort
+
+ PASS
+
+
+
+
+
+
+ TestCalibreWebListOrders - test_series_sort
+
+ PASS
+
+
+
+
+
+
+ TestCalibreWebListOrders - test_tags_sort
+
+ PASS
+
+
+
+
+
+
+ TestLogging
+ 9
+ 8
+ 0
+ 0
+ 1
+
+ Detail
+
+
+
+
+
+
+
+ TestLogging - test_access_log_recover
+
+ PASS
+
+
+
+
+
+
+ TestLogging - test_debug_log
+
+ PASS
+
+
+
+
+
+
+ TestLogging - test_debuginfo_download
+
+ PASS
+
+
+
+
+
TestLogging - test_failed_login
@@ -2187,19 +2401,19 @@
-
+
TestLogging - test_failed_register
-
+
-