diff --git a/cps/db.py b/cps/db.py
index e4082a16..f25848c7 100755
--- a/cps/db.py
+++ b/cps/db.py
@@ -294,7 +294,7 @@ def setup_db():
return False
dbpath = os.path.join(config.config_calibre_dir, "metadata.db")
- engine = create_engine('sqlite:///{0}'.format(dbpath.encode('utf-8')), echo=False)
+ engine = create_engine('sqlite:///{0}'.format(dbpath.encode('utf-8')), echo=False, isolation_level="SERIALIZABLE")
try:
conn = engine.connect()
diff --git a/cps/epub.py b/cps/epub.py
index e6945d75..f9d46362 100644
--- a/cps/epub.py
+++ b/cps/epub.py
@@ -7,13 +7,14 @@ import os
import uploader
-def extractCover(zip, coverFile, tmp_file_name):
+def extractCover(zip, coverFile, coverpath, tmp_file_name):
if coverFile is None:
return None
else:
- cf = zip.read("OPS/" + coverFile)
+ zipCoverPath = os.path.join(coverpath , coverFile).replace('\\','/')
+ cf = zip.read(zipCoverPath)
prefix = os.path.splitext(tmp_file_name)[0]
- tmp_cover_name = prefix + "." + coverFile
+ tmp_cover_name = prefix + '.' + os.path.basename(zipCoverPath)
image = open(tmp_cover_name, 'wb')
image.write(cf)
image.close()
@@ -32,10 +33,11 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
txt = zip.read('META-INF/container.xml')
tree = etree.fromstring(txt)
cfname = tree.xpath('n:rootfiles/n:rootfile/@full-path', namespaces=ns)[0]
-
cf = zip.read(cfname)
tree = etree.fromstring(cf)
+ coverpath=os.path.dirname(cfname)
+
p = tree.xpath('/pkg:package/pkg:metadata', namespaces=ns)[0]
epub_metadata = {}
@@ -46,11 +48,16 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
else:
epub_metadata[s] = "Unknown"
- coversection = tree.xpath("/pkg:package/pkg:manifest/pkg:item[@id='cover']/@href", namespaces=ns)
+ coversection = tree.xpath("/pkg:package/pkg:manifest/pkg:item[@id='cover-image']/@href", namespaces=ns)
if len(coversection) > 0:
- coverfile = extractCover(zip, coversection[0], tmp_file_path)
+ coverfile = extractCover(zip, coversection[0], coverpath, tmp_file_path)
else:
- coverfile = None
+ coversection = tree.xpath("/pkg:package/pkg:manifest/pkg:item[@id='cover']/@href", namespaces=ns)
+ if len(coversection) > 0:
+ coverfile = extractCover(zip, coversection[0], coverpath, tmp_file_path)
+ else:
+ coverfile = None
+
if epub_metadata['title'] is None:
title = original_file_name
else:
diff --git a/cps/static/js/main.js b/cps/static/js/main.js
index 0a184530..8b0b099f 100644
--- a/cps/static/js/main.js
+++ b/cps/static/js/main.js
@@ -50,7 +50,7 @@ $(function() {
});
$("#check_for_update").click(function() {
var button_text = $("#check_for_update").html();
- $("#check_for_update").html('Checking...');
+ $("#check_for_update").html('...');
$.ajax({
dataType: 'json',
url: window.location.pathname+"/../../get_update_status",
diff --git a/cps/templates/book_edit.html b/cps/templates/book_edit.html
index fe1407c9..3db04558 100644
--- a/cps/templates/book_edit.html
+++ b/cps/templates/book_edit.html
@@ -113,9 +113,13 @@
-{% endblock %} {% block js %}
+{% endblock %}
+
+{% block js %}
-{% endblock %} {% block header %}
- {% endblock %}
\ No newline at end of file
+{% endblock %}
+{% block header %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/cps/templates/detail.html b/cps/templates/detail.html
index 0a5167b6..9639e954 100644
--- a/cps/templates/detail.html
+++ b/cps/templates/detail.html
@@ -132,10 +132,10 @@
{% endif %}
- {% if g.user.is_authenticated %}
- {% if g.user.kindle_mail %}
+ {% if g.user.kindle_mail and g.user.is_authenticated %}
{{_('Send to Kindle')}}
{% endif %}
+ {% if (g.user.role_download() and g.user.is_anonymous()) or g.user.is_authenticated %}
{% endblock %}
diff --git a/cps/templates/list.html b/cps/templates/list.html
index d424d495..0a63b139 100644
--- a/cps/templates/list.html
+++ b/cps/templates/list.html
@@ -2,11 +2,17 @@
{% block body %}
{{title}}
+
{% for entry in entries %}
+ {% if loop.index0 == (loop.length/2)|int and loop.length > 20 %}
+
+
+ {% endif %}
{% endfor %}
+
{% endblock %}
diff --git a/cps/templates/stats.html b/cps/templates/stats.html
index 7ab72092..4b08afda 100644
--- a/cps/templates/stats.html
+++ b/cps/templates/stats.html
@@ -78,7 +78,14 @@
Requests |
v{{versions['requests']}} |
-
+
+ SQlite |
+ v{{versions['sqlite']}} |
+
+
+ Pysqlite |
+ v{{versions['pysqlite']}} |
+
diff --git a/cps/templates/user_edit.html b/cps/templates/user_edit.html
index b9cff3eb..2d4354ec 100644
--- a/cps/templates/user_edit.html
+++ b/cps/templates/user_edit.html
@@ -40,6 +40,8 @@
{% endfor %}
+
+
{% if g.user and g.user.role_admin() and not profile %}
{% if not content.role_anonymous() %}
@@ -106,13 +109,17 @@
{% endif %}
+
+
{% endif %}
{% if downloads %}
+
{{_('Recent Downloads')}}
{% for entry in downloads %}
@@ -121,6 +128,7 @@
{% endfor %}
+
{% endif %}
{% endblock %}
diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo
index 28e55bc1..0067f3ee 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 b36b72f0..3d95a892 100644
--- a/cps/translations/de/LC_MESSAGES/messages.po
+++ b/cps/translations/de/LC_MESSAGES/messages.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
-"POT-Creation-Date: 2017-02-20 19:47+0100\n"
+"POT-Creation-Date: 2017-02-27 21:10+0100\n"
"PO-Revision-Date: 2016-07-12 19:54+0200\n"
"Last-Translator: Ozzie Isaacs\n"
"Language: de\n"
@@ -32,347 +32,360 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
-#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
+#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1041
msgid "not installed"
msgstr "Nicht installiert"
-#: cps/helper.py:150
+#: cps/helper.py:152
#, python-format
msgid "Failed to send mail: %s"
msgstr "E-Mail: %s konnte nicht gesendet werden"
-#: cps/helper.py:157
+#: cps/helper.py:159
msgid "Calibre-web test email"
msgstr "Calibre-web Test E-Mail"
-#: cps/helper.py:158 cps/helper.py:168
+#: cps/helper.py:160 cps/helper.py:172
msgid "This email has been sent via calibre web."
msgstr "Die E-Mail wurde via calibre-web versendet"
-#: cps/helper.py:167 cps/templates/detail.html:130
+#: cps/helper.py:169 cps/templates/detail.html:136
msgid "Send to Kindle"
msgstr "An Kindle senden"
-#: cps/helper.py:185 cps/helper.py:200
+#: cps/helper.py:189 cps/helper.py:204
msgid "Could not find any formats suitable for sending by email"
msgstr ""
"Konnte keine Formate finden welche für das versenden per E-Mail geeignet "
"sind"
-#: cps/helper.py:194
+#: cps/helper.py:198
msgid "Could not convert epub to mobi"
msgstr "Konnte .epub nicht nach .mobi konvertieren"
-#: cps/ub.py:434
+#: cps/ub.py:433
msgid "Guest"
msgstr "Gast"
-#: cps/web.py:734
+#: cps/web.py:742
msgid "Requesting update package"
msgstr "Frage Update Paket an"
-#: cps/web.py:735
+#: cps/web.py:743
msgid "Downloading update package"
msgstr "Lade Update Paket herunter"
-#: cps/web.py:736
+#: cps/web.py:744
msgid "Unzipping update package"
msgstr "Entpacke Update Paket"
-#: cps/web.py:737
+#: cps/web.py:745
msgid "Files are replaced"
msgstr "Ersetze Dateien"
-#: cps/web.py:738
+#: cps/web.py:746
msgid "Database connections are closed"
msgstr "Schließe Datenbankverbindungen"
-#: cps/web.py:739
+#: cps/web.py:747
msgid "Server is stopped"
msgstr "Stoppe Server"
-#: cps/web.py:740
+#: cps/web.py:748
msgid "Update finished, please press okay and reload page"
msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden"
-#: cps/web.py:810
+#: cps/web.py:821
msgid "Latest Books"
msgstr "Letzte Bücher"
-#: cps/web.py:835
+#: cps/web.py:846
msgid "Hot Books (most downloaded)"
msgstr "Beliebte Bücher (die meisten Downloads)"
-#: cps/web.py:845
+#: cps/web.py:856
msgid "Best rated books"
msgstr "Best bewertete Bücher"
-#: cps/templates/index.xml:36 cps/web.py:854
+#: cps/templates/index.xml:36 cps/web.py:865
msgid "Random Books"
msgstr "Zufällige Bücher"
-#: cps/web.py:867
+#: cps/web.py:878
msgid "Author list"
msgstr "Autorenliste"
-#: cps/web.py:878
+#: cps/web.py:889
#, python-format
msgid "Author: %(name)s"
msgstr "Autor: %(name)s"
-#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
-#: cps/web.py:2115
+#: cps/web.py:891 cps/web.py:919 cps/web.py:1018 cps/web.py:1261
+#: cps/web.py:2143
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr ""
"Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht "
"zugänglich."
-#: cps/templates/index.xml:57 cps/web.py:894
+#: cps/templates/index.xml:57 cps/web.py:905
msgid "Series list"
msgstr "Liste Serien"
-#: cps/web.py:906
+#: cps/web.py:917
#, python-format
msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s"
-#: cps/web.py:939
+#: cps/web.py:950
msgid "Available languages"
msgstr "Verfügbare Sprachen"
-#: cps/web.py:954
+#: cps/web.py:965
#, python-format
msgid "Language: %(name)s"
msgstr "Sprache: %(name)s"
-#: cps/templates/index.xml:50 cps/web.py:967
+#: cps/templates/index.xml:50 cps/web.py:978
msgid "Category list"
msgstr "Kategorieliste"
-#: cps/web.py:979
+#: cps/web.py:990
#, python-format
msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s"
-#: cps/web.py:1040
+#: cps/web.py:1062
msgid "Statistics"
msgstr "Statistiken"
-#: cps/web.py:1061
+#: cps/web.py:1083
msgid "Server restarted, please reload page"
msgstr "Server neu gestartet,bitte Seite neu laden"
-#: cps/web.py:1063
+#: cps/web.py:1085
msgid "Performing shutdown of server, please close window"
msgstr "Server wird runtergefahren, bitte Fenster schließen"
-#: cps/web.py:1073
+#: cps/web.py:1095
msgid "Update done"
msgstr "Update durchgeführt"
-#: cps/web.py:1147 cps/web.py:1160
+#: cps/web.py:1173 cps/web.py:1186
msgid "search"
msgstr "Suche"
-#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
+#: cps/web.py:1237 cps/web.py:1244 cps/web.py:1251 cps/web.py:1258
msgid "Read a Book"
msgstr "Lese ein Buch"
-#: cps/web.py:1276 cps/web.py:1713
+#: cps/web.py:1302 cps/web.py:1739
msgid "Please fill out all fields!"
msgstr "Bitte alle Felder ausfüllen!"
-#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
+#: cps/web.py:1303 cps/web.py:1319 cps/web.py:1324 cps/web.py:1326
msgid "register"
msgstr "Registieren"
-#: cps/web.py:1292
+#: cps/web.py:1318
msgid "An unknown error occured. Please try again later."
msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen."
-#: cps/web.py:1297
+#: cps/web.py:1323
msgid "This username or email address is already in use."
msgstr "Der Benutzername oder die E-Mailadresse ist in bereits in Benutzung."
-#: cps/web.py:1315
+#: cps/web.py:1341
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Du bist nun eingeloggt als '%(nickname)s'"
-#: cps/web.py:1320
+#: cps/web.py:1346
msgid "Wrong Username or Password"
msgstr "Falscher Benutzername oder Passwort"
-#: cps/web.py:1322
+#: cps/web.py:1348
msgid "login"
msgstr "Login"
-#: cps/web.py:1339
+#: cps/web.py:1365
msgid "Please configure the SMTP mail settings first..."
msgstr "Bitte zuerst die SMTP Mail Einstellung konfigurieren ..."
-#: cps/web.py:1343
+#: cps/web.py:1369
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "Buch erfolgreich versandt an %(kindlemail)s"
-#: cps/web.py:1347
+#: cps/web.py:1373
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Beim Senden des Buchs trat ein Fehler auf: %(res)s"
-#: cps/web.py:1349
+#: cps/web.py:1375
msgid "Please configure your kindle email address first..."
msgstr "Bitte die Kindle E-Mail Adresse zuuerst konfigurieren..."
-#: cps/web.py:1369
+#: cps/web.py:1395
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "Das Buch wurde dem Bücherregal: %(sname)s hinzugefügt"
-#: cps/web.py:1390
+#: cps/web.py:1416
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Das Buch wurde aus dem Bücherregal: %(sname)s entfernt"
-#: cps/web.py:1409 cps/web.py:1433
+#: cps/web.py:1435 cps/web.py:1459
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Es existiert bereits ein Bücheregal mit dem Titel '%(title)s'"
-#: cps/web.py:1414
+#: cps/web.py:1440
#, python-format
msgid "Shelf %(title)s created"
msgstr "Bücherregal %(title)s erzeugt"
-#: cps/web.py:1416 cps/web.py:1444
+#: cps/web.py:1442 cps/web.py:1470
msgid "There was an error"
msgstr "Es trat ein Fehler auf"
-#: cps/web.py:1417 cps/web.py:1419
+#: cps/web.py:1443 cps/web.py:1445
msgid "create a shelf"
msgstr "Bücherregal erzeugen"
-#: cps/web.py:1442
+#: cps/web.py:1468
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Bücherregal %(title)s verändert"
-#: cps/web.py:1445 cps/web.py:1447
+#: cps/web.py:1471 cps/web.py:1473
msgid "Edit a shelf"
msgstr "Bücherregal editieren"
-#: cps/web.py:1465
+#: cps/web.py:1491
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "Bücherregal %(name)s erfolgreich gelöscht"
-#: cps/web.py:1487
+#: cps/web.py:1513
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Bücherregal: '%(name)s'"
-#: cps/web.py:1518
+#: cps/web.py:1544
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Reihenfolge in Bücherregal '%(name)s' verändern"
-#: cps/web.py:1580
+#: cps/web.py:1606
msgid "Found an existing account for this email address."
msgstr "Es existiert ein Benutzerkonto für diese E-Mailadresse"
-#: cps/web.py:1582 cps/web.py:1586
+#: cps/web.py:1608 cps/web.py:1612
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s's Profil"
-#: cps/web.py:1583
+#: cps/web.py:1609
msgid "Profile updated"
msgstr "Profil aktualisiert"
-#: cps/web.py:1597
+#: cps/web.py:1623
msgid "Admin page"
msgstr "Admin Seite"
-#: cps/web.py:1668
+#: cps/web.py:1694
msgid "Calibre-web configuration updated"
msgstr "Calibre-web Konfiguration wurde aktualisiert"
-#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
+#: cps/web.py:1701 cps/web.py:1707 cps/web.py:1720
msgid "Basic Configuration"
msgstr "Basis Konfiguration"
-#: cps/web.py:1679
+#: cps/web.py:1705
msgid "DB location is not valid, please enter correct path"
msgstr "DB Speicherort ist ungültig, bitte Pfad korrigieren"
-#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
+#: cps/templates/admin.html:34 cps/web.py:1741 cps/web.py:1787
msgid "Add new user"
msgstr "Neuen Benutzer hinzufügen"
-#: cps/web.py:1753
+#: cps/web.py:1779
#, python-format
msgid "User '%(user)s' created"
msgstr "Benutzer '%(user)s' angelegt"
-#: cps/web.py:1757
+#: cps/web.py:1783
msgid "Found an existing account for this email address or nickname."
msgstr ""
"Es existiert ein Benutzerkonto für diese Emailadresse oder den "
"Benutzernamen."
-#: cps/web.py:1779
+#: cps/web.py:1805
msgid "Mail settings updated"
msgstr "E-Mail Einstellungen aktualisiert"
-#: cps/web.py:1785
+#: cps/web.py:1811
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Test E-Mail erfolgreich an %(kindlemail)s versendet"
-#: cps/web.py:1788
+#: cps/web.py:1814
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr "Fehler beim versenden der Test E-Mail: %(res)s"
-#: cps/web.py:1789
+#: cps/web.py:1816
+msgid "E-Mail settings updated"
+msgstr ""
+
+#: cps/web.py:1817
msgid "Edit mail settings"
msgstr "E-Mail Einstellungen editieren"
-#: cps/web.py:1817
+#: cps/web.py:1845
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Benutzer '%(nick)s' gelöscht"
-#: cps/web.py:1898
+#: cps/web.py:1926
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Benutzer '%(nick)s' aktualisiert"
-#: cps/web.py:1901
+#: cps/web.py:1929
msgid "An unknown error occured."
msgstr "Es ist ein unbekanter Fehler aufgetreten"
-#: cps/web.py:1904
+#: cps/web.py:1932
#, python-format
msgid "Edit User %(nick)s"
msgstr "Benutzer %(nick)s bearbeiten"
-#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
+#: cps/web.py:2138 cps/web.py:2141 cps/web.py:2228
msgid "edit metadata"
msgstr "Metadaten editieren"
-#: cps/web.py:2145
+#: cps/web.py:2162
+#, python-format
+msgid "File extension \"%s\" is not allowed to be uploaded to this server"
+msgstr ""
+
+#: cps/web.py:2168
+msgid "File to be uploaded must have an extension"
+msgstr ""
+
+#: cps/web.py:2185
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "Fehler beim Erzeugen des Pfads %s (Zugriff verweigert)"
-#: cps/web.py:2150
+#: cps/web.py:2190
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "Fehler beim speichern der Datei %s (Zugriff verweigert)"
-#: cps/web.py:2155
+#: cps/web.py:2195
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "Fehler beim Löschen von Datei %s (Zugriff verweigert)"
@@ -401,7 +414,7 @@ msgstr "DLS"
msgid "Admin"
msgstr "Admin"
-#: cps/templates/admin.html:13 cps/templates/detail.html:117
+#: cps/templates/admin.html:13 cps/templates/detail.html:124
msgid "Download"
msgstr "Download"
@@ -521,7 +534,7 @@ msgstr "Ok"
#: cps/templates/admin.html:102 cps/templates/admin.html:116
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
-#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
+#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:116
msgid "Back"
msgstr "Zurück"
@@ -545,12 +558,12 @@ msgstr "Autor"
msgid "Description"
msgstr "Beschreibung"
-#: cps/templates/book_edit.html:28 cps/templates/search_form.html:13
+#: cps/templates/book_edit.html:28 cps/templates/search_form.html:17
msgid "Tags"
msgstr "Tags"
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
-#: cps/templates/search_form.html:33
+#: cps/templates/search_form.html:37
msgid "Series"
msgstr "Serien"
@@ -583,8 +596,8 @@ msgid "view book after edit"
msgstr "Buch nach Bearbeitung ansehen"
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
-#: cps/templates/login.html:19 cps/templates/search_form.html:75
-#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
+#: cps/templates/login.html:19 cps/templates/search_form.html:79
+#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:114
msgid "Submit"
msgstr "Abschicken"
@@ -624,23 +637,23 @@ msgstr "Öffentliche Registrierung aktivieren"
msgid "Default Settings for new users"
msgstr "Default Einstellungen für neue Benutzer"
-#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
+#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Admin Benutzer"
-#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
+#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:88
msgid "Allow Downloads"
msgstr "Downloads erlauben"
-#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
+#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:92
msgid "Allow Uploads"
msgstr "Uploads erlauben"
-#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
+#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:96
msgid "Allow Edit"
msgstr "Bearbeiten erlauben"
-#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
+#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:101
msgid "Allow Changing Password"
msgstr "Passwort ändern erlauben"
@@ -661,23 +674,27 @@ msgstr "von"
msgid "language"
msgstr "Sprache"
-#: cps/templates/detail.html:74
+#: cps/templates/detail.html:76 cps/templates/search_form.html:14
+msgid "Publisher"
+msgstr ""
+
+#: cps/templates/detail.html:81
msgid "Publishing date"
msgstr "Herausgabedatum"
-#: cps/templates/detail.html:106
+#: cps/templates/detail.html:113
msgid "Description:"
msgstr "Beschreibung"
-#: cps/templates/detail.html:134
+#: cps/templates/detail.html:141
msgid "Read in browser"
msgstr "Im Browser lesen"
-#: cps/templates/detail.html:154
+#: cps/templates/detail.html:161
msgid "Add to shelf"
msgstr "Zu Bücherregal hinzufügen"
-#: cps/templates/detail.html:194
+#: cps/templates/detail.html:201
msgid "Edit metadata"
msgstr "Metadaten bearbeiten"
@@ -807,7 +824,7 @@ msgstr "Entdecke"
msgid "Categories"
msgstr "Kategorien"
-#: cps/templates/layout.html:142 cps/templates/search_form.html:54
+#: cps/templates/layout.html:142 cps/templates/search_form.html:58
msgid "Languages"
msgstr "Sprachen"
@@ -889,15 +906,15 @@ msgstr "Versuche eine andere Suche"
msgid "Results for:"
msgstr "Ergebnisse für:"
-#: cps/templates/search_form.html:23
+#: cps/templates/search_form.html:27
msgid "Exclude Tags"
msgstr "Tags ausschließen"
-#: cps/templates/search_form.html:43
+#: cps/templates/search_form.html:47
msgid "Exclude Series"
msgstr "Serie ausschließen"
-#: cps/templates/search_form.html:64
+#: cps/templates/search_form.html:68
msgid "Exclude Languages"
msgstr "Sprache ausschließen"
@@ -922,37 +939,37 @@ msgid "Drag 'n drop to rearrange order"
msgstr "Drag 'n drop um Reihenfolge zu ändern"
#: cps/templates/stats.html:3
-msgid "Linked libraries"
-msgstr "Dynamische Bibliotheken"
-
-#: cps/templates/stats.html:8
-msgid "Program library"
-msgstr "Programm Bibliotheken"
-
-#: cps/templates/stats.html:9
-msgid "Installed Version"
-msgstr "Installierte Version"
-
-#: cps/templates/stats.html:32
msgid "Calibre library statistics"
msgstr "Calibre Bibliothek Statistiken"
-#: cps/templates/stats.html:37
+#: cps/templates/stats.html:8
msgid "Books in this Library"
msgstr "Bücher in dieser Bibliothek"
-#: cps/templates/stats.html:41
+#: cps/templates/stats.html:12
msgid "Authors in this Library"
msgstr "Autoren in dieser Bibliothek"
-#: cps/templates/stats.html:45
+#: cps/templates/stats.html:16
msgid "Categories in this Library"
msgstr "Kategorien in dieser Bibliothek"
-#: cps/templates/stats.html:49
+#: cps/templates/stats.html:20
msgid "Series in this Library"
msgstr "Serien in dieser Bibliothek"
+#: cps/templates/stats.html:24
+msgid "Linked libraries"
+msgstr "Dynamische Bibliotheken"
+
+#: cps/templates/stats.html:28
+msgid "Program library"
+msgstr "Programm Bibliotheken"
+
+#: cps/templates/stats.html:29
+msgid "Installed Version"
+msgstr "Installierte Version"
+
#: cps/templates/user_edit.html:23
msgid "Kindle E-Mail"
msgstr "Kindle E-Mail"
@@ -965,43 +982,43 @@ msgstr "Zeige nur Bücher mit dieser Sprache"
msgid "Show all"
msgstr "Zeige alle"
-#: cps/templates/user_edit.html:45
+#: cps/templates/user_edit.html:47
msgid "Show random books"
msgstr "Zeige Zufällige Bücher"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:51
msgid "Show hot books"
msgstr "Zeige Auswahl Beliebte Bücher"
-#: cps/templates/user_edit.html:53
+#: cps/templates/user_edit.html:55
msgid "Show best rated books"
msgstr "Zeige am besten bewertete Bücher"
-#: cps/templates/user_edit.html:57
+#: cps/templates/user_edit.html:59
msgid "Show language selection"
msgstr "Zeige Sprachauswahl"
-#: cps/templates/user_edit.html:61
+#: cps/templates/user_edit.html:63
msgid "Show series selection"
msgstr "Zeige Serienauswahl"
-#: cps/templates/user_edit.html:65
+#: cps/templates/user_edit.html:67
msgid "Show category selection"
msgstr "Zeige Kategorienauswahl"
-#: cps/templates/user_edit.html:69
+#: cps/templates/user_edit.html:71
msgid "Show author selection"
msgstr "Zeige Autorenauswahl"
-#: cps/templates/user_edit.html:73
+#: cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "Zeige zufällige Bücher in der Detailansicht"
-#: cps/templates/user_edit.html:105
+#: cps/templates/user_edit.html:108
msgid "Delete this user"
msgstr "Benutzer löschen"
-#: cps/templates/user_edit.html:116
+#: cps/templates/user_edit.html:123
msgid "Recent Downloads"
msgstr "Letzte Downloads"
diff --git a/cps/translations/es/LC_MESSAGES/messages.mo b/cps/translations/es/LC_MESSAGES/messages.mo
index 2c7f6ec7..0844114e 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 c695a965..bbb72131 100644
--- a/cps/translations/es/LC_MESSAGES/messages.po
+++ b/cps/translations/es/LC_MESSAGES/messages.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
-"POT-Creation-Date: 2017-02-20 19:47+0100\n"
+"POT-Creation-Date: 2017-02-27 21:10+0100\n"
"PO-Revision-Date: 2016-11-13 18:35+0100\n"
"Last-Translator: Juan F. Villa \n"
"Language: es\n"
@@ -25,341 +25,354 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
-#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
+#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1041
msgid "not installed"
msgstr "No instalado"
-#: cps/helper.py:150
+#: cps/helper.py:152
#, python-format
msgid "Failed to send mail: %s"
msgstr "Fallo al enviar el correo : %s"
-#: cps/helper.py:157
+#: cps/helper.py:159
msgid "Calibre-web test email"
msgstr "Prueba de Correo Calibre-web"
-#: cps/helper.py:158 cps/helper.py:168
+#: cps/helper.py:160 cps/helper.py:172
msgid "This email has been sent via calibre web."
msgstr "Este mensaje ha sido enviado via Calibre Web."
-#: cps/helper.py:167 cps/templates/detail.html:130
+#: cps/helper.py:169 cps/templates/detail.html:136
msgid "Send to Kindle"
msgstr "Enviar a Kindle"
-#: cps/helper.py:185 cps/helper.py:200
+#: cps/helper.py:189 cps/helper.py:204
msgid "Could not find any formats suitable for sending by email"
msgstr "Formato no compatible para enviar por correo electronico"
-#: cps/helper.py:194
+#: cps/helper.py:198
msgid "Could not convert epub to mobi"
msgstr "No fue posible convertir de epub a mobi"
-#: cps/ub.py:434
+#: cps/ub.py:433
msgid "Guest"
msgstr ""
-#: cps/web.py:734
+#: cps/web.py:742
msgid "Requesting update package"
msgstr ""
-#: cps/web.py:735
+#: cps/web.py:743
msgid "Downloading update package"
msgstr ""
-#: cps/web.py:736
+#: cps/web.py:744
msgid "Unzipping update package"
msgstr ""
-#: cps/web.py:737
+#: cps/web.py:745
msgid "Files are replaced"
msgstr ""
-#: cps/web.py:738
+#: cps/web.py:746
msgid "Database connections are closed"
msgstr ""
-#: cps/web.py:739
+#: cps/web.py:747
msgid "Server is stopped"
msgstr ""
-#: cps/web.py:740
+#: cps/web.py:748
msgid "Update finished, please press okay and reload page"
msgstr ""
-#: cps/web.py:810
+#: cps/web.py:821
msgid "Latest Books"
msgstr "Libros recientes"
-#: cps/web.py:835
+#: cps/web.py:846
msgid "Hot Books (most downloaded)"
msgstr "Libros Populares (los mas descargados)"
-#: cps/web.py:845
+#: cps/web.py:856
msgid "Best rated books"
msgstr ""
-#: cps/templates/index.xml:36 cps/web.py:854
+#: cps/templates/index.xml:36 cps/web.py:865
msgid "Random Books"
msgstr "Libros al Azar"
-#: cps/web.py:867
+#: cps/web.py:878
msgid "Author list"
msgstr "Lista de Autores"
-#: cps/web.py:878
+#: cps/web.py:889
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
-#: cps/web.py:2115
+#: cps/web.py:891 cps/web.py:919 cps/web.py:1018 cps/web.py:1261
+#: cps/web.py:2143
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Error en apertura del Objeto. El archivo no existe o no es accesible"
-#: cps/templates/index.xml:57 cps/web.py:894
+#: cps/templates/index.xml:57 cps/web.py:905
msgid "Series list"
msgstr "lista de Series"
-#: cps/web.py:906
+#: cps/web.py:917
#, python-format
msgid "Series: %(serie)s"
msgstr "Series : %(serie)s"
-#: cps/web.py:939
+#: cps/web.py:950
msgid "Available languages"
msgstr "Lenguajes disponibles"
-#: cps/web.py:954
+#: cps/web.py:965
#, python-format
msgid "Language: %(name)s"
msgstr "Lenguaje: %(name)s"
-#: cps/templates/index.xml:50 cps/web.py:967
+#: cps/templates/index.xml:50 cps/web.py:978
msgid "Category list"
msgstr "Lista de Categorias"
-#: cps/web.py:979
+#: cps/web.py:990
#, python-format
msgid "Category: %(name)s"
msgstr "Categoria : %(name)s"
-#: cps/web.py:1040
+#: cps/web.py:1062
msgid "Statistics"
msgstr "Estadisticas"
-#: cps/web.py:1061
+#: cps/web.py:1083
msgid "Server restarted, please reload page"
msgstr ""
-#: cps/web.py:1063
+#: cps/web.py:1085
msgid "Performing shutdown of server, please close window"
msgstr ""
-#: cps/web.py:1073
+#: cps/web.py:1095
msgid "Update done"
msgstr ""
-#: cps/web.py:1147 cps/web.py:1160
+#: cps/web.py:1173 cps/web.py:1186
msgid "search"
msgstr ""
-#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
+#: cps/web.py:1237 cps/web.py:1244 cps/web.py:1251 cps/web.py:1258
msgid "Read a Book"
msgstr "Leer un Libro"
-#: cps/web.py:1276 cps/web.py:1713
+#: cps/web.py:1302 cps/web.py:1739
msgid "Please fill out all fields!"
msgstr "Por favor llenar todos los campos!"
-#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
+#: cps/web.py:1303 cps/web.py:1319 cps/web.py:1324 cps/web.py:1326
msgid "register"
msgstr "Registrarse"
-#: cps/web.py:1292
+#: cps/web.py:1318
msgid "An unknown error occured. Please try again later."
msgstr "Ocurrio un error. Intentar de nuevo mas tarde."
-#: cps/web.py:1297
+#: cps/web.py:1323
msgid "This username or email address is already in use."
msgstr "Usuario o direccion de correo en uso."
-#: cps/web.py:1315
+#: cps/web.py:1341
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Sesion iniciada como : '%(nickname)s'"
-#: cps/web.py:1320
+#: cps/web.py:1346
msgid "Wrong Username or Password"
msgstr "Usuario o contraseña invalido"
-#: cps/web.py:1322
+#: cps/web.py:1348
msgid "login"
msgstr "Iniciar Sesion"
-#: cps/web.py:1339
+#: cps/web.py:1365
msgid "Please configure the SMTP mail settings first..."
msgstr "Configurar primero los parametros SMTP por favor..."
-#: cps/web.py:1343
+#: cps/web.py:1369
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "Envio de Libro a %(kindlemail)s correctamente"
-#: cps/web.py:1347
+#: cps/web.py:1373
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Ha sucedido un error en el envio del Libro: %(res)s"
-#: cps/web.py:1349
+#: cps/web.py:1375
msgid "Please configure your kindle email address first..."
msgstr "Configurar primero la dirección de correo Kindle por favor..."
-#: cps/web.py:1369
+#: cps/web.py:1395
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "El libro fue agregado a el estante: %(sname)s"
-#: cps/web.py:1390
+#: cps/web.py:1416
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "El libro fue removido del estante: %(sname)s"
-#: cps/web.py:1409 cps/web.py:1433
+#: cps/web.py:1435 cps/web.py:1459
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Une étagère de ce nom '%(title)s' existe déjà."
-#: cps/web.py:1414
+#: cps/web.py:1440
#, python-format
msgid "Shelf %(title)s created"
msgstr "Estante %(title)s creado"
-#: cps/web.py:1416 cps/web.py:1444
+#: cps/web.py:1442 cps/web.py:1470
msgid "There was an error"
msgstr "Hemos tenido un error"
-#: cps/web.py:1417 cps/web.py:1419
+#: cps/web.py:1443 cps/web.py:1445
msgid "create a shelf"
msgstr "Crear un Estante"
-#: cps/web.py:1442
+#: cps/web.py:1468
#, python-format
msgid "Shelf %(title)s changed"
msgstr ""
-#: cps/web.py:1445 cps/web.py:1447
+#: cps/web.py:1471 cps/web.py:1473
msgid "Edit a shelf"
msgstr ""
-#: cps/web.py:1465
+#: cps/web.py:1491
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "Estante %(name)s fue borrado correctamente"
-#: cps/web.py:1487
+#: cps/web.py:1513
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Estante: '%(name)s'"
-#: cps/web.py:1518
+#: cps/web.py:1544
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr ""
-#: cps/web.py:1580
+#: cps/web.py:1606
msgid "Found an existing account for this email address."
msgstr "Existe una cuenta vinculada a esta cuenta de correo."
-#: cps/web.py:1582 cps/web.py:1586
+#: cps/web.py:1608 cps/web.py:1612
#, python-format
msgid "%(name)s's profile"
msgstr "Perfil de %(name)s"
-#: cps/web.py:1583
+#: cps/web.py:1609
msgid "Profile updated"
msgstr "Perfil actualizado"
-#: cps/web.py:1597
+#: cps/web.py:1623
msgid "Admin page"
msgstr ""
-#: cps/web.py:1668
+#: cps/web.py:1694
msgid "Calibre-web configuration updated"
msgstr ""
-#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
+#: cps/web.py:1701 cps/web.py:1707 cps/web.py:1720
msgid "Basic Configuration"
msgstr ""
-#: cps/web.py:1679
+#: cps/web.py:1705
msgid "DB location is not valid, please enter correct path"
msgstr ""
-#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
+#: cps/templates/admin.html:34 cps/web.py:1741 cps/web.py:1787
msgid "Add new user"
msgstr "Agregar un nuevo usuario"
-#: cps/web.py:1753
+#: cps/web.py:1779
#, python-format
msgid "User '%(user)s' created"
msgstr "Usuario '%(user)s' creado"
-#: cps/web.py:1757
+#: cps/web.py:1783
msgid "Found an existing account for this email address or nickname."
msgstr "Se ha encontrado una cuenta vinculada a esta cuenta de correo o usuario."
-#: cps/web.py:1779
+#: cps/web.py:1805
msgid "Mail settings updated"
msgstr "Parametros de correo actualizados"
-#: cps/web.py:1785
+#: cps/web.py:1811
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Exito al realizar envio de prueba a %(kindlemail)s"
-#: cps/web.py:1788
+#: cps/web.py:1814
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr "Error al realizar envio de prueba a E-Mail: %(res)s"
-#: cps/web.py:1789
+#: cps/web.py:1816
+msgid "E-Mail settings updated"
+msgstr ""
+
+#: cps/web.py:1817
msgid "Edit mail settings"
msgstr "Editar parametros de correo"
-#: cps/web.py:1817
+#: cps/web.py:1845
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Usuario '%(nick)s' borrado"
-#: cps/web.py:1898
+#: cps/web.py:1926
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Usuario '%(nick)s' Actualizado"
-#: cps/web.py:1901
+#: cps/web.py:1929
msgid "An unknown error occured."
msgstr "Oups ! Error inesperado."
-#: cps/web.py:1904
+#: cps/web.py:1932
#, python-format
msgid "Edit User %(nick)s"
msgstr "Editar Usuario %(nick)s"
-#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
+#: cps/web.py:2138 cps/web.py:2141 cps/web.py:2228
msgid "edit metadata"
msgstr ""
-#: cps/web.py:2145
+#: cps/web.py:2162
+#, python-format
+msgid "File extension \"%s\" is not allowed to be uploaded to this server"
+msgstr ""
+
+#: cps/web.py:2168
+msgid "File to be uploaded must have an extension"
+msgstr ""
+
+#: cps/web.py:2185
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "Fallo al crear la ruta %s (permiso negado)"
-#: cps/web.py:2150
+#: cps/web.py:2190
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "Fallo al almacenar el archivo %s (permiso negado)"
-#: cps/web.py:2155
+#: cps/web.py:2195
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "Fallo al borrar el archivo %s (permiso negado)"
@@ -388,7 +401,7 @@ msgstr "DLS"
msgid "Admin"
msgstr "Administracion"
-#: cps/templates/admin.html:13 cps/templates/detail.html:117
+#: cps/templates/admin.html:13 cps/templates/detail.html:124
msgid "Download"
msgstr "Descarga"
@@ -508,7 +521,7 @@ msgstr ""
#: cps/templates/admin.html:102 cps/templates/admin.html:116
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
-#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
+#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:116
msgid "Back"
msgstr "Regresar"
@@ -532,12 +545,12 @@ msgstr "Autor"
msgid "Description"
msgstr "Descripcion"
-#: cps/templates/book_edit.html:28 cps/templates/search_form.html:13
+#: cps/templates/book_edit.html:28 cps/templates/search_form.html:17
msgid "Tags"
msgstr "Etiqueta"
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
-#: cps/templates/search_form.html:33
+#: cps/templates/search_form.html:37
msgid "Series"
msgstr "Series"
@@ -570,8 +583,8 @@ msgid "view book after edit"
msgstr "Ver libro tras la edicion"
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
-#: cps/templates/login.html:19 cps/templates/search_form.html:75
-#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
+#: cps/templates/login.html:19 cps/templates/search_form.html:79
+#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:114
msgid "Submit"
msgstr "Enviar"
@@ -611,23 +624,23 @@ msgstr ""
msgid "Default Settings for new users"
msgstr ""
-#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
+#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Usuario Administrador"
-#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
+#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:88
msgid "Allow Downloads"
msgstr "Permitir descargas"
-#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
+#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:92
msgid "Allow Uploads"
msgstr "Permitir subidas de archivos"
-#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
+#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:96
msgid "Allow Edit"
msgstr "Permitir editar"
-#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
+#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:101
msgid "Allow Changing Password"
msgstr "Permitir cambiar la clave"
@@ -648,23 +661,27 @@ msgstr "de"
msgid "language"
msgstr "Lenguaje"
-#: cps/templates/detail.html:74
+#: cps/templates/detail.html:76 cps/templates/search_form.html:14
+msgid "Publisher"
+msgstr ""
+
+#: cps/templates/detail.html:81
msgid "Publishing date"
msgstr ""
-#: cps/templates/detail.html:106
+#: cps/templates/detail.html:113
msgid "Description:"
msgstr "Descripcion :"
-#: cps/templates/detail.html:134
+#: cps/templates/detail.html:141
msgid "Read in browser"
msgstr "Ver en el navegador"
-#: cps/templates/detail.html:154
+#: cps/templates/detail.html:161
msgid "Add to shelf"
msgstr "Agregar al estante"
-#: cps/templates/detail.html:194
+#: cps/templates/detail.html:201
msgid "Edit metadata"
msgstr "Editar la metadata"
@@ -792,7 +809,7 @@ msgstr "Descubrir"
msgid "Categories"
msgstr "Categoria"
-#: cps/templates/layout.html:142 cps/templates/search_form.html:54
+#: cps/templates/layout.html:142 cps/templates/search_form.html:58
msgid "Languages"
msgstr "Lenguaje"
@@ -874,15 +891,15 @@ msgstr "Intente una busqueda diferente"
msgid "Results for:"
msgstr "Resultados para:"
-#: cps/templates/search_form.html:23
+#: cps/templates/search_form.html:27
msgid "Exclude Tags"
msgstr "Excluir etiquetas"
-#: cps/templates/search_form.html:43
+#: cps/templates/search_form.html:47
msgid "Exclude Series"
msgstr ""
-#: cps/templates/search_form.html:64
+#: cps/templates/search_form.html:68
msgid "Exclude Languages"
msgstr ""
@@ -907,37 +924,37 @@ msgid "Drag 'n drop to rearrange order"
msgstr ""
#: cps/templates/stats.html:3
-msgid "Linked libraries"
-msgstr "Librerias vinculadas"
-
-#: cps/templates/stats.html:8
-msgid "Program library"
-msgstr "Librerias del programa"
-
-#: cps/templates/stats.html:9
-msgid "Installed Version"
-msgstr "Version instalada"
-
-#: cps/templates/stats.html:32
msgid "Calibre library statistics"
msgstr "Estadisticas de la Biblioteca"
-#: cps/templates/stats.html:37
+#: cps/templates/stats.html:8
msgid "Books in this Library"
msgstr "Libros en esta Biblioteca"
-#: cps/templates/stats.html:41
+#: cps/templates/stats.html:12
msgid "Authors in this Library"
msgstr "Autores en esta Biblioteca"
-#: cps/templates/stats.html:45
+#: cps/templates/stats.html:16
msgid "Categories in this Library"
msgstr ""
-#: cps/templates/stats.html:49
+#: cps/templates/stats.html:20
msgid "Series in this Library"
msgstr ""
+#: cps/templates/stats.html:24
+msgid "Linked libraries"
+msgstr "Librerias vinculadas"
+
+#: cps/templates/stats.html:28
+msgid "Program library"
+msgstr "Librerias del programa"
+
+#: cps/templates/stats.html:29
+msgid "Installed Version"
+msgstr "Version instalada"
+
#: cps/templates/user_edit.html:23
msgid "Kindle E-Mail"
msgstr "Correo del Kindle"
@@ -950,43 +967,43 @@ msgstr "Mostrar lenguaje de los libros"
msgid "Show all"
msgstr "Mostrar Todo"
-#: cps/templates/user_edit.html:45
+#: cps/templates/user_edit.html:47
msgid "Show random books"
msgstr "Mostrar libros al azar"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:51
msgid "Show hot books"
msgstr "Mostrar libros populares"
-#: cps/templates/user_edit.html:53
+#: cps/templates/user_edit.html:55
msgid "Show best rated books"
msgstr ""
-#: cps/templates/user_edit.html:57
+#: cps/templates/user_edit.html:59
msgid "Show language selection"
msgstr "Mostrar lenguaje seleccionado"
-#: cps/templates/user_edit.html:61
+#: cps/templates/user_edit.html:63
msgid "Show series selection"
msgstr "Mostrar series seleccionadas"
-#: cps/templates/user_edit.html:65
+#: cps/templates/user_edit.html:67
msgid "Show category selection"
msgstr "Mostrar categorias elegidas"
-#: cps/templates/user_edit.html:69
+#: cps/templates/user_edit.html:71
msgid "Show author selection"
msgstr ""
-#: cps/templates/user_edit.html:73
+#: cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr ""
-#: cps/templates/user_edit.html:105
+#: cps/templates/user_edit.html:108
msgid "Delete this user"
msgstr "Borrar este usuario"
-#: cps/templates/user_edit.html:116
+#: cps/templates/user_edit.html:123
msgid "Recent Downloads"
msgstr "Descargas Recientes"
diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo
index 9fe03e48..bc0ecf3c 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 76a2948a..d20a2f49 100644
--- a/cps/translations/fr/LC_MESSAGES/messages.po
+++ b/cps/translations/fr/LC_MESSAGES/messages.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
-"POT-Creation-Date: 2017-02-20 19:47+0100\n"
+"POT-Creation-Date: 2017-02-27 21:10+0100\n"
"PO-Revision-Date: 2016-11-13 18:35+0100\n"
"Last-Translator: Nicolas Roudninski \n"
"Language: fr\n"
@@ -31,343 +31,356 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
-#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
+#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1041
msgid "not installed"
msgstr ""
-#: cps/helper.py:150
+#: cps/helper.py:152
#, python-format
msgid "Failed to send mail: %s"
msgstr "Impossible d'envoyer le courriel : %s"
-#: cps/helper.py:157
+#: cps/helper.py:159
msgid "Calibre-web test email"
msgstr ""
-#: cps/helper.py:158 cps/helper.py:168
+#: cps/helper.py:160 cps/helper.py:172
msgid "This email has been sent via calibre web."
msgstr "Ce message a été envoyé depuis calibre web."
-#: cps/helper.py:167 cps/templates/detail.html:130
+#: cps/helper.py:169 cps/templates/detail.html:136
msgid "Send to Kindle"
msgstr "Envoyer ver Kindle"
-#: cps/helper.py:185 cps/helper.py:200
+#: cps/helper.py:189 cps/helper.py:204
msgid "Could not find any formats suitable for sending by email"
msgstr "Impossible de trouver un format adapté à envoyer par courriel"
-#: cps/helper.py:194
+#: cps/helper.py:198
msgid "Could not convert epub to mobi"
msgstr "Impossible de convertir epub vers mobi"
-#: cps/ub.py:434
+#: cps/ub.py:433
msgid "Guest"
msgstr ""
-#: cps/web.py:734
+#: cps/web.py:742
msgid "Requesting update package"
msgstr ""
-#: cps/web.py:735
+#: cps/web.py:743
msgid "Downloading update package"
msgstr ""
-#: cps/web.py:736
+#: cps/web.py:744
msgid "Unzipping update package"
msgstr ""
-#: cps/web.py:737
+#: cps/web.py:745
msgid "Files are replaced"
msgstr ""
-#: cps/web.py:738
+#: cps/web.py:746
msgid "Database connections are closed"
msgstr ""
-#: cps/web.py:739
+#: cps/web.py:747
msgid "Server is stopped"
msgstr ""
-#: cps/web.py:740
+#: cps/web.py:748
msgid "Update finished, please press okay and reload page"
msgstr ""
-#: cps/web.py:810
+#: cps/web.py:821
msgid "Latest Books"
msgstr "Derniers livres"
-#: cps/web.py:835
+#: cps/web.py:846
msgid "Hot Books (most downloaded)"
msgstr "Livres populaires (les plus téléchargés)"
-#: cps/web.py:845
+#: cps/web.py:856
msgid "Best rated books"
msgstr ""
-#: cps/templates/index.xml:36 cps/web.py:854
+#: cps/templates/index.xml:36 cps/web.py:865
msgid "Random Books"
msgstr "Livres au hasard"
-#: cps/web.py:867
+#: cps/web.py:878
msgid "Author list"
msgstr "Liste des auteurs"
-#: cps/web.py:878
+#: cps/web.py:889
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
-#: cps/web.py:2115
+#: cps/web.py:891 cps/web.py:919 cps/web.py:1018 cps/web.py:1261
+#: cps/web.py:2143
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr ""
"Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est "
"pas accessible :"
-#: cps/templates/index.xml:57 cps/web.py:894
+#: cps/templates/index.xml:57 cps/web.py:905
msgid "Series list"
msgstr "Liste des séries"
-#: cps/web.py:906
+#: cps/web.py:917
#, python-format
msgid "Series: %(serie)s"
msgstr "Séries : %(serie)s"
-#: cps/web.py:939
+#: cps/web.py:950
msgid "Available languages"
msgstr "Langues disponibles"
-#: cps/web.py:954
+#: cps/web.py:965
#, python-format
msgid "Language: %(name)s"
msgstr "Langue : %(name)s"
-#: cps/templates/index.xml:50 cps/web.py:967
+#: cps/templates/index.xml:50 cps/web.py:978
msgid "Category list"
msgstr "Liste des catégories"
-#: cps/web.py:979
+#: cps/web.py:990
#, python-format
msgid "Category: %(name)s"
msgstr "Catégorie : %(name)s"
-#: cps/web.py:1040
+#: cps/web.py:1062
msgid "Statistics"
msgstr "Statistiques"
-#: cps/web.py:1061
+#: cps/web.py:1083
msgid "Server restarted, please reload page"
msgstr ""
-#: cps/web.py:1063
+#: cps/web.py:1085
msgid "Performing shutdown of server, please close window"
msgstr ""
-#: cps/web.py:1073
+#: cps/web.py:1095
msgid "Update done"
msgstr ""
-#: cps/web.py:1147 cps/web.py:1160
+#: cps/web.py:1173 cps/web.py:1186
msgid "search"
msgstr ""
-#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
+#: cps/web.py:1237 cps/web.py:1244 cps/web.py:1251 cps/web.py:1258
msgid "Read a Book"
msgstr "Lire un livre"
-#: cps/web.py:1276 cps/web.py:1713
+#: cps/web.py:1302 cps/web.py:1739
msgid "Please fill out all fields!"
msgstr "SVP, complétez tous les champs !"
-#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
+#: cps/web.py:1303 cps/web.py:1319 cps/web.py:1324 cps/web.py:1326
msgid "register"
msgstr "S'enregistrer"
-#: cps/web.py:1292
+#: cps/web.py:1318
msgid "An unknown error occured. Please try again later."
msgstr "Une erreur a eu lieu. Merci de réessayez plus tard."
-#: cps/web.py:1297
+#: cps/web.py:1323
msgid "This username or email address is already in use."
msgstr "Ce nom d'utilisateur ou cette adresse de courriel est déjà utilisée."
-#: cps/web.py:1315
+#: cps/web.py:1341
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'"
-#: cps/web.py:1320
+#: cps/web.py:1346
msgid "Wrong Username or Password"
msgstr "Mauvais nom d'utilisateur ou mot de passe"
-#: cps/web.py:1322
+#: cps/web.py:1348
msgid "login"
msgstr "Connexion"
-#: cps/web.py:1339
+#: cps/web.py:1365
msgid "Please configure the SMTP mail settings first..."
msgstr "Veillez configurer les paramètres smtp d'abord..."
-#: cps/web.py:1343
+#: cps/web.py:1369
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "Livres envoyés à %(kindlemail)s avec succès"
-#: cps/web.py:1347
+#: cps/web.py:1373
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s"
-#: cps/web.py:1349
+#: cps/web.py:1375
msgid "Please configure your kindle email address first..."
msgstr "Veuillez configurer votre adresse kindle d'abord..."
-#: cps/web.py:1369
+#: cps/web.py:1395
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "Le livre a bien été ajouté à l'étagère : %(sname)s"
-#: cps/web.py:1390
+#: cps/web.py:1416
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Le livre a été supprimé de l'étagère %(sname)s"
-#: cps/web.py:1409 cps/web.py:1433
+#: cps/web.py:1435 cps/web.py:1459
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Une étagère de ce nom '%(title)s' existe déjà."
-#: cps/web.py:1414
+#: cps/web.py:1440
#, python-format
msgid "Shelf %(title)s created"
msgstr "Étagère %(title)s créée"
-#: cps/web.py:1416 cps/web.py:1444
+#: cps/web.py:1442 cps/web.py:1470
msgid "There was an error"
msgstr "Il y a eu une erreur"
-#: cps/web.py:1417 cps/web.py:1419
+#: cps/web.py:1443 cps/web.py:1445
msgid "create a shelf"
msgstr "Créer une étagère"
-#: cps/web.py:1442
+#: cps/web.py:1468
#, python-format
msgid "Shelf %(title)s changed"
msgstr ""
-#: cps/web.py:1445 cps/web.py:1447
+#: cps/web.py:1471 cps/web.py:1473
msgid "Edit a shelf"
msgstr ""
-#: cps/web.py:1465
+#: cps/web.py:1491
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "L'étagère %(name)s a été supprimé avec succès"
-#: cps/web.py:1487
+#: cps/web.py:1513
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Étagère : '%(name)s'"
-#: cps/web.py:1518
+#: cps/web.py:1544
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr ""
-#: cps/web.py:1580
+#: cps/web.py:1606
msgid "Found an existing account for this email address."
msgstr "Un compte avec cette adresse de courriel existe déjà."
-#: cps/web.py:1582 cps/web.py:1586
+#: cps/web.py:1608 cps/web.py:1612
#, python-format
msgid "%(name)s's profile"
msgstr "Profil de %(name)s"
-#: cps/web.py:1583
+#: cps/web.py:1609
msgid "Profile updated"
msgstr "Profil mis à jour"
-#: cps/web.py:1597
+#: cps/web.py:1623
msgid "Admin page"
msgstr ""
-#: cps/web.py:1668
+#: cps/web.py:1694
msgid "Calibre-web configuration updated"
msgstr ""
-#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
+#: cps/web.py:1701 cps/web.py:1707 cps/web.py:1720
msgid "Basic Configuration"
msgstr ""
-#: cps/web.py:1679
+#: cps/web.py:1705
msgid "DB location is not valid, please enter correct path"
msgstr ""
-#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
+#: cps/templates/admin.html:34 cps/web.py:1741 cps/web.py:1787
msgid "Add new user"
msgstr "Ajouter un nouvel utilisateur"
-#: cps/web.py:1753
+#: cps/web.py:1779
#, python-format
msgid "User '%(user)s' created"
msgstr "Utilisateur '%(user)s' créé"
-#: cps/web.py:1757
+#: cps/web.py:1783
msgid "Found an existing account for this email address or nickname."
msgstr "Un compte avec cette adresse de courriel ou ce surnom existe déjà."
-#: cps/web.py:1779
+#: cps/web.py:1805
msgid "Mail settings updated"
msgstr "Paramètres de courriel mis à jour"
-#: cps/web.py:1785
+#: cps/web.py:1811
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr ""
-#: cps/web.py:1788
+#: cps/web.py:1814
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr ""
-#: cps/web.py:1789
+#: cps/web.py:1816
+msgid "E-Mail settings updated"
+msgstr ""
+
+#: cps/web.py:1817
msgid "Edit mail settings"
msgstr "Éditer les paramètres de courriel"
-#: cps/web.py:1817
+#: cps/web.py:1845
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Utilisateur '%(nick)s' supprimé"
-#: cps/web.py:1898
+#: cps/web.py:1926
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Utilisateur '%(nick)s' mis à jour"
-#: cps/web.py:1901
+#: cps/web.py:1929
msgid "An unknown error occured."
msgstr "Oups ! Une erreur inconnue a eu lieu."
-#: cps/web.py:1904
+#: cps/web.py:1932
#, python-format
msgid "Edit User %(nick)s"
msgstr "Éditer l'utilisateur %(nick)s"
-#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
+#: cps/web.py:2138 cps/web.py:2141 cps/web.py:2228
msgid "edit metadata"
msgstr ""
-#: cps/web.py:2145
+#: cps/web.py:2162
+#, python-format
+msgid "File extension \"%s\" is not allowed to be uploaded to this server"
+msgstr ""
+
+#: cps/web.py:2168
+msgid "File to be uploaded must have an extension"
+msgstr ""
+
+#: cps/web.py:2185
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "Impossible de créer le chemin %s (permission refusée)"
-#: cps/web.py:2150
+#: cps/web.py:2190
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "Impossible d'enregistrer le fichier %s (permission refusée)"
-#: cps/web.py:2155
+#: cps/web.py:2195
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "Impossible de supprimer le fichier %s (permission refusée)"
@@ -396,7 +409,7 @@ msgstr "DLS"
msgid "Admin"
msgstr "Administration"
-#: cps/templates/admin.html:13 cps/templates/detail.html:117
+#: cps/templates/admin.html:13 cps/templates/detail.html:124
msgid "Download"
msgstr "Télécharger"
@@ -516,7 +529,7 @@ msgstr ""
#: cps/templates/admin.html:102 cps/templates/admin.html:116
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
-#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
+#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:116
msgid "Back"
msgstr "Retour"
@@ -540,12 +553,12 @@ msgstr "Auteur"
msgid "Description"
msgstr "Description"
-#: cps/templates/book_edit.html:28 cps/templates/search_form.html:13
+#: cps/templates/book_edit.html:28 cps/templates/search_form.html:17
msgid "Tags"
msgstr "Étiquette"
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
-#: cps/templates/search_form.html:33
+#: cps/templates/search_form.html:37
msgid "Series"
msgstr "Séries"
@@ -578,8 +591,8 @@ msgid "view book after edit"
msgstr "Voir le livre après l'édition"
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
-#: cps/templates/login.html:19 cps/templates/search_form.html:75
-#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
+#: cps/templates/login.html:19 cps/templates/search_form.html:79
+#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:114
msgid "Submit"
msgstr "Soumettre"
@@ -619,23 +632,23 @@ msgstr ""
msgid "Default Settings for new users"
msgstr ""
-#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
+#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Utilisateur admin"
-#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
+#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:88
msgid "Allow Downloads"
msgstr "Permettre les téléchargements"
-#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
+#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:92
msgid "Allow Uploads"
msgstr "Permettre les téléversements"
-#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
+#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:96
msgid "Allow Edit"
msgstr "Permettre l'édition"
-#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
+#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:101
msgid "Allow Changing Password"
msgstr "Permettre le changement de mot de passe"
@@ -656,23 +669,27 @@ msgstr ""
msgid "language"
msgstr "Langue"
-#: cps/templates/detail.html:74
+#: cps/templates/detail.html:76 cps/templates/search_form.html:14
+msgid "Publisher"
+msgstr ""
+
+#: cps/templates/detail.html:81
msgid "Publishing date"
msgstr ""
-#: cps/templates/detail.html:106
+#: cps/templates/detail.html:113
msgid "Description:"
msgstr "Description :"
-#: cps/templates/detail.html:134
+#: cps/templates/detail.html:141
msgid "Read in browser"
msgstr "Lire dans le navigateur"
-#: cps/templates/detail.html:154
+#: cps/templates/detail.html:161
msgid "Add to shelf"
msgstr "Ajouter à l'étagère"
-#: cps/templates/detail.html:194
+#: cps/templates/detail.html:201
msgid "Edit metadata"
msgstr "Éditer les métadonnées"
@@ -800,7 +817,7 @@ msgstr "Découvrir"
msgid "Categories"
msgstr "Catégories"
-#: cps/templates/layout.html:142 cps/templates/search_form.html:54
+#: cps/templates/layout.html:142 cps/templates/search_form.html:58
msgid "Languages"
msgstr "Langues"
@@ -882,15 +899,15 @@ msgstr "Essayer une recherche différente"
msgid "Results for:"
msgstr "Résultats pour :"
-#: cps/templates/search_form.html:23
+#: cps/templates/search_form.html:27
msgid "Exclude Tags"
msgstr "Exclure des étiquettes"
-#: cps/templates/search_form.html:43
+#: cps/templates/search_form.html:47
msgid "Exclude Series"
msgstr ""
-#: cps/templates/search_form.html:64
+#: cps/templates/search_form.html:68
msgid "Exclude Languages"
msgstr ""
@@ -915,37 +932,37 @@ msgid "Drag 'n drop to rearrange order"
msgstr ""
#: cps/templates/stats.html:3
-msgid "Linked libraries"
-msgstr ""
-
-#: cps/templates/stats.html:8
-msgid "Program library"
-msgstr ""
-
-#: cps/templates/stats.html:9
-msgid "Installed Version"
-msgstr ""
-
-#: cps/templates/stats.html:32
msgid "Calibre library statistics"
msgstr ""
-#: cps/templates/stats.html:37
+#: cps/templates/stats.html:8
msgid "Books in this Library"
msgstr "Livres dans la bibiothèque"
-#: cps/templates/stats.html:41
+#: cps/templates/stats.html:12
msgid "Authors in this Library"
msgstr "Auteurs dans la bibliothèque"
-#: cps/templates/stats.html:45
+#: cps/templates/stats.html:16
msgid "Categories in this Library"
msgstr ""
-#: cps/templates/stats.html:49
+#: cps/templates/stats.html:20
msgid "Series in this Library"
msgstr ""
+#: cps/templates/stats.html:24
+msgid "Linked libraries"
+msgstr ""
+
+#: cps/templates/stats.html:28
+msgid "Program library"
+msgstr ""
+
+#: cps/templates/stats.html:29
+msgid "Installed Version"
+msgstr ""
+
#: cps/templates/user_edit.html:23
msgid "Kindle E-Mail"
msgstr "Courriel Kindle"
@@ -958,43 +975,43 @@ msgstr "Montrer les livres dans la langue"
msgid "Show all"
msgstr "Montrer tout"
-#: cps/templates/user_edit.html:45
+#: cps/templates/user_edit.html:47
msgid "Show random books"
msgstr "Montrer des livres au hasard"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:51
msgid "Show hot books"
msgstr "Montrer les livres populaires"
-#: cps/templates/user_edit.html:53
+#: cps/templates/user_edit.html:55
msgid "Show best rated books"
msgstr ""
-#: cps/templates/user_edit.html:57
+#: cps/templates/user_edit.html:59
msgid "Show language selection"
msgstr "Montrer la sélection de la langue"
-#: cps/templates/user_edit.html:61
+#: cps/templates/user_edit.html:63
msgid "Show series selection"
msgstr "Montrer la sélection des séries"
-#: cps/templates/user_edit.html:65
+#: cps/templates/user_edit.html:67
msgid "Show category selection"
msgstr "Montrer la sélection des catégories"
-#: cps/templates/user_edit.html:69
+#: cps/templates/user_edit.html:71
msgid "Show author selection"
msgstr ""
-#: cps/templates/user_edit.html:73
+#: cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr ""
-#: cps/templates/user_edit.html:105
+#: cps/templates/user_edit.html:108
msgid "Delete this user"
msgstr "Supprimer cet utilisateur"
-#: cps/templates/user_edit.html:116
+#: cps/templates/user_edit.html:123
msgid "Recent Downloads"
msgstr "Téléchargements récents"
diff --git a/cps/translations/pl/LC_MESSAGES/messages.mo b/cps/translations/pl/LC_MESSAGES/messages.mo
index 747a9970..9eb77a3c 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 6257519c..ada224da 100644
--- a/cps/translations/pl/LC_MESSAGES/messages.po
+++ b/cps/translations/pl/LC_MESSAGES/messages.po
@@ -1,15 +1,15 @@
-# Polish translations for Calibre Web -.
-# Copyright (C) 2017 ORGANIZATION
-# This file is distributed under the same license as the Calibre Web -
+# Polish translations for Calibre Web.
+# Copyright (C) 2017 Radosław Kierznowski
+# This file is distributed under the same license as the Calibre Web
# project.
-# FIRST AUTHOR , 2017.
+# Radosław Kierznowski , 2017.
#
msgid ""
msgstr ""
-"Project-Id-Version: Calibre Web - polski (170210.2017)\n"
+"Project-Id-Version: Calibre Web - polski (POT: 2017-02-20 19:47)\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-02-20 19:47+0100\n"
-"PO-Revision-Date: 2017-02-11 15:56+0100\n"
+"POT-Creation-Date: 2017-02-27 21:10+0100\n"
+"PO-Revision-Date: 2017-02-26 18:27+0100\n"
"Last-Translator: Radosław Kierznowski \n"
"Language: pl\n"
"Language-Team: \n"
@@ -20,343 +20,356 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
-#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
+#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1041
msgid "not installed"
msgstr "nie zainstalowane"
-#: cps/helper.py:150
+#: cps/helper.py:152
#, python-format
msgid "Failed to send mail: %s"
msgstr "Nie można wysłać poczty: %s"
-#: cps/helper.py:157
+#: cps/helper.py:159
msgid "Calibre-web test email"
msgstr "Calibre-web testowy email"
-#: cps/helper.py:158 cps/helper.py:168
+#: cps/helper.py:160 cps/helper.py:172
msgid "This email has been sent via calibre web."
msgstr "Ten e-mail został wysłany za pośrednictwem calibre web."
-#: cps/helper.py:167 cps/templates/detail.html:130
+#: cps/helper.py:169 cps/templates/detail.html:136
msgid "Send to Kindle"
msgstr "Wyślij do Kindle"
-#: cps/helper.py:185 cps/helper.py:200
+#: cps/helper.py:189 cps/helper.py:204
msgid "Could not find any formats suitable for sending by email"
msgstr ""
"Nie można znaleźć żadnych formatów przystosowane do wysyłania pocztą "
"e-mail"
-#: cps/helper.py:194
+#: cps/helper.py:198
msgid "Could not convert epub to mobi"
msgstr "Nie można konwertować epub do mobi"
-#: cps/ub.py:434
+#: cps/ub.py:433
msgid "Guest"
msgstr "Gość"
-#: cps/web.py:734
+#: cps/web.py:742
msgid "Requesting update package"
-msgstr ""
+msgstr "Prośbą o pakiet aktualizacji"
-#: cps/web.py:735
+#: cps/web.py:743
msgid "Downloading update package"
-msgstr ""
+msgstr "Pobieranie pakietu aktualizacji"
-#: cps/web.py:736
+#: cps/web.py:744
msgid "Unzipping update package"
msgstr ""
-#: cps/web.py:737
+#: cps/web.py:745
msgid "Files are replaced"
msgstr ""
-#: cps/web.py:738
+#: cps/web.py:746
msgid "Database connections are closed"
msgstr ""
-#: cps/web.py:739
+#: cps/web.py:747
msgid "Server is stopped"
msgstr ""
-#: cps/web.py:740
+#: cps/web.py:748
msgid "Update finished, please press okay and reload page"
msgstr ""
-#: cps/web.py:810
+#: cps/web.py:821
msgid "Latest Books"
msgstr "Najnowsze książki"
-#: cps/web.py:835
+#: cps/web.py:846
msgid "Hot Books (most downloaded)"
msgstr "Najpopularniejsze książki (najczęściej pobierane)"
-#: cps/web.py:845
+#: cps/web.py:856
msgid "Best rated books"
msgstr "Najlepiej oceniane książki"
-#: cps/templates/index.xml:36 cps/web.py:854
+#: cps/templates/index.xml:36 cps/web.py:865
msgid "Random Books"
msgstr "Losowe książki"
-#: cps/web.py:867
+#: cps/web.py:878
msgid "Author list"
msgstr "Lista autorów"
-#: cps/web.py:878
+#: cps/web.py:889
#, python-format
msgid "Author: %(name)s"
msgstr "Autor: %(name)s"
-#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
-#: cps/web.py:2115
+#: cps/web.py:891 cps/web.py:919 cps/web.py:1018 cps/web.py:1261
+#: cps/web.py:2143
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:"
-#: cps/templates/index.xml:57 cps/web.py:894
+#: cps/templates/index.xml:57 cps/web.py:905
msgid "Series list"
msgstr "Lista serii"
-#: cps/web.py:906
+#: cps/web.py:917
#, python-format
msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s"
-#: cps/web.py:939
+#: cps/web.py:950
msgid "Available languages"
msgstr "Dostępne języki"
-#: cps/web.py:954
+#: cps/web.py:965
#, python-format
msgid "Language: %(name)s"
msgstr "Język: %(name)s"
-#: cps/templates/index.xml:50 cps/web.py:967
+#: cps/templates/index.xml:50 cps/web.py:978
msgid "Category list"
msgstr "Lista kategorii"
-#: cps/web.py:979
+#: cps/web.py:990
#, python-format
msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s"
-#: cps/web.py:1040
+#: cps/web.py:1062
msgid "Statistics"
msgstr "Statystyki"
-#: cps/web.py:1061
+#: cps/web.py:1083
msgid "Server restarted, please reload page"
-msgstr ""
+msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę"
-#: cps/web.py:1063
+#: cps/web.py:1085
msgid "Performing shutdown of server, please close window"
msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno"
-#: cps/web.py:1073
+#: cps/web.py:1095
msgid "Update done"
msgstr "Aktualizacja zakończona"
-#: cps/web.py:1147 cps/web.py:1160
+#: cps/web.py:1173 cps/web.py:1186
msgid "search"
msgstr "szukaj"
-#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
+#: cps/web.py:1237 cps/web.py:1244 cps/web.py:1251 cps/web.py:1258
msgid "Read a Book"
msgstr "Czytaj książkę"
-#: cps/web.py:1276 cps/web.py:1713
+#: cps/web.py:1302 cps/web.py:1739
msgid "Please fill out all fields!"
msgstr "Proszę wypełnić wszystkie pola!"
-#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
+#: cps/web.py:1303 cps/web.py:1319 cps/web.py:1324 cps/web.py:1326
msgid "register"
msgstr "rejestracja"
-#: cps/web.py:1292
+#: cps/web.py:1318
msgid "An unknown error occured. Please try again later."
msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później."
-#: cps/web.py:1297
+#: cps/web.py:1323
msgid "This username or email address is already in use."
msgstr "Nazwa użytkownika lub adres e-mail jest już w użyciu."
-#: cps/web.py:1315
+#: cps/web.py:1341
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Zalogowałeś się jako: '%(nickname)s'"
-#: cps/web.py:1320
+#: cps/web.py:1346
msgid "Wrong Username or Password"
msgstr "Błędna nazwa użytkownika lub hasło"
-#: cps/web.py:1322
+#: cps/web.py:1348
msgid "login"
msgstr "logowanie"
-#: cps/web.py:1339
+#: cps/web.py:1365
msgid "Please configure the SMTP mail settings first..."
msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
-#: cps/web.py:1343
+#: cps/web.py:1369
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "Książka została pomyślnie wysłana do %(kindlemail)s"
-#: cps/web.py:1347
+#: cps/web.py:1373
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s"
-#: cps/web.py:1349
+#: cps/web.py:1375
msgid "Please configure your kindle email address first..."
msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..."
-#: cps/web.py:1369
+#: cps/web.py:1395
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "Książka została dodana do półki: %(sname)s"
-#: cps/web.py:1390
+#: cps/web.py:1416
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Książka została usunięta z półki: %(sname)s"
-#: cps/web.py:1409 cps/web.py:1433
+#: cps/web.py:1435 cps/web.py:1459
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Półka o nazwie '%(title)s' już istnieje."
-#: cps/web.py:1414
+#: cps/web.py:1440
#, python-format
msgid "Shelf %(title)s created"
msgstr "Półka %(title)s została utworzona"
-#: cps/web.py:1416 cps/web.py:1444
+#: cps/web.py:1442 cps/web.py:1470
msgid "There was an error"
msgstr "Wystąpił błąd"
-#: cps/web.py:1417 cps/web.py:1419
+#: cps/web.py:1443 cps/web.py:1445
msgid "create a shelf"
msgstr "utwórz półkę"
-#: cps/web.py:1442
+#: cps/web.py:1468
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Półka %(title)s została zmieniona"
-#: cps/web.py:1445 cps/web.py:1447
+#: cps/web.py:1471 cps/web.py:1473
msgid "Edit a shelf"
msgstr "Edytuj półkę"
-#: cps/web.py:1465
+#: cps/web.py:1491
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "pomyślnie usunięto półkę %(name)s"
-#: cps/web.py:1487
+#: cps/web.py:1513
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Półka: '%(name)s'"
-#: cps/web.py:1518
+#: cps/web.py:1544
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Zmieniono kolejność półki: '%(name)s'"
-#: cps/web.py:1580
+#: cps/web.py:1606
msgid "Found an existing account for this email address."
msgstr "Znaleziono istniejące konto dla tego adresu e-mail."
-#: cps/web.py:1582 cps/web.py:1586
+#: cps/web.py:1608 cps/web.py:1612
#, python-format
msgid "%(name)s's profile"
msgstr "Profil użytkownika %(name)s"
-#: cps/web.py:1583
+#: cps/web.py:1609
msgid "Profile updated"
msgstr "Zaktualizowano profil"
-#: cps/web.py:1597
+#: cps/web.py:1623
msgid "Admin page"
msgstr "Portal administracyjny"
-#: cps/web.py:1668
+#: cps/web.py:1694
msgid "Calibre-web configuration updated"
msgstr "Konfiguracja Calibre-web została zaktualizowana"
-#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
+#: cps/web.py:1701 cps/web.py:1707 cps/web.py:1720
msgid "Basic Configuration"
msgstr "Podstawowa konfiguracja"
-#: cps/web.py:1679
+#: cps/web.py:1705
msgid "DB location is not valid, please enter correct path"
msgstr "Lokalizacja bazy danych nie jest prawidłowa, wpisz poprawną ścieżkę"
-#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
+#: cps/templates/admin.html:34 cps/web.py:1741 cps/web.py:1787
msgid "Add new user"
msgstr "Dodaj nowego użytkownika"
-#: cps/web.py:1753
+#: cps/web.py:1779
#, python-format
msgid "User '%(user)s' created"
msgstr "Użytkownik '%(user)s' został utworzony"
-#: cps/web.py:1757
+#: cps/web.py:1783
msgid "Found an existing account for this email address or nickname."
msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika."
-#: cps/web.py:1779
+#: cps/web.py:1805
msgid "Mail settings updated"
msgstr "Zaktualizowano ustawienia poczty e-mail"
-#: cps/web.py:1785
+#: cps/web.py:1811
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Testowy e-mail pomyślnie wysłany do %(kindlemail)s"
-#: cps/web.py:1788
+#: cps/web.py:1814
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s"
-#: cps/web.py:1789
+#: cps/web.py:1816
+msgid "E-Mail settings updated"
+msgstr ""
+
+#: cps/web.py:1817
msgid "Edit mail settings"
msgstr "Edytuj ustawienia poczty e-mail"
-#: cps/web.py:1817
+#: cps/web.py:1845
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Użytkownik '%(nick)s' został usunięty"
-#: cps/web.py:1898
+#: cps/web.py:1926
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Użytkownik '%(nick)s' został zaktualizowany"
-#: cps/web.py:1901
+#: cps/web.py:1929
msgid "An unknown error occured."
msgstr "Wystąpił nieznany błąd."
-#: cps/web.py:1904
+#: cps/web.py:1932
#, python-format
msgid "Edit User %(nick)s"
msgstr "Edytuj użytkownika %(nick)s"
-#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
+#: cps/web.py:2138 cps/web.py:2141 cps/web.py:2228
msgid "edit metadata"
msgstr "edytuj metadane"
-#: cps/web.py:2145
+#: cps/web.py:2162
+#, python-format
+msgid "File extension \"%s\" is not allowed to be uploaded to this server"
+msgstr ""
+
+#: cps/web.py:2168
+msgid "File to be uploaded must have an extension"
+msgstr ""
+
+#: cps/web.py:2185
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)."
-#: cps/web.py:2150
+#: cps/web.py:2190
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)."
-#: cps/web.py:2155
+#: cps/web.py:2195
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)."
@@ -385,7 +398,7 @@ msgstr "DLS"
msgid "Admin"
msgstr "Portal administracyjny"
-#: cps/templates/admin.html:13 cps/templates/detail.html:117
+#: cps/templates/admin.html:13 cps/templates/detail.html:124
msgid "Download"
msgstr "Pobierz"
@@ -471,11 +484,11 @@ msgstr "Zarządzanie"
#: cps/templates/admin.html:80
msgid "Current commit timestamp"
-msgstr ""
+msgstr "Obecny znacznik czasowy wersji"
#: cps/templates/admin.html:81
msgid "Newest commit timestamp"
-msgstr ""
+msgstr "Nowy znacznik czasowy wersji"
#: cps/templates/admin.html:83
msgid "Restart Calibre-web"
@@ -505,7 +518,7 @@ msgstr "Ok"
#: cps/templates/admin.html:102 cps/templates/admin.html:116
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
-#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
+#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:116
msgid "Back"
msgstr "Wróć"
@@ -515,7 +528,7 @@ msgstr "Na pewno chcesz zatrzymać Calibre-web?"
#: cps/templates/admin.html:127
msgid "Updating, please do not reload page"
-msgstr ""
+msgstr "Aktualizowanie, proszę nie odświeżać strony"
#: cps/templates/book_edit.html:16 cps/templates/search_form.html:6
msgid "Book Title"
@@ -529,12 +542,12 @@ msgstr "Autor"
msgid "Description"
msgstr "Opis"
-#: cps/templates/book_edit.html:28 cps/templates/search_form.html:13
+#: cps/templates/book_edit.html:28 cps/templates/search_form.html:17
msgid "Tags"
msgstr "Tagi"
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
-#: cps/templates/search_form.html:33
+#: cps/templates/search_form.html:37
msgid "Series"
msgstr "Serie"
@@ -567,8 +580,8 @@ msgid "view book after edit"
msgstr "wyświetl książkę po edycji"
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
-#: cps/templates/login.html:19 cps/templates/search_form.html:75
-#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
+#: cps/templates/login.html:19 cps/templates/search_form.html:79
+#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:114
msgid "Submit"
msgstr "Wyślij"
@@ -608,23 +621,23 @@ msgstr "Włącz publiczną rejestrację"
msgid "Default Settings for new users"
msgstr "Domyślne ustawienia dla nowych użytkowników"
-#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
+#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Użytkownik z uprawnieniami administratora"
-#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
+#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:88
msgid "Allow Downloads"
msgstr "Zezwalaj na pobieranie"
-#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
+#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:92
msgid "Allow Uploads"
msgstr "Zezwalaj na wysyłanie"
-#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
+#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:96
msgid "Allow Edit"
msgstr "Zezwalaj na edycję"
-#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
+#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:101
msgid "Allow Changing Password"
msgstr "Zezwalaj na zmianę hasła"
@@ -645,23 +658,27 @@ msgstr "z"
msgid "language"
msgstr "język"
-#: cps/templates/detail.html:74
+#: cps/templates/detail.html:76 cps/templates/search_form.html:14
+msgid "Publisher"
+msgstr ""
+
+#: cps/templates/detail.html:81
msgid "Publishing date"
msgstr "Data publikacji"
-#: cps/templates/detail.html:106
+#: cps/templates/detail.html:113
msgid "Description:"
msgstr "Opis:"
-#: cps/templates/detail.html:134
+#: cps/templates/detail.html:141
msgid "Read in browser"
msgstr "Czytaj w przeglądarce"
-#: cps/templates/detail.html:154
+#: cps/templates/detail.html:161
msgid "Add to shelf"
msgstr "Dodaj do półki"
-#: cps/templates/detail.html:194
+#: cps/templates/detail.html:201
msgid "Edit metadata"
msgstr "Edytuj metadane"
@@ -791,7 +808,7 @@ msgstr "Odkrywaj"
msgid "Categories"
msgstr "Kategorie"
-#: cps/templates/layout.html:142 cps/templates/search_form.html:54
+#: cps/templates/layout.html:142 cps/templates/search_form.html:58
msgid "Languages"
msgstr "Języki"
@@ -827,11 +844,11 @@ msgstr "Zapamiętaj mnie"
#: cps/templates/osd.xml:5
msgid "Calibre Web ebook catalog"
-msgstr ""
+msgstr "Calibre Web katalog ebooków"
#: cps/templates/read.html:136
msgid "Reflow text when sidebars are open."
-msgstr ""
+msgstr "Tekst pływający, gdy paski boczne są otwarte."
#: cps/templates/readpdf.html:29
msgid "PDF.js viewer"
@@ -873,15 +890,15 @@ msgstr "Proszę wypróbować podobne wyszukiwanie"
msgid "Results for:"
msgstr "Wyniki dla:"
-#: cps/templates/search_form.html:23
+#: cps/templates/search_form.html:27
msgid "Exclude Tags"
msgstr "Wyklucz tagi"
-#: cps/templates/search_form.html:43
+#: cps/templates/search_form.html:47
msgid "Exclude Series"
msgstr "Wyklucz serie"
-#: cps/templates/search_form.html:64
+#: cps/templates/search_form.html:68
msgid "Exclude Languages"
msgstr "Wyklucz języki"
@@ -906,37 +923,37 @@ msgid "Drag 'n drop to rearrange order"
msgstr "Przeciągnij i upuść, aby zmienić kolejność"
#: cps/templates/stats.html:3
-msgid "Linked libraries"
-msgstr "Załączone biblioteki"
-
-#: cps/templates/stats.html:8
-msgid "Program library"
-msgstr "Biblioteka programu"
-
-#: cps/templates/stats.html:9
-msgid "Installed Version"
-msgstr "Zainstalowana wersja"
-
-#: cps/templates/stats.html:32
msgid "Calibre library statistics"
msgstr "Statystyki biblioteki Calibre"
-#: cps/templates/stats.html:37
+#: cps/templates/stats.html:8
msgid "Books in this Library"
msgstr "Książek w bibliotece"
-#: cps/templates/stats.html:41
+#: cps/templates/stats.html:12
msgid "Authors in this Library"
msgstr "Autorów w bibliotece"
-#: cps/templates/stats.html:45
+#: cps/templates/stats.html:16
msgid "Categories in this Library"
msgstr "Kategorii w bibliotece"
-#: cps/templates/stats.html:49
+#: cps/templates/stats.html:20
msgid "Series in this Library"
msgstr "Serie w tej bibliotece"
+#: cps/templates/stats.html:24
+msgid "Linked libraries"
+msgstr "Załączone biblioteki"
+
+#: cps/templates/stats.html:28
+msgid "Program library"
+msgstr "Biblioteka programu"
+
+#: cps/templates/stats.html:29
+msgid "Installed Version"
+msgstr "Zainstalowana wersja"
+
#: cps/templates/user_edit.html:23
msgid "Kindle E-Mail"
msgstr "Adres e-mail Kindle"
@@ -949,43 +966,43 @@ msgstr "Pokaż książki w języku"
msgid "Show all"
msgstr "Pokaż wszystko"
-#: cps/templates/user_edit.html:45
+#: cps/templates/user_edit.html:47
msgid "Show random books"
msgstr "Pokaż losowe książki"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:51
msgid "Show hot books"
msgstr "Pokaż najpopularniejsze książki"
-#: cps/templates/user_edit.html:53
+#: cps/templates/user_edit.html:55
msgid "Show best rated books"
msgstr "Pokaż najlepiej ocenione książki"
-#: cps/templates/user_edit.html:57
+#: cps/templates/user_edit.html:59
msgid "Show language selection"
msgstr "Pokaż wybór języka"
-#: cps/templates/user_edit.html:61
+#: cps/templates/user_edit.html:63
msgid "Show series selection"
msgstr "Pokaż wybór serii"
-#: cps/templates/user_edit.html:65
+#: cps/templates/user_edit.html:67
msgid "Show category selection"
msgstr "Pokaż wybór kategorii"
-#: cps/templates/user_edit.html:69
+#: cps/templates/user_edit.html:71
msgid "Show author selection"
msgstr "Pokaż wybór autora"
-#: cps/templates/user_edit.html:73
+#: cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "Pokaz losowe książki w widoku szczegółowym"
-#: cps/templates/user_edit.html:105
+#: cps/templates/user_edit.html:108
msgid "Delete this user"
msgstr "Usuń tego użytkownika"
-#: cps/templates/user_edit.html:116
+#: cps/templates/user_edit.html:123
msgid "Recent Downloads"
msgstr "Ostatnio pobierane"
diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo
index 5cb1b1c9..c4c7af27 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 c68904f6..1dca04ac 100644
--- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
+++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
-"POT-Creation-Date: 2017-02-20 19:47+0100\n"
+"POT-Creation-Date: 2017-02-27 21:10+0100\n"
"PO-Revision-Date: 2017-01-06 17:00+0000\n"
"Last-Translator: dalin \n"
"Language: zh_Hans_CN\n"
@@ -26,341 +26,354 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
-#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
+#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1041
msgid "not installed"
msgstr "未安装"
-#: cps/helper.py:150
+#: cps/helper.py:152
#, python-format
msgid "Failed to send mail: %s"
msgstr "发送邮件失败: %s"
-#: cps/helper.py:157
+#: cps/helper.py:159
msgid "Calibre-web test email"
msgstr "Calibre-web 测试邮件"
-#: cps/helper.py:158 cps/helper.py:168
+#: cps/helper.py:160 cps/helper.py:172
msgid "This email has been sent via calibre web."
msgstr "此邮件由calibre web发送"
-#: cps/helper.py:167 cps/templates/detail.html:130
+#: cps/helper.py:169 cps/templates/detail.html:136
msgid "Send to Kindle"
msgstr "发送到Kindle"
-#: cps/helper.py:185 cps/helper.py:200
+#: cps/helper.py:189 cps/helper.py:204
msgid "Could not find any formats suitable for sending by email"
msgstr "无法找到适合邮件发送的格式"
-#: cps/helper.py:194
+#: cps/helper.py:198
msgid "Could not convert epub to mobi"
msgstr "无法转换epub到mobi"
-#: cps/ub.py:434
+#: cps/ub.py:433
msgid "Guest"
msgstr "游客"
-#: cps/web.py:734
+#: cps/web.py:742
msgid "Requesting update package"
msgstr "正在请求更新包"
-#: cps/web.py:735
+#: cps/web.py:743
msgid "Downloading update package"
msgstr "正在下载更新包"
-#: cps/web.py:736
+#: cps/web.py:744
msgid "Unzipping update package"
msgstr "正在解压更新包"
-#: cps/web.py:737
+#: cps/web.py:745
msgid "Files are replaced"
msgstr "文件已替换"
-#: cps/web.py:738
+#: cps/web.py:746
msgid "Database connections are closed"
msgstr "数据库连接已关闭"
-#: cps/web.py:739
+#: cps/web.py:747
msgid "Server is stopped"
msgstr "服务器已停止"
-#: cps/web.py:740
+#: cps/web.py:748
msgid "Update finished, please press okay and reload page"
msgstr "更新完成,请按确定并刷新页面"
-#: cps/web.py:810
+#: cps/web.py:821
msgid "Latest Books"
msgstr "最新书籍"
-#: cps/web.py:835
+#: cps/web.py:846
msgid "Hot Books (most downloaded)"
msgstr "热门书籍(最多下载)"
-#: cps/web.py:845
+#: cps/web.py:856
msgid "Best rated books"
msgstr "最高评分书籍"
-#: cps/templates/index.xml:36 cps/web.py:854
+#: cps/templates/index.xml:36 cps/web.py:865
msgid "Random Books"
msgstr "随机书籍"
-#: cps/web.py:867
+#: cps/web.py:878
msgid "Author list"
msgstr "作者列表"
-#: cps/web.py:878
-#, python-forma
+#: cps/web.py:889
+#, python-forma, python-format
msgid "Author: %(name)s"
msgstr "作者: %(name)s"
-#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
-#: cps/web.py:2115
+#: cps/web.py:891 cps/web.py:919 cps/web.py:1018 cps/web.py:1261
+#: cps/web.py:2143
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "无法打开电子书。 文件不存在或者文件不可访问:"
-#: cps/templates/index.xml:57 cps/web.py:894
+#: cps/templates/index.xml:57 cps/web.py:905
msgid "Series list"
msgstr "丛书列表"
-#: cps/web.py:906
+#: cps/web.py:917
#, python-format
msgid "Series: %(serie)s"
msgstr "丛书: %(serie)s"
-#: cps/web.py:939
+#: cps/web.py:950
msgid "Available languages"
msgstr "可用语言"
-#: cps/web.py:954
+#: cps/web.py:965
#, python-format
msgid "Language: %(name)s"
msgstr "语言: %(name)s"
-#: cps/templates/index.xml:50 cps/web.py:967
+#: cps/templates/index.xml:50 cps/web.py:978
msgid "Category list"
msgstr "分类列表"
-#: cps/web.py:979
+#: cps/web.py:990
#, python-format
msgid "Category: %(name)s"
msgstr "分类: %(name)s"
-#: cps/web.py:1040
+#: cps/web.py:1062
msgid "Statistics"
msgstr "统计"
-#: cps/web.py:1061
+#: cps/web.py:1083
msgid "Server restarted, please reload page"
msgstr "服务器已重启,请刷新页面"
-#: cps/web.py:1063
+#: cps/web.py:1085
msgid "Performing shutdown of server, please close window"
msgstr "正在关闭服务器,请关闭窗口"
-#: cps/web.py:1073
+#: cps/web.py:1095
msgid "Update done"
msgstr "更新完成"
-#: cps/web.py:1147 cps/web.py:1160
+#: cps/web.py:1173 cps/web.py:1186
msgid "search"
msgstr "搜索"
-#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
+#: cps/web.py:1237 cps/web.py:1244 cps/web.py:1251 cps/web.py:1258
msgid "Read a Book"
msgstr "阅读一本书"
-#: cps/web.py:1276 cps/web.py:1713
+#: cps/web.py:1302 cps/web.py:1739
msgid "Please fill out all fields!"
msgstr "请填写所有字段"
-#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
+#: cps/web.py:1303 cps/web.py:1319 cps/web.py:1324 cps/web.py:1326
msgid "register"
msgstr "注册"
-#: cps/web.py:1292
+#: cps/web.py:1318
msgid "An unknown error occured. Please try again later."
msgstr "发生一个未知错误。请稍后再试。"
-#: cps/web.py:1297
+#: cps/web.py:1323
msgid "This username or email address is already in use."
msgstr "此用户名或邮箱已被使用。"
-#: cps/web.py:1315
+#: cps/web.py:1341
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "您现在已以'%(nickname)s'身份登录"
-#: cps/web.py:1320
+#: cps/web.py:1346
msgid "Wrong Username or Password"
msgstr "用户名或密码错误"
-#: cps/web.py:1322
+#: cps/web.py:1348
msgid "login"
msgstr "登录"
-#: cps/web.py:1339
+#: cps/web.py:1365
msgid "Please configure the SMTP mail settings first..."
msgstr "请先配置SMTP邮箱..."
-#: cps/web.py:1343
+#: cps/web.py:1369
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "此书已被成功发给 %(kindlemail)s"
-#: cps/web.py:1347
+#: cps/web.py:1373
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "发送这本书的时候出现错误: %(res)s"
-#: cps/web.py:1349
+#: cps/web.py:1375
msgid "Please configure your kindle email address first..."
msgstr "请先配置您的kindle电子邮箱地址..."
-#: cps/web.py:1369
+#: cps/web.py:1395
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "此书已被添加到书架: %(sname)s"
-#: cps/web.py:1390
+#: cps/web.py:1416
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "此书已从书架 %(sname)s 中删除"
-#: cps/web.py:1409 cps/web.py:1433
+#: cps/web.py:1435 cps/web.py:1459
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "已存在书架 '%(title)s'。"
-#: cps/web.py:1414
+#: cps/web.py:1440
#, python-format
msgid "Shelf %(title)s created"
msgstr "书架 %(title)s 已被创建"
-#: cps/web.py:1416 cps/web.py:1444
+#: cps/web.py:1442 cps/web.py:1470
msgid "There was an error"
msgstr "发生错误"
-#: cps/web.py:1417 cps/web.py:1419
+#: cps/web.py:1443 cps/web.py:1445
msgid "create a shelf"
msgstr "创建书架"
-#: cps/web.py:1442
+#: cps/web.py:1468
#, python-format
msgid "Shelf %(title)s changed"
msgstr "书架 %(title)s 已被修改"
-#: cps/web.py:1445 cps/web.py:1447
+#: cps/web.py:1471 cps/web.py:1473
msgid "Edit a shelf"
msgstr "编辑书架"
-#: cps/web.py:1465
+#: cps/web.py:1491
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "成功删除书架 %(name)s"
-#: cps/web.py:1487
+#: cps/web.py:1513
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "书架: '%(name)s'"
-#: cps/web.py:1518
+#: cps/web.py:1544
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "修改书架 '%(name)s' 顺序"
-#: cps/web.py:1580
+#: cps/web.py:1606
msgid "Found an existing account for this email address."
msgstr "找到已使用此邮箱的账号。"
-#: cps/web.py:1582 cps/web.py:1586
+#: cps/web.py:1608 cps/web.py:1612
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s 的资料"
-#: cps/web.py:1583
+#: cps/web.py:1609
msgid "Profile updated"
msgstr "资料已更新"
-#: cps/web.py:1597
+#: cps/web.py:1623
msgid "Admin page"
msgstr "管理页"
-#: cps/web.py:1668
+#: cps/web.py:1694
msgid "Calibre-web configuration updated"
msgstr "Calibre-web配置已更新"
-#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
+#: cps/web.py:1701 cps/web.py:1707 cps/web.py:1720
msgid "Basic Configuration"
msgstr "基本配置"
-#: cps/web.py:1679
+#: cps/web.py:1705
msgid "DB location is not valid, please enter correct path"
msgstr "DB位置无效,请输入正确路径"
-#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
+#: cps/templates/admin.html:34 cps/web.py:1741 cps/web.py:1787
msgid "Add new user"
msgstr "添加新用户"
-#: cps/web.py:1753
+#: cps/web.py:1779
#, python-format
msgid "User '%(user)s' created"
msgstr "用户 '%(user)s' 已被创建"
-#: cps/web.py:1757
+#: cps/web.py:1783
msgid "Found an existing account for this email address or nickname."
msgstr "已找到使用此邮箱或昵称的账号。"
-#: cps/web.py:1779
+#: cps/web.py:1805
msgid "Mail settings updated"
msgstr "邮箱设置已更新"
-#: cps/web.py:1785
+#: cps/web.py:1811
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "测试邮件已成功发送到 %(kindlemail)s"
-#: cps/web.py:1788
+#: cps/web.py:1814
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr "发送测试邮件时发生错误: %(res)s"
-#: cps/web.py:1789
+#: cps/web.py:1816
+msgid "E-Mail settings updated"
+msgstr ""
+
+#: cps/web.py:1817
msgid "Edit mail settings"
msgstr "编辑邮箱设置"
-#: cps/web.py:1817
+#: cps/web.py:1845
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "用户 '%(nick)s' 已被删除"
-#: cps/web.py:1898
+#: cps/web.py:1926
#, python-format
msgid "User '%(nick)s' updated"
msgstr "用户 '%(nick)s' 已被更新"
-#: cps/web.py:1901
+#: cps/web.py:1929
msgid "An unknown error occured."
msgstr "发生未知错误。"
-#: cps/web.py:1904
+#: cps/web.py:1932
#, python-format
msgid "Edit User %(nick)s"
msgstr "编辑用户 %(nick)s"
-#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
+#: cps/web.py:2138 cps/web.py:2141 cps/web.py:2228
msgid "edit metadata"
msgstr "编辑元数据"
-#: cps/web.py:2145
+#: cps/web.py:2162
+#, python-format
+msgid "File extension \"%s\" is not allowed to be uploaded to this server"
+msgstr ""
+
+#: cps/web.py:2168
+msgid "File to be uploaded must have an extension"
+msgstr ""
+
+#: cps/web.py:2185
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "创建路径 %s 失败(权限拒绝)。"
-#: cps/web.py:2150
+#: cps/web.py:2190
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "存储文件 %s 失败(权限拒绝)。"
-#: cps/web.py:2155
+#: cps/web.py:2195
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "删除文件 %s 失败(权限拒绝)。"
@@ -389,7 +402,7 @@ msgstr ""
msgid "Admin"
msgstr "管理"
-#: cps/templates/admin.html:13 cps/templates/detail.html:117
+#: cps/templates/admin.html:13 cps/templates/detail.html:124
msgid "Download"
msgstr "下载"
@@ -509,7 +522,7 @@ msgstr "确定"
#: cps/templates/admin.html:102 cps/templates/admin.html:116
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
-#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
+#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:116
msgid "Back"
msgstr "后退"
@@ -533,12 +546,12 @@ msgstr "作者"
msgid "Description"
msgstr "简介"
-#: cps/templates/book_edit.html:28 cps/templates/search_form.html:13
+#: cps/templates/book_edit.html:28 cps/templates/search_form.html:17
msgid "Tags"
msgstr "标签"
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
-#: cps/templates/search_form.html:33
+#: cps/templates/search_form.html:37
msgid "Series"
msgstr "丛书"
@@ -571,8 +584,8 @@ msgid "view book after edit"
msgstr "编辑后查看书籍"
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
-#: cps/templates/login.html:19 cps/templates/search_form.html:75
-#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
+#: cps/templates/login.html:19 cps/templates/search_form.html:79
+#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:114
msgid "Submit"
msgstr "提交"
@@ -612,23 +625,23 @@ msgstr "启用注册"
msgid "Default Settings for new users"
msgstr "新用户默认设置"
-#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
+#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "管理用户"
-#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
+#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:88
msgid "Allow Downloads"
msgstr "允许下载"
-#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
+#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:92
msgid "Allow Uploads"
msgstr "允许上传"
-#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
+#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:96
msgid "Allow Edit"
msgstr "允许编辑"
-#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
+#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:101
msgid "Allow Changing Password"
msgstr "允许修改密码"
@@ -649,23 +662,27 @@ msgstr ""
msgid "language"
msgstr "语言"
-#: cps/templates/detail.html:74
+#: cps/templates/detail.html:76 cps/templates/search_form.html:14
+msgid "Publisher"
+msgstr ""
+
+#: cps/templates/detail.html:81
msgid "Publishing date"
msgstr "出版日期"
-#: cps/templates/detail.html:106
+#: cps/templates/detail.html:113
msgid "Description:"
msgstr "简介:"
-#: cps/templates/detail.html:134
+#: cps/templates/detail.html:141
msgid "Read in browser"
msgstr "在浏览器中阅读"
-#: cps/templates/detail.html:154
+#: cps/templates/detail.html:161
msgid "Add to shelf"
msgstr "添加到书架"
-#: cps/templates/detail.html:194
+#: cps/templates/detail.html:201
msgid "Edit metadata"
msgstr "编辑元数据"
@@ -793,7 +810,7 @@ msgstr "发现"
msgid "Categories"
msgstr "分类"
-#: cps/templates/layout.html:142 cps/templates/search_form.html:54
+#: cps/templates/layout.html:142 cps/templates/search_form.html:58
msgid "Languages"
msgstr "语言"
@@ -875,15 +892,15 @@ msgstr "请尝试别的关键字"
msgid "Results for:"
msgstr "结果:"
-#: cps/templates/search_form.html:23
+#: cps/templates/search_form.html:27
msgid "Exclude Tags"
msgstr "排除标签"
-#: cps/templates/search_form.html:43
+#: cps/templates/search_form.html:47
msgid "Exclude Series"
msgstr "排除丛书"
-#: cps/templates/search_form.html:64
+#: cps/templates/search_form.html:68
msgid "Exclude Languages"
msgstr "排除语言"
@@ -908,37 +925,37 @@ msgid "Drag 'n drop to rearrange order"
msgstr "拖拽以重新排序"
#: cps/templates/stats.html:3
-msgid "Linked libraries"
-msgstr "链接库"
-
-#: cps/templates/stats.html:8
-msgid "Program library"
-msgstr "程序库"
-
-#: cps/templates/stats.html:9
-msgid "Installed Version"
-msgstr "已安装版本"
-
-#: cps/templates/stats.html:32
msgid "Calibre library statistics"
msgstr "Calibre书库统计"
-#: cps/templates/stats.html:37
+#: cps/templates/stats.html:8
msgid "Books in this Library"
msgstr "本书在此书库"
-#: cps/templates/stats.html:41
+#: cps/templates/stats.html:12
msgid "Authors in this Library"
msgstr "个作者在此书库"
-#: cps/templates/stats.html:45
+#: cps/templates/stats.html:16
msgid "Categories in this Library"
msgstr "个分类在此书库"
-#: cps/templates/stats.html:49
+#: cps/templates/stats.html:20
msgid "Series in this Library"
msgstr "个丛书在此书库"
+#: cps/templates/stats.html:24
+msgid "Linked libraries"
+msgstr "链接库"
+
+#: cps/templates/stats.html:28
+msgid "Program library"
+msgstr "程序库"
+
+#: cps/templates/stats.html:29
+msgid "Installed Version"
+msgstr "已安装版本"
+
#: cps/templates/user_edit.html:23
msgid "Kindle E-Mail"
msgstr ""
@@ -951,43 +968,43 @@ msgstr "按语言显示书籍"
msgid "Show all"
msgstr "显示全部"
-#: cps/templates/user_edit.html:45
+#: cps/templates/user_edit.html:47
msgid "Show random books"
msgstr "显示随机书籍"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:51
msgid "Show hot books"
msgstr "显示热门书籍"
-#: cps/templates/user_edit.html:53
+#: cps/templates/user_edit.html:55
msgid "Show best rated books"
msgstr "显示最高评分书籍"
-#: cps/templates/user_edit.html:57
+#: cps/templates/user_edit.html:59
msgid "Show language selection"
msgstr "显示语言选择"
-#: cps/templates/user_edit.html:61
+#: cps/templates/user_edit.html:63
msgid "Show series selection"
msgstr "显示丛书选择"
-#: cps/templates/user_edit.html:65
+#: cps/templates/user_edit.html:67
msgid "Show category selection"
msgstr "显示分类选择"
-#: cps/templates/user_edit.html:69
+#: cps/templates/user_edit.html:71
msgid "Show author selection"
msgstr "显示作者选择"
-#: cps/templates/user_edit.html:73
+#: cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "在详情页显示随机书籍"
-#: cps/templates/user_edit.html:105
+#: cps/templates/user_edit.html:108
msgid "Delete this user"
msgstr "删除此用户"
-#: cps/templates/user_edit.html:116
+#: cps/templates/user_edit.html:123
msgid "Recent Downloads"
msgstr "最近下载"
diff --git a/cps/ub.py b/cps/ub.py
index f5207f06..653454ce 100644
--- a/cps/ub.py
+++ b/cps/ub.py
@@ -7,7 +7,6 @@ from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import *
from flask_login import AnonymousUserMixin
import os
-import traceback
import logging
from werkzeug.security import generate_password_hash
from flask_babel import gettext as _
diff --git a/cps/web.py b/cps/web.py
index 06930901..1777a77f 100755
--- a/cps/web.py
+++ b/cps/web.py
@@ -1055,6 +1055,8 @@ def stats():
versions['tornado'] = tornadoVersion
versions['iso639'] = iso639Version
versions['requests'] = requests.__version__
+ versions['pysqlite'] = db.engine.dialect.dbapi.version
+ versions['sqlite'] = db.engine.dialect.dbapi.sqlite_version
return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=versions,
categorycounter=categorys, seriecounter=series, title=_(u"Statistics"))
@@ -1201,7 +1203,7 @@ def feed_get_cover(book_id):
@app.route("/read//")
-@login_required
+@login_required_if_no_ano
def read_book(book_id, format):
book = db.session.query(db.Books).filter(db.Books.id == book_id).first()
if book:
diff --git a/messages.pot b/messages.pot
index 759f051b..7321a6e2 100644
--- a/messages.pot
+++ b/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-02-20 19:47+0100\n"
+"POT-Creation-Date: 2017-02-27 21:10+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,341 +17,354 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
-#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1030
+#: cps/book_formats.py:111 cps/book_formats.py:115 cps/web.py:1041
msgid "not installed"
msgstr ""
-#: cps/helper.py:150
+#: cps/helper.py:152
#, python-format
msgid "Failed to send mail: %s"
msgstr ""
-#: cps/helper.py:157
+#: cps/helper.py:159
msgid "Calibre-web test email"
msgstr ""
-#: cps/helper.py:158 cps/helper.py:168
+#: cps/helper.py:160 cps/helper.py:172
msgid "This email has been sent via calibre web."
msgstr ""
-#: cps/helper.py:167 cps/templates/detail.html:130
+#: cps/helper.py:169 cps/templates/detail.html:136
msgid "Send to Kindle"
msgstr ""
-#: cps/helper.py:185 cps/helper.py:200
+#: cps/helper.py:189 cps/helper.py:204
msgid "Could not find any formats suitable for sending by email"
msgstr ""
-#: cps/helper.py:194
+#: cps/helper.py:198
msgid "Could not convert epub to mobi"
msgstr ""
-#: cps/ub.py:434
+#: cps/ub.py:433
msgid "Guest"
msgstr ""
-#: cps/web.py:734
+#: cps/web.py:742
msgid "Requesting update package"
msgstr ""
-#: cps/web.py:735
+#: cps/web.py:743
msgid "Downloading update package"
msgstr ""
-#: cps/web.py:736
+#: cps/web.py:744
msgid "Unzipping update package"
msgstr ""
-#: cps/web.py:737
+#: cps/web.py:745
msgid "Files are replaced"
msgstr ""
-#: cps/web.py:738
+#: cps/web.py:746
msgid "Database connections are closed"
msgstr ""
-#: cps/web.py:739
+#: cps/web.py:747
msgid "Server is stopped"
msgstr ""
-#: cps/web.py:740
+#: cps/web.py:748
msgid "Update finished, please press okay and reload page"
msgstr ""
-#: cps/web.py:810
+#: cps/web.py:821
msgid "Latest Books"
msgstr ""
-#: cps/web.py:835
+#: cps/web.py:846
msgid "Hot Books (most downloaded)"
msgstr ""
-#: cps/web.py:845
+#: cps/web.py:856
msgid "Best rated books"
msgstr ""
-#: cps/templates/index.xml:36 cps/web.py:854
+#: cps/templates/index.xml:36 cps/web.py:865
msgid "Random Books"
msgstr ""
-#: cps/web.py:867
+#: cps/web.py:878
msgid "Author list"
msgstr ""
-#: cps/web.py:878
+#: cps/web.py:889
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:880 cps/web.py:908 cps/web.py:1007 cps/web.py:1235
-#: cps/web.py:2115
+#: cps/web.py:891 cps/web.py:919 cps/web.py:1018 cps/web.py:1261
+#: cps/web.py:2143
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr ""
-#: cps/templates/index.xml:57 cps/web.py:894
+#: cps/templates/index.xml:57 cps/web.py:905
msgid "Series list"
msgstr ""
-#: cps/web.py:906
+#: cps/web.py:917
#, python-format
msgid "Series: %(serie)s"
msgstr ""
-#: cps/web.py:939
+#: cps/web.py:950
msgid "Available languages"
msgstr ""
-#: cps/web.py:954
+#: cps/web.py:965
#, python-format
msgid "Language: %(name)s"
msgstr ""
-#: cps/templates/index.xml:50 cps/web.py:967
+#: cps/templates/index.xml:50 cps/web.py:978
msgid "Category list"
msgstr ""
-#: cps/web.py:979
+#: cps/web.py:990
#, python-format
msgid "Category: %(name)s"
msgstr ""
-#: cps/web.py:1040
+#: cps/web.py:1062
msgid "Statistics"
msgstr ""
-#: cps/web.py:1061
+#: cps/web.py:1083
msgid "Server restarted, please reload page"
msgstr ""
-#: cps/web.py:1063
+#: cps/web.py:1085
msgid "Performing shutdown of server, please close window"
msgstr ""
-#: cps/web.py:1073
+#: cps/web.py:1095
msgid "Update done"
msgstr ""
-#: cps/web.py:1147 cps/web.py:1160
+#: cps/web.py:1173 cps/web.py:1186
msgid "search"
msgstr ""
-#: cps/web.py:1211 cps/web.py:1218 cps/web.py:1225 cps/web.py:1232
+#: cps/web.py:1237 cps/web.py:1244 cps/web.py:1251 cps/web.py:1258
msgid "Read a Book"
msgstr ""
-#: cps/web.py:1276 cps/web.py:1713
+#: cps/web.py:1302 cps/web.py:1739
msgid "Please fill out all fields!"
msgstr ""
-#: cps/web.py:1277 cps/web.py:1293 cps/web.py:1298 cps/web.py:1300
+#: cps/web.py:1303 cps/web.py:1319 cps/web.py:1324 cps/web.py:1326
msgid "register"
msgstr ""
-#: cps/web.py:1292
+#: cps/web.py:1318
msgid "An unknown error occured. Please try again later."
msgstr ""
-#: cps/web.py:1297
+#: cps/web.py:1323
msgid "This username or email address is already in use."
msgstr ""
-#: cps/web.py:1315
+#: cps/web.py:1341
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1320
+#: cps/web.py:1346
msgid "Wrong Username or Password"
msgstr ""
-#: cps/web.py:1322
+#: cps/web.py:1348
msgid "login"
msgstr ""
-#: cps/web.py:1339
+#: cps/web.py:1365
msgid "Please configure the SMTP mail settings first..."
msgstr ""
-#: cps/web.py:1343
+#: cps/web.py:1369
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr ""
-#: cps/web.py:1347
+#: cps/web.py:1373
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr ""
-#: cps/web.py:1349
+#: cps/web.py:1375
msgid "Please configure your kindle email address first..."
msgstr ""
-#: cps/web.py:1369
+#: cps/web.py:1395
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr ""
-#: cps/web.py:1390
+#: cps/web.py:1416
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr ""
-#: cps/web.py:1409 cps/web.py:1433
+#: cps/web.py:1435 cps/web.py:1459
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/web.py:1414
+#: cps/web.py:1440
#, python-format
msgid "Shelf %(title)s created"
msgstr ""
-#: cps/web.py:1416 cps/web.py:1444
+#: cps/web.py:1442 cps/web.py:1470
msgid "There was an error"
msgstr ""
-#: cps/web.py:1417 cps/web.py:1419
+#: cps/web.py:1443 cps/web.py:1445
msgid "create a shelf"
msgstr ""
-#: cps/web.py:1442
+#: cps/web.py:1468
#, python-format
msgid "Shelf %(title)s changed"
msgstr ""
-#: cps/web.py:1445 cps/web.py:1447
+#: cps/web.py:1471 cps/web.py:1473
msgid "Edit a shelf"
msgstr ""
-#: cps/web.py:1465
+#: cps/web.py:1491
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr ""
-#: cps/web.py:1487
+#: cps/web.py:1513
#, python-format
msgid "Shelf: '%(name)s'"
msgstr ""
-#: cps/web.py:1518
+#: cps/web.py:1544
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr ""
-#: cps/web.py:1580
+#: cps/web.py:1606
msgid "Found an existing account for this email address."
msgstr ""
-#: cps/web.py:1582 cps/web.py:1586
+#: cps/web.py:1608 cps/web.py:1612
#, python-format
msgid "%(name)s's profile"
msgstr ""
-#: cps/web.py:1583
+#: cps/web.py:1609
msgid "Profile updated"
msgstr ""
-#: cps/web.py:1597
+#: cps/web.py:1623
msgid "Admin page"
msgstr ""
-#: cps/web.py:1668
+#: cps/web.py:1694
msgid "Calibre-web configuration updated"
msgstr ""
-#: cps/web.py:1675 cps/web.py:1681 cps/web.py:1694
+#: cps/web.py:1701 cps/web.py:1707 cps/web.py:1720
msgid "Basic Configuration"
msgstr ""
-#: cps/web.py:1679
+#: cps/web.py:1705
msgid "DB location is not valid, please enter correct path"
msgstr ""
-#: cps/templates/admin.html:34 cps/web.py:1715 cps/web.py:1761
+#: cps/templates/admin.html:34 cps/web.py:1741 cps/web.py:1787
msgid "Add new user"
msgstr ""
-#: cps/web.py:1753
+#: cps/web.py:1779
#, python-format
msgid "User '%(user)s' created"
msgstr ""
-#: cps/web.py:1757
+#: cps/web.py:1783
msgid "Found an existing account for this email address or nickname."
msgstr ""
-#: cps/web.py:1779
+#: cps/web.py:1805
msgid "Mail settings updated"
msgstr ""
-#: cps/web.py:1785
+#: cps/web.py:1811
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr ""
-#: cps/web.py:1788
+#: cps/web.py:1814
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr ""
-#: cps/web.py:1789
-msgid "Edit mail settings"
+#: cps/web.py:1816
+msgid "E-Mail settings updated"
msgstr ""
#: cps/web.py:1817
+msgid "Edit mail settings"
+msgstr ""
+
+#: cps/web.py:1845
#, python-format
msgid "User '%(nick)s' deleted"
msgstr ""
-#: cps/web.py:1898
+#: cps/web.py:1926
#, python-format
msgid "User '%(nick)s' updated"
msgstr ""
-#: cps/web.py:1901
+#: cps/web.py:1929
msgid "An unknown error occured."
msgstr ""
-#: cps/web.py:1904
+#: cps/web.py:1932
#, python-format
msgid "Edit User %(nick)s"
msgstr ""
-#: cps/web.py:2110 cps/web.py:2113 cps/web.py:2188
+#: cps/web.py:2138 cps/web.py:2141 cps/web.py:2228
msgid "edit metadata"
msgstr ""
-#: cps/web.py:2145
+#: cps/web.py:2162
+#, python-format
+msgid "File extension \"%s\" is not allowed to be uploaded to this server"
+msgstr ""
+
+#: cps/web.py:2168
+msgid "File to be uploaded must have an extension"
+msgstr ""
+
+#: cps/web.py:2185
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr ""
-#: cps/web.py:2150
+#: cps/web.py:2190
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr ""
-#: cps/web.py:2155
+#: cps/web.py:2195
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr ""
@@ -380,7 +393,7 @@ msgstr ""
msgid "Admin"
msgstr ""
-#: cps/templates/admin.html:13 cps/templates/detail.html:117
+#: cps/templates/admin.html:13 cps/templates/detail.html:124
msgid "Download"
msgstr ""
@@ -500,7 +513,7 @@ msgstr ""
#: cps/templates/admin.html:102 cps/templates/admin.html:116
#: cps/templates/book_edit.html:108 cps/templates/config_edit.html:75
#: cps/templates/email_edit.html:36 cps/templates/shelf_edit.html:17
-#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:111
+#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:116
msgid "Back"
msgstr ""
@@ -524,12 +537,12 @@ msgstr ""
msgid "Description"
msgstr ""
-#: cps/templates/book_edit.html:28 cps/templates/search_form.html:13
+#: cps/templates/book_edit.html:28 cps/templates/search_form.html:17
msgid "Tags"
msgstr ""
#: cps/templates/book_edit.html:33 cps/templates/layout.html:138
-#: cps/templates/search_form.html:33
+#: cps/templates/search_form.html:37
msgid "Series"
msgstr ""
@@ -562,8 +575,8 @@ msgid "view book after edit"
msgstr ""
#: cps/templates/book_edit.html:107 cps/templates/config_edit.html:73
-#: cps/templates/login.html:19 cps/templates/search_form.html:75
-#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:109
+#: cps/templates/login.html:19 cps/templates/search_form.html:79
+#: cps/templates/shelf_edit.html:15 cps/templates/user_edit.html:114
msgid "Submit"
msgstr ""
@@ -603,23 +616,23 @@ msgstr ""
msgid "Default Settings for new users"
msgstr ""
-#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:80
+#: cps/templates/config_edit.html:55 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr ""
-#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:85
+#: cps/templates/config_edit.html:59 cps/templates/user_edit.html:88
msgid "Allow Downloads"
msgstr ""
-#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:89
+#: cps/templates/config_edit.html:63 cps/templates/user_edit.html:92
msgid "Allow Uploads"
msgstr ""
-#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:93
+#: cps/templates/config_edit.html:67 cps/templates/user_edit.html:96
msgid "Allow Edit"
msgstr ""
-#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:98
+#: cps/templates/config_edit.html:71 cps/templates/user_edit.html:101
msgid "Allow Changing Password"
msgstr ""
@@ -640,23 +653,27 @@ msgstr ""
msgid "language"
msgstr ""
-#: cps/templates/detail.html:74
+#: cps/templates/detail.html:76 cps/templates/search_form.html:14
+msgid "Publisher"
+msgstr ""
+
+#: cps/templates/detail.html:81
msgid "Publishing date"
msgstr ""
-#: cps/templates/detail.html:106
+#: cps/templates/detail.html:113
msgid "Description:"
msgstr ""
-#: cps/templates/detail.html:134
+#: cps/templates/detail.html:141
msgid "Read in browser"
msgstr ""
-#: cps/templates/detail.html:154
+#: cps/templates/detail.html:161
msgid "Add to shelf"
msgstr ""
-#: cps/templates/detail.html:194
+#: cps/templates/detail.html:201
msgid "Edit metadata"
msgstr ""
@@ -784,7 +801,7 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: cps/templates/layout.html:142 cps/templates/search_form.html:54
+#: cps/templates/layout.html:142 cps/templates/search_form.html:58
msgid "Languages"
msgstr ""
@@ -866,15 +883,15 @@ msgstr ""
msgid "Results for:"
msgstr ""
-#: cps/templates/search_form.html:23
+#: cps/templates/search_form.html:27
msgid "Exclude Tags"
msgstr ""
-#: cps/templates/search_form.html:43
+#: cps/templates/search_form.html:47
msgid "Exclude Series"
msgstr ""
-#: cps/templates/search_form.html:64
+#: cps/templates/search_form.html:68
msgid "Exclude Languages"
msgstr ""
@@ -899,35 +916,35 @@ msgid "Drag 'n drop to rearrange order"
msgstr ""
#: cps/templates/stats.html:3
-msgid "Linked libraries"
+msgid "Calibre library statistics"
msgstr ""
#: cps/templates/stats.html:8
-msgid "Program library"
+msgid "Books in this Library"
msgstr ""
-#: cps/templates/stats.html:9
-msgid "Installed Version"
+#: cps/templates/stats.html:12
+msgid "Authors in this Library"
msgstr ""
-#: cps/templates/stats.html:32
-msgid "Calibre library statistics"
+#: cps/templates/stats.html:16
+msgid "Categories in this Library"
msgstr ""
-#: cps/templates/stats.html:37
-msgid "Books in this Library"
+#: cps/templates/stats.html:20
+msgid "Series in this Library"
msgstr ""
-#: cps/templates/stats.html:41
-msgid "Authors in this Library"
+#: cps/templates/stats.html:24
+msgid "Linked libraries"
msgstr ""
-#: cps/templates/stats.html:45
-msgid "Categories in this Library"
+#: cps/templates/stats.html:28
+msgid "Program library"
msgstr ""
-#: cps/templates/stats.html:49
-msgid "Series in this Library"
+#: cps/templates/stats.html:29
+msgid "Installed Version"
msgstr ""
#: cps/templates/user_edit.html:23
@@ -942,43 +959,43 @@ msgstr ""
msgid "Show all"
msgstr ""
-#: cps/templates/user_edit.html:45
+#: cps/templates/user_edit.html:47
msgid "Show random books"
msgstr ""
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:51
msgid "Show hot books"
msgstr ""
-#: cps/templates/user_edit.html:53
+#: cps/templates/user_edit.html:55
msgid "Show best rated books"
msgstr ""
-#: cps/templates/user_edit.html:57
+#: cps/templates/user_edit.html:59
msgid "Show language selection"
msgstr ""
-#: cps/templates/user_edit.html:61
+#: cps/templates/user_edit.html:63
msgid "Show series selection"
msgstr ""
-#: cps/templates/user_edit.html:65
+#: cps/templates/user_edit.html:67
msgid "Show category selection"
msgstr ""
-#: cps/templates/user_edit.html:69
+#: cps/templates/user_edit.html:71
msgid "Show author selection"
msgstr ""
-#: cps/templates/user_edit.html:73
+#: cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr ""
-#: cps/templates/user_edit.html:105
+#: cps/templates/user_edit.html:108
msgid "Delete this user"
msgstr ""
-#: cps/templates/user_edit.html:116
+#: cps/templates/user_edit.html:123
msgid "Recent Downloads"
msgstr ""