\n"
"Language: pl\n"
@@ -80,7 +80,7 @@ msgstr ""
msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s"
msgstr ""
-#: cps/ub.py:649
+#: cps/ub.py:685
msgid "Guest"
msgstr "Gość"
@@ -148,7 +148,7 @@ msgstr "Losowe książki"
msgid "Author list"
msgstr "Lista autorów"
-#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1877
+#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1882
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:"
@@ -199,272 +199,285 @@ msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno"
msgid "Update done"
msgstr "Aktualizacja zakończona"
-#: cps/web.py:1741 cps/web.py:1754
+#: cps/web.py:1746 cps/web.py:1759
msgid "search"
msgstr "szukaj"
#: cps/templates/index.xml:39 cps/templates/index.xml:42
-#: cps/templates/layout.html:133 cps/web.py:1832
+#: cps/templates/layout.html:141 cps/web.py:1837
msgid "Read Books"
msgstr "Przeczytane książki"
#: cps/templates/index.xml:46 cps/templates/index.xml:49
-#: cps/templates/layout.html:135 cps/web.py:1835
+#: cps/templates/layout.html:143 cps/web.py:1840
msgid "Unread Books"
msgstr "Nieprzeczytane książki"
-#: cps/web.py:1910 cps/web.py:1912 cps/web.py:1914 cps/web.py:1923
+#: cps/web.py:1915 cps/web.py:1917 cps/web.py:1919 cps/web.py:1928
msgid "Read a Book"
msgstr "Czytaj książkę"
-#: cps/web.py:1975 cps/web.py:2667
+#: cps/web.py:1980 cps/web.py:2697
msgid "Please fill out all fields!"
msgstr "Proszę wypełnić wszystkie pola!"
-#: cps/web.py:1976 cps/web.py:1993 cps/web.py:1998 cps/web.py:2000
+#: cps/web.py:1981 cps/web.py:1998 cps/web.py:2003 cps/web.py:2005
msgid "register"
msgstr "rejestracja"
-#: cps/web.py:1992
+#: cps/web.py:1997
msgid "An unknown error occured. Please try again later."
msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później."
-#: cps/web.py:1997
+#: cps/web.py:2002
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:2016 cps/web.py:2112
+#: cps/web.py:2021 cps/web.py:2117
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Zalogowałeś się jako: '%(nickname)s'"
-#: cps/web.py:2021
+#: cps/web.py:2026
msgid "Wrong Username or Password"
msgstr "Błędna nazwa użytkownika lub hasło"
-#: cps/web.py:2027 cps/web.py:2048
+#: cps/web.py:2032 cps/web.py:2053
msgid "login"
msgstr "logowanie"
-#: cps/web.py:2060 cps/web.py:2091
+#: cps/web.py:2065 cps/web.py:2096
msgid "Token not found"
msgstr ""
-#: cps/web.py:2068 cps/web.py:2099
+#: cps/web.py:2073 cps/web.py:2104
msgid "Token has expired"
msgstr ""
-#: cps/web.py:2076
+#: cps/web.py:2081
msgid "Success! Please return to your device"
msgstr ""
-#: cps/web.py:2126
+#: cps/web.py:2131
msgid "Please configure the SMTP mail settings first..."
msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
-#: cps/web.py:2130
+#: cps/web.py:2135
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "Książka została pomyślnie wysłana do %(kindlemail)s"
-#: cps/web.py:2134
+#: cps/web.py:2139
#, 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:2136 cps/web.py:2753
+#: cps/web.py:2141 cps/web.py:2784
msgid "Please configure your kindle email address first..."
msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..."
-#: cps/web.py:2180
+#: cps/web.py:2185
#, 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:2218
+#: cps/web.py:2223
#, 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:2224
+#: cps/web.py:2229
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr ""
-#: cps/web.py:2244 cps/web.py:2268
+#: cps/web.py:2249 cps/web.py:2273
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Półka o nazwie '%(title)s' już istnieje."
-#: cps/web.py:2249
+#: cps/web.py:2254
#, python-format
msgid "Shelf %(title)s created"
msgstr "Półka %(title)s została utworzona"
-#: cps/web.py:2251 cps/web.py:2279
+#: cps/web.py:2256 cps/web.py:2284
msgid "There was an error"
msgstr "Wystąpił błąd"
-#: cps/web.py:2252 cps/web.py:2254
+#: cps/web.py:2257 cps/web.py:2259
msgid "create a shelf"
msgstr "utwórz półkę"
-#: cps/web.py:2277
+#: cps/web.py:2282
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Półka %(title)s została zmieniona"
-#: cps/web.py:2280 cps/web.py:2282
+#: cps/web.py:2285 cps/web.py:2287
msgid "Edit a shelf"
msgstr "Edytuj półkę"
-#: cps/web.py:2303
+#: cps/web.py:2308
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "pomyślnie usunięto półkę %(name)s"
-#: cps/web.py:2325
+#: cps/web.py:2330
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Półka: '%(name)s'"
-#: cps/web.py:2328
+#: cps/web.py:2333
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr ""
-#: cps/web.py:2359
+#: cps/web.py:2364
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Zmieniono kolejność półki: '%(name)s'"
-#: cps/web.py:2428
+#: cps/web.py:2433
msgid "Found an existing account for this email address."
msgstr "Znaleziono istniejące konto dla tego adresu e-mail."
-#: cps/web.py:2430 cps/web.py:2434
+#: cps/web.py:2435 cps/web.py:2439
#, python-format
msgid "%(name)s's profile"
msgstr "Profil użytkownika %(name)s"
-#: cps/web.py:2431
+#: cps/web.py:2436
msgid "Profile updated"
msgstr "Zaktualizowano profil"
-#: cps/web.py:2443
+#: cps/web.py:2448
msgid "Unknown"
msgstr ""
-#: cps/web.py:2456
+#: cps/web.py:2461
msgid "Admin page"
msgstr "Portal administracyjny"
-#: cps/web.py:2606
-msgid "Logfile location is not valid, please enter correct path"
+#: cps/web.py:2532
+msgid "Keyfile location is not valid, please enter correct path"
msgstr ""
-#: cps/web.py:2609 cps/web.py:2628 cps/web.py:2634 cps/web.py:2648
+#: cps/web.py:2535 cps/web.py:2546 cps/web.py:2639 cps/web.py:2658
+#: cps/web.py:2664 cps/web.py:2678
msgid "Basic Configuration"
msgstr "Podstawowa konfiguracja"
-#: cps/web.py:2621
+#: cps/web.py:2543
+msgid "Certfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2636
+msgid "Logfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2651
msgid "Calibre-web configuration updated"
msgstr "Konfiguracja Calibre-web została zaktualizowana"
-#: cps/web.py:2632
+#: cps/web.py:2662
msgid "DB location is not valid, please enter correct path"
msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę"
-#: cps/templates/admin.html:34 cps/web.py:2669 cps/web.py:2723
+#: cps/templates/admin.html:34 cps/web.py:2699 cps/web.py:2754
msgid "Add new user"
msgstr "Dodaj nowego użytkownika"
-#: cps/web.py:2714
+#: cps/web.py:2744
#, python-format
msgid "User '%(user)s' created"
msgstr "Użytkownik '%(user)s' został utworzony"
-#: cps/web.py:2718
+#: cps/web.py:2748
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:2741
+#: cps/web.py:2772
msgid "Mail settings updated"
msgstr "Zaktualizowano ustawienia poczty e-mail"
-#: cps/web.py:2748
+#: cps/web.py:2779
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Testowy e-mail został pomyślnie wysłany do %(kindlemail)s"
-#: cps/web.py:2751
+#: cps/web.py:2782
#, 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:2755
+#: cps/web.py:2786
msgid "E-Mail settings updated"
msgstr "Zaktualizowano ustawienia e-mail"
-#: cps/web.py:2756
+#: cps/web.py:2787
msgid "Edit mail settings"
msgstr "Edytuj ustawienia poczty e-mail"
-#: cps/web.py:2785
+#: cps/web.py:2816
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Użytkownik '%(nick)s' został usunięty"
-#: cps/web.py:2893
+#: cps/web.py:2924
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Użytkownik '%(nick)s' został zaktualizowany"
-#: cps/web.py:2896
+#: cps/web.py:2927
msgid "An unknown error occured."
msgstr "Wystąpił nieznany błąd."
-#: cps/web.py:2899
+#: cps/web.py:2930
#, python-format
msgid "Edit User %(nick)s"
msgstr "Edytuj użytkownika %(nick)s"
-#: cps/web.py:2915
+#: cps/web.py:2946
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr ""
-#: cps/web.py:2930 cps/web.py:3138 cps/web.py:3143 cps/web.py:3286
+#: cps/web.py:2961 cps/web.py:3172 cps/web.py:3177 cps/web.py:3323
msgid "edit metadata"
msgstr "edytuj metadane"
-#: cps/web.py:2940 cps/web.py:3180
+#: cps/web.py:2971 cps/web.py:3217
#, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "Rozszerzenie pliku \"%s\" nie jest dozwolone do przesłania na ten serwer"
-#: cps/web.py:2951
+#: cps/web.py:2982
#, python-format
msgid "Failed to store file %s."
msgstr ""
-#: cps/web.py:2973 cps/web.py:2977
+#: cps/web.py:3004 cps/web.py:3008
msgid "unknown"
msgstr ""
-#: cps/web.py:3186
+#: cps/web.py:3031
+msgid "Cover is not a jpg file, can't save"
+msgstr ""
+
+#: cps/web.py:3223
msgid "File to be uploaded must have an extension"
msgstr "Plik do przesłania musi mieć rozszerzenie"
-#: cps/web.py:3205
+#: cps/web.py:3242
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)."
-#: cps/web.py:3210
+#: cps/web.py:3247
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)."
-#: cps/web.py:3215
+#: cps/web.py:3252
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)."
@@ -550,7 +563,7 @@ msgstr "Konfiguracja"
msgid "Calibre DB dir"
msgstr "Folder bazy danych Calibre"
-#: cps/templates/admin.html:61 cps/templates/config_edit.html:83
+#: cps/templates/admin.html:61 cps/templates/config_edit.html:91
msgid "Log Level"
msgstr "Poziom logów"
@@ -558,7 +571,7 @@ msgstr "Poziom logów"
msgid "Port"
msgstr "Port"
-#: cps/templates/admin.html:63 cps/templates/config_edit.html:60
+#: cps/templates/admin.html:63 cps/templates/config_edit.html:68
msgid "Books per page"
msgstr "Ilość książek na stronie"
@@ -621,7 +634,7 @@ msgstr "OK"
#: cps/templates/admin.html:105 cps/templates/admin.html:119
#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157
-#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36
+#: cps/templates/config_edit.html:223 cps/templates/email_edit.html:36
#: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139
msgid "Back"
@@ -669,7 +682,7 @@ msgstr "Opis"
msgid "Tags"
msgstr "Tagi"
-#: cps/templates/book_edit.html:39 cps/templates/layout.html:144
+#: cps/templates/book_edit.html:39 cps/templates/layout.html:152
#: cps/templates/search_form.html:37
msgid "Series"
msgstr "Seria"
@@ -683,8 +696,10 @@ msgid "Rating"
msgstr "Ocena"
#: cps/templates/book_edit.html:51
-msgid "Cover URL (jpg)"
-msgstr "Adres URL okładki (jpg)"
+msgid ""
+"Cover URL (jpg, cover is downloaded and stored in database, field is "
+"afterwards empty again)"
+msgstr ""
#: cps/templates/book_edit.html:56 cps/templates/detail.html:131
msgid "Publishing date"
@@ -714,7 +729,7 @@ msgstr "wyświetl książkę po edycji"
msgid "Get metadata"
msgstr "Uzyskaj metadane"
-#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209
+#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:221
#: cps/templates/login.html:20 cps/templates/search_form.html:79
#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137
msgid "Submit"
@@ -756,7 +771,7 @@ msgstr "Kliknij okładkę, aby załadować metadane do formularza"
msgid "Loading..."
msgstr "Ładowanie..."
-#: cps/templates/book_edit.html:196 cps/templates/layout.html:208
+#: cps/templates/book_edit.html:196 cps/templates/layout.html:216
msgid "Close"
msgstr "Zamknij"
@@ -810,144 +825,156 @@ msgstr "Metadane Watch Channel ID"
msgid "Server Port"
msgstr "Port serwera"
-#: cps/templates/config_edit.html:56 cps/templates/layout.html:120
-#: cps/templates/layout.html:121 cps/templates/shelf_edit.html:7
+#: cps/templates/config_edit.html:56
+msgid "SSL certfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:60
+msgid "SSL Keyfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:64 cps/templates/layout.html:128
+#: cps/templates/layout.html:129 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "Tytuł"
-#: cps/templates/config_edit.html:64
+#: cps/templates/config_edit.html:72
msgid "No. of random books to show"
msgstr "Liczba losowych książek do pokazania"
-#: cps/templates/config_edit.html:68
+#: cps/templates/config_edit.html:76
msgid "Regular expression for ignoring columns"
msgstr "Wyrażenie regularne dla ignorowanych kolumn"
-#: cps/templates/config_edit.html:72
+#: cps/templates/config_edit.html:80
msgid "Regular expression for title sorting"
msgstr "Wyrażenie regularne dla tytułu sortującego"
-#: cps/templates/config_edit.html:76
+#: cps/templates/config_edit.html:84
msgid "Tags for Mature Content"
msgstr ""
-#: cps/templates/config_edit.html:92
+#: cps/templates/config_edit.html:100
msgid "Location and name of logfile (calibre-web.log for no entry)"
msgstr ""
-#: cps/templates/config_edit.html:98
+#: cps/templates/config_edit.html:106
msgid "Enable uploading"
msgstr "Włącz wysyłanie"
-#: cps/templates/config_edit.html:102
+#: cps/templates/config_edit.html:110
msgid "Enable anonymous browsing"
msgstr "Włącz anonimowe przeglądanie"
-#: cps/templates/config_edit.html:106
+#: cps/templates/config_edit.html:114
msgid "Enable public registration"
msgstr "Włącz publiczną rejestrację"
-#: cps/templates/config_edit.html:110
+#: cps/templates/config_edit.html:118
msgid "Enable remote login (\"magic link\")"
msgstr ""
-#: cps/templates/config_edit.html:115
+#: cps/templates/config_edit.html:123
msgid "Use"
msgstr ""
-#: cps/templates/config_edit.html:116
+#: cps/templates/config_edit.html:124
msgid "Obtain an API Key"
msgstr ""
-#: cps/templates/config_edit.html:120
+#: cps/templates/config_edit.html:128
msgid "Goodreads API Key"
msgstr ""
-#: cps/templates/config_edit.html:124
+#: cps/templates/config_edit.html:132
msgid "Goodreads API Secret"
msgstr ""
-#: cps/templates/config_edit.html:129
+#: cps/templates/config_edit.html:137
msgid "Default Settings for new users"
msgstr "Domyślne ustawienia dla nowych użytkowników"
-#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94
+#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:94
msgid "Admin user"
msgstr "Użytkownik z uprawnieniami administratora"
-#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103
+#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:103
msgid "Allow Downloads"
msgstr "Zezwalaj na pobieranie"
-#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107
+#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:107
msgid "Allow Uploads"
msgstr "Zezwalaj na wysyłanie"
-#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111
+#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:111
msgid "Allow Edit"
msgstr "Zezwalaj na edycję"
-#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115
+#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:115
msgid "Allow Delete books"
msgstr ""
-#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120
+#: cps/templates/config_edit.html:160 cps/templates/user_edit.html:120
msgid "Allow Changing Password"
msgstr "Zezwalaj na zmianę hasła"
-#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124
+#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:124
msgid "Allow Editing Public Shelfs"
msgstr ""
-#: cps/templates/config_edit.html:160
+#: cps/templates/config_edit.html:168
msgid "Default visiblities for new users"
msgstr ""
-#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46
+#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:46
msgid "Show random books"
msgstr "Pokaż losowe książki"
-#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50
+#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:50
msgid "Show recent books"
msgstr ""
-#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54
+#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:54
msgid "Show sorted books"
msgstr ""
-#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58
+#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:58
msgid "Show hot books"
msgstr "Pokaż najpopularniejsze książki"
-#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62
+#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:62
msgid "Show best rated books"
msgstr "Pokaż najlepiej ocenione książki"
-#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66
+#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:66
msgid "Show language selection"
msgstr "Pokaż wybór języka"
-#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70
+#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:70
msgid "Show series selection"
msgstr "Pokaż wybór serii"
-#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74
+#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:74
msgid "Show category selection"
msgstr "Pokaż wybór kategorii"
-#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78
+#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:78
msgid "Show author selection"
msgstr "Pokaż wybór autora"
-#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82
+#: cps/templates/config_edit.html:208 cps/templates/user_edit.html:82
msgid "Show read and unread"
msgstr "Pokaż przeczytane i nieprzeczytane"
-#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86
+#: cps/templates/config_edit.html:212 cps/templates/user_edit.html:86
msgid "Show random books in detail view"
msgstr "Pokaz losowe książki w widoku szczegółowym"
-#: cps/templates/config_edit.html:214 cps/templates/layout.html:77
+#: cps/templates/config_edit.html:216 cps/templates/user_edit.html:99
+msgid "Show mature content"
+msgstr ""
+
+#: cps/templates/config_edit.html:226 cps/templates/layout.html:77
#: cps/templates/login.html:4
msgid "Login"
msgstr "Zaloguj się"
@@ -1018,7 +1045,7 @@ msgstr "Zapisz ustawienia"
msgid "Save settings and send Test E-Mail"
msgstr "Zapisz ustawienia i wyślij testową wiadomość e-mail"
-#: cps/templates/feed.xml:20 cps/templates/layout.html:192
+#: cps/templates/feed.xml:20 cps/templates/layout.html:200
msgid "Next"
msgstr "Następne"
@@ -1035,7 +1062,7 @@ msgstr "Odkrywaj (losowe książki)"
msgid "Start"
msgstr "Rozpocznij"
-#: cps/templates/index.xml:14 cps/templates/layout.html:126
+#: cps/templates/index.xml:14 cps/templates/layout.html:134
msgid "Hot Books"
msgstr "Najpopularniejsze książki"
@@ -1043,7 +1070,7 @@ msgstr "Najpopularniejsze książki"
msgid "Popular publications from this catalog based on Downloads."
msgstr "Popularne publikacje z tego katalogu bazujące na pobranych."
-#: cps/templates/index.xml:20 cps/templates/layout.html:129
+#: cps/templates/index.xml:20 cps/templates/layout.html:137
msgid "Best rated Books"
msgstr "Najlepiej ocenione książki"
@@ -1063,7 +1090,7 @@ msgstr "Ostatnie książki"
msgid "Show Random Books"
msgstr "Pokazuj losowe książki"
-#: cps/templates/index.xml:52 cps/templates/layout.html:147
+#: cps/templates/index.xml:52 cps/templates/layout.html:155
msgid "Authors"
msgstr "Autorzy"
@@ -1079,7 +1106,7 @@ msgstr "Książki sortowane według kategorii"
msgid "Books ordered by series"
msgstr "Książki sortowane według serii"
-#: cps/templates/index.xml:70 cps/templates/layout.html:153
+#: cps/templates/index.xml:70 cps/templates/layout.html:161
msgid "Public Shelves"
msgstr "Publiczne półki"
@@ -1087,7 +1114,7 @@ msgstr "Publiczne półki"
msgid "Books organized in public shelfs, visible to everyone"
msgstr ""
-#: cps/templates/index.xml:77 cps/templates/layout.html:157
+#: cps/templates/index.xml:77 cps/templates/layout.html:165
msgid "Your Shelves"
msgstr "Twoje półki"
@@ -1111,64 +1138,64 @@ msgstr "Wyloguj się"
msgid "Register"
msgstr "Zarejestruj się"
-#: cps/templates/layout.html:107
+#: cps/templates/layout.html:115
msgid "Browse"
msgstr "Przeglądaj"
-#: cps/templates/layout.html:109
+#: cps/templates/layout.html:117
msgid "Recently Added"
msgstr ""
-#: cps/templates/layout.html:114
+#: cps/templates/layout.html:122
msgid "Sorted Books"
msgstr ""
-#: cps/templates/layout.html:118 cps/templates/layout.html:119
-#: cps/templates/layout.html:120 cps/templates/layout.html:121
+#: cps/templates/layout.html:126 cps/templates/layout.html:127
+#: cps/templates/layout.html:128 cps/templates/layout.html:129
msgid "Sort By"
msgstr ""
-#: cps/templates/layout.html:118
+#: cps/templates/layout.html:126
msgid "Newest"
msgstr ""
-#: cps/templates/layout.html:119
+#: cps/templates/layout.html:127
msgid "Oldest"
msgstr ""
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:128
msgid "Ascending"
msgstr ""
-#: cps/templates/layout.html:121
+#: cps/templates/layout.html:129
msgid "Descending"
msgstr ""
-#: cps/templates/layout.html:138
+#: cps/templates/layout.html:146
msgid "Discover"
msgstr "Odkrywaj"
-#: cps/templates/layout.html:141
+#: cps/templates/layout.html:149
msgid "Categories"
msgstr "Kategorie"
-#: cps/templates/layout.html:150 cps/templates/search_form.html:58
+#: cps/templates/layout.html:158 cps/templates/search_form.html:58
msgid "Languages"
msgstr "Języki"
-#: cps/templates/layout.html:162
+#: cps/templates/layout.html:170
msgid "Create a Shelf"
msgstr "Utwórz półkę"
-#: cps/templates/layout.html:163 cps/templates/stats.html:3
+#: cps/templates/layout.html:171 cps/templates/stats.html:3
msgid "About"
msgstr "O programie"
-#: cps/templates/layout.html:177
+#: cps/templates/layout.html:185
msgid "Previous"
msgstr ""
-#: cps/templates/layout.html:204
+#: cps/templates/layout.html:212
msgid "Book Details"
msgstr ""
@@ -1339,10 +1366,6 @@ msgstr "Pokaż książki w języku"
msgid "Show all"
msgstr "Pokaż wszystko"
-#: cps/templates/user_edit.html:99
-msgid "Show mature content"
-msgstr ""
-
#: cps/templates/user_edit.html:131
msgid "Delete this user"
msgstr "Usuń tego użytkownika"
diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po
index 10f4141f..7a630684 100644
--- a/cps/translations/ru/LC_MESSAGES/messages.po
+++ b/cps/translations/ru/LC_MESSAGES/messages.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
-"POT-Creation-Date: 2018-02-13 16:39+0100\n"
+"POT-Creation-Date: 2018-03-30 21:08+0200\n"
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
"Last-Translator: Pavel Korovin \n"
"Language: ru\n"
@@ -80,7 +80,7 @@ msgstr ""
msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s"
msgstr ""
-#: cps/ub.py:649
+#: cps/ub.py:685
msgid "Guest"
msgstr "Гость"
@@ -148,7 +148,7 @@ msgstr "Случайный выбор"
msgid "Author list"
msgstr "Авторы"
-#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1877
+#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1882
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Невозможно открыть книгу. Файл не существует или недоступен."
@@ -199,272 +199,285 @@ msgstr "Производится остановка сервера, пожалу
msgid "Update done"
msgstr "Обновление закончено"
-#: cps/web.py:1741 cps/web.py:1754
+#: cps/web.py:1746 cps/web.py:1759
msgid "search"
msgstr "поиск"
#: cps/templates/index.xml:39 cps/templates/index.xml:42
-#: cps/templates/layout.html:133 cps/web.py:1832
+#: cps/templates/layout.html:141 cps/web.py:1837
msgid "Read Books"
msgstr "Прочитанные"
#: cps/templates/index.xml:46 cps/templates/index.xml:49
-#: cps/templates/layout.html:135 cps/web.py:1835
+#: cps/templates/layout.html:143 cps/web.py:1840
msgid "Unread Books"
msgstr "Непрочитанные"
-#: cps/web.py:1910 cps/web.py:1912 cps/web.py:1914 cps/web.py:1923
+#: cps/web.py:1915 cps/web.py:1917 cps/web.py:1919 cps/web.py:1928
msgid "Read a Book"
msgstr "Читать книгу"
-#: cps/web.py:1975 cps/web.py:2667
+#: cps/web.py:1980 cps/web.py:2697
msgid "Please fill out all fields!"
msgstr "Пожалуйста, заполните все поля!"
-#: cps/web.py:1976 cps/web.py:1993 cps/web.py:1998 cps/web.py:2000
+#: cps/web.py:1981 cps/web.py:1998 cps/web.py:2003 cps/web.py:2005
msgid "register"
msgstr "зарегистрироваться"
-#: cps/web.py:1992
+#: cps/web.py:1997
msgid "An unknown error occured. Please try again later."
msgstr "Неизвестная ошибка. Пожалуйста, попробуйте позже."
-#: cps/web.py:1997
+#: cps/web.py:2002
msgid "This username or email address is already in use."
msgstr "Имя пользователя или адрес эл. почты уже используется"
-#: cps/web.py:2016 cps/web.py:2112
+#: cps/web.py:2021 cps/web.py:2117
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Вы вошли как пользователь '%(nickname)s'"
-#: cps/web.py:2021
+#: cps/web.py:2026
msgid "Wrong Username or Password"
msgstr "Ошибка в имени пользователя или пароле"
-#: cps/web.py:2027 cps/web.py:2048
+#: cps/web.py:2032 cps/web.py:2053
msgid "login"
msgstr "войти"
-#: cps/web.py:2060 cps/web.py:2091
+#: cps/web.py:2065 cps/web.py:2096
msgid "Token not found"
msgstr ""
-#: cps/web.py:2068 cps/web.py:2099
+#: cps/web.py:2073 cps/web.py:2104
msgid "Token has expired"
msgstr ""
-#: cps/web.py:2076
+#: cps/web.py:2081
msgid "Success! Please return to your device"
msgstr ""
-#: cps/web.py:2126
+#: cps/web.py:2131
msgid "Please configure the SMTP mail settings first..."
msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP"
-#: cps/web.py:2130
+#: cps/web.py:2135
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "Книга успешно отправлена на %(kindlemail)s"
-#: cps/web.py:2134
+#: cps/web.py:2139
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Ошибка при отправке книги: %(res)s"
-#: cps/web.py:2136 cps/web.py:2753
+#: cps/web.py:2141 cps/web.py:2784
msgid "Please configure your kindle email address first..."
msgstr "Пожалуйста, сначала укажите ваш kindle email..."
-#: cps/web.py:2180
+#: cps/web.py:2185
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "Книга добавлена на книжную полку: %(sname)s"
-#: cps/web.py:2218
+#: cps/web.py:2223
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Книга удалена с книжной полки: %(sname)s"
-#: cps/web.py:2224
+#: cps/web.py:2229
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr ""
-#: cps/web.py:2244 cps/web.py:2268
+#: cps/web.py:2249 cps/web.py:2273
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Книжкная полка с названием '%(title)s' уже существует."
-#: cps/web.py:2249
+#: cps/web.py:2254
#, python-format
msgid "Shelf %(title)s created"
msgstr "Создана книжная полка %(title)s"
-#: cps/web.py:2251 cps/web.py:2279
+#: cps/web.py:2256 cps/web.py:2284
msgid "There was an error"
msgstr "Произошла ошибка"
-#: cps/web.py:2252 cps/web.py:2254
+#: cps/web.py:2257 cps/web.py:2259
msgid "create a shelf"
msgstr "создать книжную полку"
-#: cps/web.py:2277
+#: cps/web.py:2282
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Книжная полка %(title)s изменена"
-#: cps/web.py:2280 cps/web.py:2282
+#: cps/web.py:2285 cps/web.py:2287
msgid "Edit a shelf"
msgstr "Изменить книжную полку"
-#: cps/web.py:2303
+#: cps/web.py:2308
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "Книжная полка %(name)s удалена"
-#: cps/web.py:2325
+#: cps/web.py:2330
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Книжная полка: '%(name)s'"
-#: cps/web.py:2328
+#: cps/web.py:2333
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr ""
-#: cps/web.py:2359
+#: cps/web.py:2364
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Изменить расположение книжной полки '%(name)s'"
-#: cps/web.py:2428
+#: cps/web.py:2433
msgid "Found an existing account for this email address."
msgstr "Найдена учётная запись для для данного адреса email."
-#: cps/web.py:2430 cps/web.py:2434
+#: cps/web.py:2435 cps/web.py:2439
#, python-format
msgid "%(name)s's profile"
msgstr "Профиль %(name)s"
-#: cps/web.py:2431
+#: cps/web.py:2436
msgid "Profile updated"
msgstr "Профиль обновлён"
-#: cps/web.py:2443
+#: cps/web.py:2448
msgid "Unknown"
msgstr ""
-#: cps/web.py:2456
+#: cps/web.py:2461
msgid "Admin page"
msgstr "Администрирование"
-#: cps/web.py:2606
-msgid "Logfile location is not valid, please enter correct path"
+#: cps/web.py:2532
+msgid "Keyfile location is not valid, please enter correct path"
msgstr ""
-#: cps/web.py:2609 cps/web.py:2628 cps/web.py:2634 cps/web.py:2648
+#: cps/web.py:2535 cps/web.py:2546 cps/web.py:2639 cps/web.py:2658
+#: cps/web.py:2664 cps/web.py:2678
msgid "Basic Configuration"
msgstr "Настройки сервера"
-#: cps/web.py:2621
+#: cps/web.py:2543
+msgid "Certfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2636
+msgid "Logfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2651
msgid "Calibre-web configuration updated"
msgstr "Конфигурация Calibre-web обновлена"
-#: cps/web.py:2632
+#: cps/web.py:2662
msgid "DB location is not valid, please enter correct path"
msgstr "Неверный путь к фалу БД, пожалуйста, укажите правильное расположение БД"
-#: cps/templates/admin.html:34 cps/web.py:2669 cps/web.py:2723
+#: cps/templates/admin.html:34 cps/web.py:2699 cps/web.py:2754
msgid "Add new user"
msgstr "Добавить пользователя"
-#: cps/web.py:2714
+#: cps/web.py:2744
#, python-format
msgid "User '%(user)s' created"
msgstr "Пользователь '%(user)s' добавлен"
-#: cps/web.py:2718
+#: cps/web.py:2748
msgid "Found an existing account for this email address or nickname."
msgstr "Для указанного адреса или имени найдена существующая учётная запись."
-#: cps/web.py:2741
+#: cps/web.py:2772
msgid "Mail settings updated"
msgstr "Настройки почты изменены"
-#: cps/web.py:2748
+#: cps/web.py:2779
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Тестовое сообщение успешно отправлено на адрес %(kindlemail)s"
-#: cps/web.py:2751
+#: cps/web.py:2782
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr "Ошибка отправки тестового сообщения: %(res)s"
-#: cps/web.py:2755
+#: cps/web.py:2786
msgid "E-Mail settings updated"
msgstr "Обновлены настройки e-mail"
-#: cps/web.py:2756
+#: cps/web.py:2787
msgid "Edit mail settings"
msgstr "Изменить почтовые настройки"
-#: cps/web.py:2785
+#: cps/web.py:2816
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Пользователь '%(nick)s' удалён"
-#: cps/web.py:2893
+#: cps/web.py:2924
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Пользователь '%(nick)s' обновлён"
-#: cps/web.py:2896
+#: cps/web.py:2927
msgid "An unknown error occured."
msgstr "Произошла неизвестная ошибка."
-#: cps/web.py:2899
+#: cps/web.py:2930
#, python-format
msgid "Edit User %(nick)s"
msgstr "Изменить пользователя %(nick)s"
-#: cps/web.py:2915
+#: cps/web.py:2946
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr ""
-#: cps/web.py:2930 cps/web.py:3138 cps/web.py:3143 cps/web.py:3286
+#: cps/web.py:2961 cps/web.py:3172 cps/web.py:3177 cps/web.py:3323
msgid "edit metadata"
msgstr "изменить метаданные"
-#: cps/web.py:2940 cps/web.py:3180
+#: cps/web.py:2971 cps/web.py:3217
#, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "Запрещена загрузка файлов с расширением \"%s\""
-#: cps/web.py:2951
+#: cps/web.py:2982
#, python-format
msgid "Failed to store file %s."
msgstr ""
-#: cps/web.py:2973 cps/web.py:2977
+#: cps/web.py:3004 cps/web.py:3008
msgid "unknown"
msgstr "неизвестно"
-#: cps/web.py:3186
+#: cps/web.py:3031
+msgid "Cover is not a jpg file, can't save"
+msgstr ""
+
+#: cps/web.py:3223
msgid "File to be uploaded must have an extension"
msgstr "Загружаемый файл должен иметь расширение"
-#: cps/web.py:3205
+#: cps/web.py:3242
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "Ошибка при создании пути %s (доступ запрещён)"
-#: cps/web.py:3210
+#: cps/web.py:3247
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "Ошибка записи файоа %s (доступ запрещён)"
-#: cps/web.py:3215
+#: cps/web.py:3252
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "Ошибка удаления файла %s (доступ запрещён)"
@@ -550,7 +563,7 @@ msgstr "Настройки сервера"
msgid "Calibre DB dir"
msgstr "Папка Calibre DB"
-#: cps/templates/admin.html:61 cps/templates/config_edit.html:83
+#: cps/templates/admin.html:61 cps/templates/config_edit.html:91
msgid "Log Level"
msgstr "Уровень логирования"
@@ -558,7 +571,7 @@ msgstr "Уровень логирования"
msgid "Port"
msgstr "Порт"
-#: cps/templates/admin.html:63 cps/templates/config_edit.html:60
+#: cps/templates/admin.html:63 cps/templates/config_edit.html:68
msgid "Books per page"
msgstr "Количество книг на странице"
@@ -621,7 +634,7 @@ msgstr "Ok"
#: cps/templates/admin.html:105 cps/templates/admin.html:119
#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157
-#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36
+#: cps/templates/config_edit.html:223 cps/templates/email_edit.html:36
#: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139
msgid "Back"
@@ -669,7 +682,7 @@ msgstr "Описание"
msgid "Tags"
msgstr "Теги"
-#: cps/templates/book_edit.html:39 cps/templates/layout.html:144
+#: cps/templates/book_edit.html:39 cps/templates/layout.html:152
#: cps/templates/search_form.html:37
msgid "Series"
msgstr "Серии"
@@ -683,8 +696,10 @@ msgid "Rating"
msgstr "Рейтинг"
#: cps/templates/book_edit.html:51
-msgid "Cover URL (jpg)"
-msgstr "URL обложки (jpg)"
+msgid ""
+"Cover URL (jpg, cover is downloaded and stored in database, field is "
+"afterwards empty again)"
+msgstr ""
#: cps/templates/book_edit.html:56 cps/templates/detail.html:131
msgid "Publishing date"
@@ -714,7 +729,7 @@ msgstr "смотреть книгу после редактирования"
msgid "Get metadata"
msgstr "Получить метаданные"
-#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209
+#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:221
#: cps/templates/login.html:20 cps/templates/search_form.html:79
#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137
msgid "Submit"
@@ -756,7 +771,7 @@ msgstr "Нажмите на обложку, чтобы получить мета
msgid "Loading..."
msgstr "Загрузка..."
-#: cps/templates/book_edit.html:196 cps/templates/layout.html:208
+#: cps/templates/book_edit.html:196 cps/templates/layout.html:216
msgid "Close"
msgstr "Закрыть"
@@ -809,144 +824,156 @@ msgstr "Metadata Watch Channel ID"
msgid "Server Port"
msgstr "Порт сервера"
-#: cps/templates/config_edit.html:56 cps/templates/layout.html:120
-#: cps/templates/layout.html:121 cps/templates/shelf_edit.html:7
+#: cps/templates/config_edit.html:56
+msgid "SSL certfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:60
+msgid "SSL Keyfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:64 cps/templates/layout.html:128
+#: cps/templates/layout.html:129 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "Заголовок"
-#: cps/templates/config_edit.html:64
+#: cps/templates/config_edit.html:72
msgid "No. of random books to show"
msgstr "Количество отображаемых случайных книг"
-#: cps/templates/config_edit.html:68
+#: cps/templates/config_edit.html:76
msgid "Regular expression for ignoring columns"
msgstr "Regexp для игнорирования столбцов"
-#: cps/templates/config_edit.html:72
+#: cps/templates/config_edit.html:80
msgid "Regular expression for title sorting"
msgstr "Regexp для сортировки по названию"
-#: cps/templates/config_edit.html:76
+#: cps/templates/config_edit.html:84
msgid "Tags for Mature Content"
msgstr ""
-#: cps/templates/config_edit.html:92
+#: cps/templates/config_edit.html:100
msgid "Location and name of logfile (calibre-web.log for no entry)"
msgstr ""
-#: cps/templates/config_edit.html:98
+#: cps/templates/config_edit.html:106
msgid "Enable uploading"
msgstr "Разрешить загрузку на сервер"
-#: cps/templates/config_edit.html:102
+#: cps/templates/config_edit.html:110
msgid "Enable anonymous browsing"
msgstr "Разрешить анонимный просмотр"
-#: cps/templates/config_edit.html:106
+#: cps/templates/config_edit.html:114
msgid "Enable public registration"
msgstr "Разрешить публичную регистрацию"
-#: cps/templates/config_edit.html:110
+#: cps/templates/config_edit.html:118
msgid "Enable remote login (\"magic link\")"
msgstr ""
-#: cps/templates/config_edit.html:115
+#: cps/templates/config_edit.html:123
msgid "Use"
msgstr ""
-#: cps/templates/config_edit.html:116
+#: cps/templates/config_edit.html:124
msgid "Obtain an API Key"
msgstr ""
-#: cps/templates/config_edit.html:120
+#: cps/templates/config_edit.html:128
msgid "Goodreads API Key"
msgstr ""
-#: cps/templates/config_edit.html:124
+#: cps/templates/config_edit.html:132
msgid "Goodreads API Secret"
msgstr ""
-#: cps/templates/config_edit.html:129
+#: cps/templates/config_edit.html:137
msgid "Default Settings for new users"
msgstr "Настройки по умолчанию для новых пользователей"
-#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94
+#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:94
msgid "Admin user"
msgstr "Управление сервером"
-#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103
+#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:103
msgid "Allow Downloads"
msgstr "Разрешить скачивание с сервера"
-#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107
+#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:107
msgid "Allow Uploads"
msgstr "Разрешить загрузку на сервер"
-#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111
+#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:111
msgid "Allow Edit"
msgstr "Разрешить редактирование книг"
-#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115
+#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:115
msgid "Allow Delete books"
msgstr "Разрешить удаление книг"
-#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120
+#: cps/templates/config_edit.html:160 cps/templates/user_edit.html:120
msgid "Allow Changing Password"
msgstr "Разрешить смену пароля"
-#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124
+#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:124
msgid "Allow Editing Public Shelfs"
msgstr "Разрешить редактирование публичных книжных полок"
-#: cps/templates/config_edit.html:160
+#: cps/templates/config_edit.html:168
msgid "Default visiblities for new users"
msgstr ""
-#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46
+#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:46
msgid "Show random books"
msgstr "Показывать случайные книги"
-#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50
+#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:50
msgid "Show recent books"
msgstr ""
-#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54
+#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:54
msgid "Show sorted books"
msgstr ""
-#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58
+#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:58
msgid "Show hot books"
msgstr "Показывать популярные книги"
-#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62
+#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:62
msgid "Show best rated books"
msgstr "Показывать книги с наивысшим рейтингом"
-#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66
+#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:66
msgid "Show language selection"
msgstr "Показывать выбор языка"
-#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70
+#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:70
msgid "Show series selection"
msgstr "Показывать выбор серии"
-#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74
+#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:74
msgid "Show category selection"
msgstr "Показывать выбор категории"
-#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78
+#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:78
msgid "Show author selection"
msgstr "Показывать выбор автора"
-#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82
+#: cps/templates/config_edit.html:208 cps/templates/user_edit.html:82
msgid "Show read and unread"
msgstr "Показывать прочитанные и непрочитанные"
-#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86
+#: cps/templates/config_edit.html:212 cps/templates/user_edit.html:86
msgid "Show random books in detail view"
msgstr "Показывать случайные книги при просмотре деталей"
-#: cps/templates/config_edit.html:214 cps/templates/layout.html:77
+#: cps/templates/config_edit.html:216 cps/templates/user_edit.html:99
+msgid "Show mature content"
+msgstr ""
+
+#: cps/templates/config_edit.html:226 cps/templates/layout.html:77
#: cps/templates/login.html:4
msgid "Login"
msgstr "Имя пользователя"
@@ -1015,7 +1042,7 @@ msgstr "Сохранить настройки"
msgid "Save settings and send Test E-Mail"
msgstr "Сохранить настройки и отправить тестовое письмо"
-#: cps/templates/feed.xml:20 cps/templates/layout.html:192
+#: cps/templates/feed.xml:20 cps/templates/layout.html:200
msgid "Next"
msgstr "Дальше"
@@ -1032,7 +1059,7 @@ msgstr "Обзор (случайные книги)"
msgid "Start"
msgstr "Старт"
-#: cps/templates/index.xml:14 cps/templates/layout.html:126
+#: cps/templates/index.xml:14 cps/templates/layout.html:134
msgid "Hot Books"
msgstr "Популярные книги"
@@ -1040,7 +1067,7 @@ msgstr "Популярные книги"
msgid "Popular publications from this catalog based on Downloads."
msgstr "Популярные книги в этом каталоге, на основе количества скачиваний"
-#: cps/templates/index.xml:20 cps/templates/layout.html:129
+#: cps/templates/index.xml:20 cps/templates/layout.html:137
msgid "Best rated Books"
msgstr "Книги с наилучшим рейтингом"
@@ -1060,7 +1087,7 @@ msgstr "Последние поступления"
msgid "Show Random Books"
msgstr "Показывать случайные книги"
-#: cps/templates/index.xml:52 cps/templates/layout.html:147
+#: cps/templates/index.xml:52 cps/templates/layout.html:155
msgid "Authors"
msgstr "Авторы"
@@ -1076,7 +1103,7 @@ msgstr "Книги, отсортированные по категории"
msgid "Books ordered by series"
msgstr "Книги, отсортированные по серии"
-#: cps/templates/index.xml:70 cps/templates/layout.html:153
+#: cps/templates/index.xml:70 cps/templates/layout.html:161
msgid "Public Shelves"
msgstr "Общие книжные полки"
@@ -1084,7 +1111,7 @@ msgstr "Общие книжные полки"
msgid "Books organized in public shelfs, visible to everyone"
msgstr ""
-#: cps/templates/index.xml:77 cps/templates/layout.html:157
+#: cps/templates/index.xml:77 cps/templates/layout.html:165
msgid "Your Shelves"
msgstr "Ваши книжные полки"
@@ -1108,64 +1135,64 @@ msgstr "Выход"
msgid "Register"
msgstr "Зарегистрироваться"
-#: cps/templates/layout.html:107
+#: cps/templates/layout.html:115
msgid "Browse"
msgstr "Просмотр"
-#: cps/templates/layout.html:109
+#: cps/templates/layout.html:117
msgid "Recently Added"
msgstr ""
-#: cps/templates/layout.html:114
+#: cps/templates/layout.html:122
msgid "Sorted Books"
msgstr ""
-#: cps/templates/layout.html:118 cps/templates/layout.html:119
-#: cps/templates/layout.html:120 cps/templates/layout.html:121
+#: cps/templates/layout.html:126 cps/templates/layout.html:127
+#: cps/templates/layout.html:128 cps/templates/layout.html:129
msgid "Sort By"
msgstr ""
-#: cps/templates/layout.html:118
+#: cps/templates/layout.html:126
msgid "Newest"
msgstr ""
-#: cps/templates/layout.html:119
+#: cps/templates/layout.html:127
msgid "Oldest"
msgstr ""
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:128
msgid "Ascending"
msgstr ""
-#: cps/templates/layout.html:121
+#: cps/templates/layout.html:129
msgid "Descending"
msgstr ""
-#: cps/templates/layout.html:138
+#: cps/templates/layout.html:146
msgid "Discover"
msgstr "Обзор"
-#: cps/templates/layout.html:141
+#: cps/templates/layout.html:149
msgid "Categories"
msgstr "Категории"
-#: cps/templates/layout.html:150 cps/templates/search_form.html:58
+#: cps/templates/layout.html:158 cps/templates/search_form.html:58
msgid "Languages"
msgstr "Языки"
-#: cps/templates/layout.html:162
+#: cps/templates/layout.html:170
msgid "Create a Shelf"
msgstr "Создать книжную полку"
-#: cps/templates/layout.html:163 cps/templates/stats.html:3
+#: cps/templates/layout.html:171 cps/templates/stats.html:3
msgid "About"
msgstr "О программе"
-#: cps/templates/layout.html:177
+#: cps/templates/layout.html:185
msgid "Previous"
msgstr ""
-#: cps/templates/layout.html:204
+#: cps/templates/layout.html:212
msgid "Book Details"
msgstr ""
@@ -1335,10 +1362,6 @@ msgstr "Показать книги на языках"
msgid "Show all"
msgstr "Всех"
-#: cps/templates/user_edit.html:99
-msgid "Show mature content"
-msgstr ""
-
#: cps/templates/user_edit.html:131
msgid "Delete this user"
msgstr "Удалить этого пользователя"
diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
index 5d87a3d7..a6fce334 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: 2018-02-13 16:39+0100\n"
+"POT-Creation-Date: 2018-03-30 21:08+0200\n"
"PO-Revision-Date: 2017-01-06 17:00+0000\n"
"Last-Translator: dalin \n"
"Language: zh_Hans_CN\n"
@@ -80,7 +80,7 @@ msgstr ""
msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s"
msgstr ""
-#: cps/ub.py:649
+#: cps/ub.py:685
msgid "Guest"
msgstr "游客"
@@ -148,7 +148,7 @@ msgstr "随机书籍"
msgid "Author list"
msgstr "作者列表"
-#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1877
+#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1882
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "无法打开电子书。 文件不存在或者文件不可访问:"
@@ -199,272 +199,285 @@ msgstr "正在关闭服务器,请关闭窗口"
msgid "Update done"
msgstr "更新完成"
-#: cps/web.py:1741 cps/web.py:1754
+#: cps/web.py:1746 cps/web.py:1759
msgid "search"
msgstr "搜索"
#: cps/templates/index.xml:39 cps/templates/index.xml:42
-#: cps/templates/layout.html:133 cps/web.py:1832
+#: cps/templates/layout.html:141 cps/web.py:1837
msgid "Read Books"
msgstr "已读书籍"
#: cps/templates/index.xml:46 cps/templates/index.xml:49
-#: cps/templates/layout.html:135 cps/web.py:1835
+#: cps/templates/layout.html:143 cps/web.py:1840
msgid "Unread Books"
msgstr "未读书籍"
-#: cps/web.py:1910 cps/web.py:1912 cps/web.py:1914 cps/web.py:1923
+#: cps/web.py:1915 cps/web.py:1917 cps/web.py:1919 cps/web.py:1928
msgid "Read a Book"
msgstr "阅读一本书"
-#: cps/web.py:1975 cps/web.py:2667
+#: cps/web.py:1980 cps/web.py:2697
msgid "Please fill out all fields!"
msgstr "请填写所有字段"
-#: cps/web.py:1976 cps/web.py:1993 cps/web.py:1998 cps/web.py:2000
+#: cps/web.py:1981 cps/web.py:1998 cps/web.py:2003 cps/web.py:2005
msgid "register"
msgstr "注册"
-#: cps/web.py:1992
+#: cps/web.py:1997
msgid "An unknown error occured. Please try again later."
msgstr "发生一个未知错误。请稍后再试。"
-#: cps/web.py:1997
+#: cps/web.py:2002
msgid "This username or email address is already in use."
msgstr "此用户名或邮箱已被使用。"
-#: cps/web.py:2016 cps/web.py:2112
+#: cps/web.py:2021 cps/web.py:2117
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "您现在已以'%(nickname)s'身份登录"
-#: cps/web.py:2021
+#: cps/web.py:2026
msgid "Wrong Username or Password"
msgstr "用户名或密码错误"
-#: cps/web.py:2027 cps/web.py:2048
+#: cps/web.py:2032 cps/web.py:2053
msgid "login"
msgstr "登录"
-#: cps/web.py:2060 cps/web.py:2091
+#: cps/web.py:2065 cps/web.py:2096
msgid "Token not found"
msgstr "找不到Token"
-#: cps/web.py:2068 cps/web.py:2099
+#: cps/web.py:2073 cps/web.py:2104
msgid "Token has expired"
msgstr "Token已过期"
-#: cps/web.py:2076
+#: cps/web.py:2081
msgid "Success! Please return to your device"
msgstr "成功!请返回您的设备"
-#: cps/web.py:2126
+#: cps/web.py:2131
msgid "Please configure the SMTP mail settings first..."
msgstr "请先配置SMTP邮箱..."
-#: cps/web.py:2130
+#: cps/web.py:2135
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr "此书已被成功发给 %(kindlemail)s"
-#: cps/web.py:2134
+#: cps/web.py:2139
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "发送这本书的时候出现错误: %(res)s"
-#: cps/web.py:2136 cps/web.py:2753
+#: cps/web.py:2141 cps/web.py:2784
msgid "Please configure your kindle email address first..."
msgstr "请先配置您的kindle电子邮箱地址..."
-#: cps/web.py:2180
+#: cps/web.py:2185
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "此书已被添加到书架: %(sname)s"
-#: cps/web.py:2218
+#: cps/web.py:2223
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "此书已从书架 %(sname)s 中删除"
-#: cps/web.py:2224
+#: cps/web.py:2229
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr ""
-#: cps/web.py:2244 cps/web.py:2268
+#: cps/web.py:2249 cps/web.py:2273
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "已存在书架 '%(title)s'。"
-#: cps/web.py:2249
+#: cps/web.py:2254
#, python-format
msgid "Shelf %(title)s created"
msgstr "书架 %(title)s 已被创建"
-#: cps/web.py:2251 cps/web.py:2279
+#: cps/web.py:2256 cps/web.py:2284
msgid "There was an error"
msgstr "发生错误"
-#: cps/web.py:2252 cps/web.py:2254
+#: cps/web.py:2257 cps/web.py:2259
msgid "create a shelf"
msgstr "创建书架"
-#: cps/web.py:2277
+#: cps/web.py:2282
#, python-format
msgid "Shelf %(title)s changed"
msgstr "书架 %(title)s 已被修改"
-#: cps/web.py:2280 cps/web.py:2282
+#: cps/web.py:2285 cps/web.py:2287
msgid "Edit a shelf"
msgstr "编辑书架"
-#: cps/web.py:2303
+#: cps/web.py:2308
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "成功删除书架 %(name)s"
-#: cps/web.py:2325
+#: cps/web.py:2330
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "书架: '%(name)s'"
-#: cps/web.py:2328
+#: cps/web.py:2333
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "打开书架出错。书架不存在或不可访问"
-#: cps/web.py:2359
+#: cps/web.py:2364
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "修改书架 '%(name)s' 顺序"
-#: cps/web.py:2428
+#: cps/web.py:2433
msgid "Found an existing account for this email address."
msgstr "找到已使用此邮箱的账号。"
-#: cps/web.py:2430 cps/web.py:2434
+#: cps/web.py:2435 cps/web.py:2439
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s 的资料"
-#: cps/web.py:2431
+#: cps/web.py:2436
msgid "Profile updated"
msgstr "资料已更新"
-#: cps/web.py:2443
+#: cps/web.py:2448
msgid "Unknown"
msgstr ""
-#: cps/web.py:2456
+#: cps/web.py:2461
msgid "Admin page"
msgstr "管理页"
-#: cps/web.py:2606
-msgid "Logfile location is not valid, please enter correct path"
+#: cps/web.py:2532
+msgid "Keyfile location is not valid, please enter correct path"
msgstr ""
-#: cps/web.py:2609 cps/web.py:2628 cps/web.py:2634 cps/web.py:2648
+#: cps/web.py:2535 cps/web.py:2546 cps/web.py:2639 cps/web.py:2658
+#: cps/web.py:2664 cps/web.py:2678
msgid "Basic Configuration"
msgstr "基本配置"
-#: cps/web.py:2621
+#: cps/web.py:2543
+msgid "Certfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2636
+msgid "Logfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2651
msgid "Calibre-web configuration updated"
msgstr "Calibre-web配置已更新"
-#: cps/web.py:2632
+#: cps/web.py:2662
msgid "DB location is not valid, please enter correct path"
msgstr "DB位置无效,请输入正确路径"
-#: cps/templates/admin.html:34 cps/web.py:2669 cps/web.py:2723
+#: cps/templates/admin.html:34 cps/web.py:2699 cps/web.py:2754
msgid "Add new user"
msgstr "添加新用户"
-#: cps/web.py:2714
+#: cps/web.py:2744
#, python-format
msgid "User '%(user)s' created"
msgstr "用户 '%(user)s' 已被创建"
-#: cps/web.py:2718
+#: cps/web.py:2748
msgid "Found an existing account for this email address or nickname."
msgstr "已存在使用此邮箱或昵称的账号。"
-#: cps/web.py:2741
+#: cps/web.py:2772
msgid "Mail settings updated"
msgstr "邮箱设置已更新"
-#: cps/web.py:2748
+#: cps/web.py:2779
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "测试邮件已成功发送到 %(kindlemail)s"
-#: cps/web.py:2751
+#: cps/web.py:2782
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr "发送测试邮件时发生错误: %(res)s"
-#: cps/web.py:2755
+#: cps/web.py:2786
msgid "E-Mail settings updated"
msgstr "E-Mail 设置已更新"
-#: cps/web.py:2756
+#: cps/web.py:2787
msgid "Edit mail settings"
msgstr "编辑邮箱设置"
-#: cps/web.py:2785
+#: cps/web.py:2816
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "用户 '%(nick)s' 已被删除"
-#: cps/web.py:2893
+#: cps/web.py:2924
#, python-format
msgid "User '%(nick)s' updated"
msgstr "用户 '%(nick)s' 已被更新"
-#: cps/web.py:2896
+#: cps/web.py:2927
msgid "An unknown error occured."
msgstr "发生未知错误。"
-#: cps/web.py:2899
+#: cps/web.py:2930
#, python-format
msgid "Edit User %(nick)s"
msgstr "编辑用户 %(nick)s"
-#: cps/web.py:2915
+#: cps/web.py:2946
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "打开电子书出错。文件不存在或不可访问"
-#: cps/web.py:2930 cps/web.py:3138 cps/web.py:3143 cps/web.py:3286
+#: cps/web.py:2961 cps/web.py:3172 cps/web.py:3177 cps/web.py:3323
msgid "edit metadata"
msgstr "编辑元数据"
-#: cps/web.py:2940 cps/web.py:3180
+#: cps/web.py:2971 cps/web.py:3217
#, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "不能上传后缀为 \"%s\" 的文件到此服务器"
-#: cps/web.py:2951
+#: cps/web.py:2982
#, python-format
msgid "Failed to store file %s."
msgstr ""
-#: cps/web.py:2973 cps/web.py:2977
+#: cps/web.py:3004 cps/web.py:3008
msgid "unknown"
msgstr "未知"
-#: cps/web.py:3186
+#: cps/web.py:3031
+msgid "Cover is not a jpg file, can't save"
+msgstr ""
+
+#: cps/web.py:3223
msgid "File to be uploaded must have an extension"
msgstr "要上传的文件必须有一个后缀"
-#: cps/web.py:3205
+#: cps/web.py:3242
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr "创建路径 %s 失败(权限拒绝)。"
-#: cps/web.py:3210
+#: cps/web.py:3247
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr "存储文件 %s 失败(权限拒绝)。"
-#: cps/web.py:3215
+#: cps/web.py:3252
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr "删除文件 %s 失败(权限拒绝)。"
@@ -550,7 +563,7 @@ msgstr "配置"
msgid "Calibre DB dir"
msgstr "Calibre DB目录"
-#: cps/templates/admin.html:61 cps/templates/config_edit.html:83
+#: cps/templates/admin.html:61 cps/templates/config_edit.html:91
msgid "Log Level"
msgstr "日志级别"
@@ -558,7 +571,7 @@ msgstr "日志级别"
msgid "Port"
msgstr "端口"
-#: cps/templates/admin.html:63 cps/templates/config_edit.html:60
+#: cps/templates/admin.html:63 cps/templates/config_edit.html:68
msgid "Books per page"
msgstr "每页书籍数"
@@ -621,7 +634,7 @@ msgstr "确定"
#: cps/templates/admin.html:105 cps/templates/admin.html:119
#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157
-#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36
+#: cps/templates/config_edit.html:223 cps/templates/email_edit.html:36
#: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139
msgid "Back"
@@ -669,7 +682,7 @@ msgstr "简介"
msgid "Tags"
msgstr "标签"
-#: cps/templates/book_edit.html:39 cps/templates/layout.html:144
+#: cps/templates/book_edit.html:39 cps/templates/layout.html:152
#: cps/templates/search_form.html:37
msgid "Series"
msgstr "丛书"
@@ -683,8 +696,10 @@ msgid "Rating"
msgstr "评分"
#: cps/templates/book_edit.html:51
-msgid "Cover URL (jpg)"
-msgstr "封面URL (jpg)"
+msgid ""
+"Cover URL (jpg, cover is downloaded and stored in database, field is "
+"afterwards empty again)"
+msgstr ""
#: cps/templates/book_edit.html:56 cps/templates/detail.html:131
msgid "Publishing date"
@@ -714,7 +729,7 @@ msgstr "编辑后查看书籍"
msgid "Get metadata"
msgstr "获取元数据"
-#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209
+#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:221
#: cps/templates/login.html:20 cps/templates/search_form.html:79
#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137
msgid "Submit"
@@ -756,7 +771,7 @@ msgstr "点击封面加载元数据到表单"
msgid "Loading..."
msgstr "加载中..."
-#: cps/templates/book_edit.html:196 cps/templates/layout.html:208
+#: cps/templates/book_edit.html:196 cps/templates/layout.html:216
msgid "Close"
msgstr "关闭"
@@ -809,144 +824,156 @@ msgstr ""
msgid "Server Port"
msgstr "服务器端口"
-#: cps/templates/config_edit.html:56 cps/templates/layout.html:120
-#: cps/templates/layout.html:121 cps/templates/shelf_edit.html:7
+#: cps/templates/config_edit.html:56
+msgid "SSL certfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:60
+msgid "SSL Keyfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:64 cps/templates/layout.html:128
+#: cps/templates/layout.html:129 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "标题"
-#: cps/templates/config_edit.html:64
+#: cps/templates/config_edit.html:72
msgid "No. of random books to show"
msgstr "随机书籍显示数量"
-#: cps/templates/config_edit.html:68
+#: cps/templates/config_edit.html:76
msgid "Regular expression for ignoring columns"
msgstr "忽略列的正则表达式"
-#: cps/templates/config_edit.html:72
+#: cps/templates/config_edit.html:80
msgid "Regular expression for title sorting"
msgstr "标题排序的正则表达式"
-#: cps/templates/config_edit.html:76
+#: cps/templates/config_edit.html:84
msgid "Tags for Mature Content"
msgstr ""
-#: cps/templates/config_edit.html:92
+#: cps/templates/config_edit.html:100
msgid "Location and name of logfile (calibre-web.log for no entry)"
msgstr ""
-#: cps/templates/config_edit.html:98
+#: cps/templates/config_edit.html:106
msgid "Enable uploading"
msgstr "启用上传"
-#: cps/templates/config_edit.html:102
+#: cps/templates/config_edit.html:110
msgid "Enable anonymous browsing"
msgstr "启用匿名浏览"
-#: cps/templates/config_edit.html:106
+#: cps/templates/config_edit.html:114
msgid "Enable public registration"
msgstr "启用注册"
-#: cps/templates/config_edit.html:110
+#: cps/templates/config_edit.html:118
msgid "Enable remote login (\"magic link\")"
msgstr "启用远程登录 (\"魔法链接\")"
-#: cps/templates/config_edit.html:115
+#: cps/templates/config_edit.html:123
msgid "Use"
msgstr ""
-#: cps/templates/config_edit.html:116
+#: cps/templates/config_edit.html:124
msgid "Obtain an API Key"
msgstr ""
-#: cps/templates/config_edit.html:120
+#: cps/templates/config_edit.html:128
msgid "Goodreads API Key"
msgstr ""
-#: cps/templates/config_edit.html:124
+#: cps/templates/config_edit.html:132
msgid "Goodreads API Secret"
msgstr ""
-#: cps/templates/config_edit.html:129
+#: cps/templates/config_edit.html:137
msgid "Default Settings for new users"
msgstr "新用户默认设置"
-#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94
+#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:94
msgid "Admin user"
msgstr "管理用户"
-#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103
+#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:103
msgid "Allow Downloads"
msgstr "允许下载"
-#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107
+#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:107
msgid "Allow Uploads"
msgstr "允许上传"
-#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111
+#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:111
msgid "Allow Edit"
msgstr "允许编辑"
-#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115
+#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:115
msgid "Allow Delete books"
msgstr "允许删除书籍"
-#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120
+#: cps/templates/config_edit.html:160 cps/templates/user_edit.html:120
msgid "Allow Changing Password"
msgstr "允许修改密码"
-#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124
+#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:124
msgid "Allow Editing Public Shelfs"
msgstr "允许编辑公共书架"
-#: cps/templates/config_edit.html:160
+#: cps/templates/config_edit.html:168
msgid "Default visiblities for new users"
msgstr ""
-#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46
+#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:46
msgid "Show random books"
msgstr "显示随机书籍"
-#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50
+#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:50
msgid "Show recent books"
msgstr ""
-#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54
+#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:54
msgid "Show sorted books"
msgstr ""
-#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58
+#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:58
msgid "Show hot books"
msgstr "显示热门书籍"
-#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62
+#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:62
msgid "Show best rated books"
msgstr "显示最高评分书籍"
-#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66
+#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:66
msgid "Show language selection"
msgstr "显示语言选择"
-#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70
+#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:70
msgid "Show series selection"
msgstr "显示丛书选择"
-#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74
+#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:74
msgid "Show category selection"
msgstr "显示分类选择"
-#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78
+#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:78
msgid "Show author selection"
msgstr "显示作者选择"
-#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82
+#: cps/templates/config_edit.html:208 cps/templates/user_edit.html:82
msgid "Show read and unread"
msgstr "显示已读和未读"
-#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86
+#: cps/templates/config_edit.html:212 cps/templates/user_edit.html:86
msgid "Show random books in detail view"
msgstr "在详情页显示随机书籍"
-#: cps/templates/config_edit.html:214 cps/templates/layout.html:77
+#: cps/templates/config_edit.html:216 cps/templates/user_edit.html:99
+msgid "Show mature content"
+msgstr ""
+
+#: cps/templates/config_edit.html:226 cps/templates/layout.html:77
#: cps/templates/login.html:4
msgid "Login"
msgstr "登录"
@@ -1015,7 +1042,7 @@ msgstr "保存设置"
msgid "Save settings and send Test E-Mail"
msgstr "保存设置并发送测试邮件"
-#: cps/templates/feed.xml:20 cps/templates/layout.html:192
+#: cps/templates/feed.xml:20 cps/templates/layout.html:200
msgid "Next"
msgstr "下一个"
@@ -1032,7 +1059,7 @@ msgstr "发现(随机书籍)"
msgid "Start"
msgstr "开始"
-#: cps/templates/index.xml:14 cps/templates/layout.html:126
+#: cps/templates/index.xml:14 cps/templates/layout.html:134
msgid "Hot Books"
msgstr "热门书籍"
@@ -1040,7 +1067,7 @@ msgstr "热门书籍"
msgid "Popular publications from this catalog based on Downloads."
msgstr "基于下载数的热门书籍"
-#: cps/templates/index.xml:20 cps/templates/layout.html:129
+#: cps/templates/index.xml:20 cps/templates/layout.html:137
msgid "Best rated Books"
msgstr "最高评分书籍"
@@ -1060,7 +1087,7 @@ msgstr "最新书籍"
msgid "Show Random Books"
msgstr "显示随机书籍"
-#: cps/templates/index.xml:52 cps/templates/layout.html:147
+#: cps/templates/index.xml:52 cps/templates/layout.html:155
msgid "Authors"
msgstr "作者"
@@ -1076,7 +1103,7 @@ msgstr "书籍按分类排序"
msgid "Books ordered by series"
msgstr "书籍按丛书排序"
-#: cps/templates/index.xml:70 cps/templates/layout.html:153
+#: cps/templates/index.xml:70 cps/templates/layout.html:161
msgid "Public Shelves"
msgstr "公开书架"
@@ -1084,7 +1111,7 @@ msgstr "公开书架"
msgid "Books organized in public shelfs, visible to everyone"
msgstr ""
-#: cps/templates/index.xml:77 cps/templates/layout.html:157
+#: cps/templates/index.xml:77 cps/templates/layout.html:165
msgid "Your Shelves"
msgstr "您的书架"
@@ -1108,64 +1135,64 @@ msgstr "注销"
msgid "Register"
msgstr "注册"
-#: cps/templates/layout.html:107
+#: cps/templates/layout.html:115
msgid "Browse"
msgstr "浏览"
-#: cps/templates/layout.html:109
+#: cps/templates/layout.html:117
msgid "Recently Added"
msgstr "最近添加"
-#: cps/templates/layout.html:114
+#: cps/templates/layout.html:122
msgid "Sorted Books"
msgstr "已排序书籍"
-#: cps/templates/layout.html:118 cps/templates/layout.html:119
-#: cps/templates/layout.html:120 cps/templates/layout.html:121
+#: cps/templates/layout.html:126 cps/templates/layout.html:127
+#: cps/templates/layout.html:128 cps/templates/layout.html:129
msgid "Sort By"
msgstr "排序"
-#: cps/templates/layout.html:118
+#: cps/templates/layout.html:126
msgid "Newest"
msgstr "最新"
-#: cps/templates/layout.html:119
+#: cps/templates/layout.html:127
msgid "Oldest"
msgstr "最旧"
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:128
msgid "Ascending"
msgstr "升序"
-#: cps/templates/layout.html:121
+#: cps/templates/layout.html:129
msgid "Descending"
msgstr "降序"
-#: cps/templates/layout.html:138
+#: cps/templates/layout.html:146
msgid "Discover"
msgstr "发现"
-#: cps/templates/layout.html:141
+#: cps/templates/layout.html:149
msgid "Categories"
msgstr "分类"
-#: cps/templates/layout.html:150 cps/templates/search_form.html:58
+#: cps/templates/layout.html:158 cps/templates/search_form.html:58
msgid "Languages"
msgstr "语言"
-#: cps/templates/layout.html:162
+#: cps/templates/layout.html:170
msgid "Create a Shelf"
msgstr "创建书架"
-#: cps/templates/layout.html:163 cps/templates/stats.html:3
+#: cps/templates/layout.html:171 cps/templates/stats.html:3
msgid "About"
msgstr "关于"
-#: cps/templates/layout.html:177
+#: cps/templates/layout.html:185
msgid "Previous"
msgstr ""
-#: cps/templates/layout.html:204
+#: cps/templates/layout.html:212
msgid "Book Details"
msgstr ""
@@ -1335,10 +1362,6 @@ msgstr "按语言显示书籍"
msgid "Show all"
msgstr "显示全部"
-#: cps/templates/user_edit.html:99
-msgid "Show mature content"
-msgstr ""
-
#: cps/templates/user_edit.html:131
msgid "Delete this user"
msgstr "删除此用户"
diff --git a/cps/ub.py b/cps/ub.py
index 324196c6..4b1ab75d 100644
--- a/cps/ub.py
+++ b/cps/ub.py
@@ -272,6 +272,8 @@ class Settings(Base):
mail_from = Column(String)
config_calibre_dir = Column(String)
config_port = Column(Integer, default=DEFAULT_PORT)
+ config_certfile = Column(String)
+ config_keyfile = Column(String)
config_calibre_web_title = Column(String, default=u'Calibre-web')
config_books_per_page = Column(Integer, default=60)
config_random_books = Column(Integer, default=4)
@@ -328,8 +330,11 @@ class Config:
def loadSettings(self):
data = session.query(Settings).first() # type: Settings
+
self.config_calibre_dir = data.config_calibre_dir
self.config_port = data.config_port
+ self.config_certfile = data.config_certfile
+ self.config_keyfile = data.config_keyfile
self.config_calibre_web_title = data.config_calibre_web_title
self.config_books_per_page = data.config_books_per_page
self.config_random_books = data.config_random_books
@@ -365,6 +370,24 @@ class Config:
def get_main_dir(self):
return self.config_main_dir
+ def get_config_certfile(self):
+ if cli.certfilepath:
+ return cli.certfilepath
+ else:
+ if cli.certfilepath is "":
+ return None
+ else:
+ return self.config_certfile
+
+ def get_config_keyfile(self):
+ if cli.keyfilepath:
+ return cli.keyfilepath
+ else:
+ if cli.certfilepath is "":
+ return None
+ else:
+ return self.config_keyfile
+
def get_config_logfile(self):
if not self.config_logfile:
return os.path.join(self.get_main_dir, "calibre-web.log")
@@ -608,6 +631,14 @@ def migrate_Database():
conn = engine.connect()
conn.execute("ALTER TABLE Settings ADD column `config_logfile` String DEFAULT ''")
session.commit()
+ try:
+ session.query(exists().where(Settings.config_certfile)).scalar()
+ session.commit()
+ except exc.OperationalError: # Database is not compatible, some rows are missing
+ conn = engine.connect()
+ conn.execute("ALTER TABLE Settings ADD column `config_certfile` String DEFAULT ''")
+ conn.execute("ALTER TABLE Settings ADD column `config_keyfile` String DEFAULT ''")
+ session.commit()
def clean_database():
diff --git a/cps/web.py b/cps/web.py
index d13ff921..93b729eb 100755
--- a/cps/web.py
+++ b/cps/web.py
@@ -2522,6 +2522,28 @@ def configuration_helper(origin):
if content.config_port != int(to_save["config_port"]):
content.config_port = int(to_save["config_port"])
reboot_required = True
+ if "config_keyfile" in to_save:
+ if content.config_keyfile != to_save["config_keyfile"]:
+ if os.path.isfile(to_save["config_keyfile"]) or to_save["config_keyfile"] is u"":
+ content.config_keyfile = to_save["config_keyfile"]
+ reboot_required = True
+ else:
+ ub.session.commit()
+ flash(_(u'Keyfile location is not valid, please enter correct path'), category="error")
+ return render_title_template("config_edit.html", content=config, origin=origin,
+ gdrive=gdrive_support,
+ goodreads=goodreads_support, title=_(u"Basic Configuration"))
+ if "config_certfile" in to_save:
+ if content.config_certfile != to_save["config_certfile"]:
+ if os.path.isfile(to_save["config_certfile"]) or to_save["config_certfile"] is u"":
+ content.config_certfile = to_save["config_certfile"]
+ reboot_required = True
+ else:
+ ub.session.commit()
+ flash(_(u'Certfile location is not valid, please enter correct path'), category="error")
+ return render_title_template("config_edit.html", content=config, origin=origin,
+ gdrive=gdrive_support,
+ goodreads=goodreads_support, title=_(u"Basic Configuration"))
if "config_calibre_web_title" in to_save:
content.config_calibre_web_title = to_save["config_calibre_web_title"]
if "config_columns_to_ignore" in to_save:
@@ -3309,11 +3331,21 @@ def start_gevent():
from gevent.wsgi import WSGIServer
global gevent_server
try:
- gevent_server = WSGIServer(('', ub.config.config_port), app)
+ if ub.config.get_config_certfile() and ub.get_config_keyfile():
+ keyfile = ub.config.get_config_certfile()
+ certfile = ub.config.get_config_keyfile()
+ else:
+ keyfile = None
+ certfile = None
+ gevent_server = WSGIServer(('', ub.config.config_port), app,
+ keyfile = keyfile,
+ certfile = certfile)
gevent_server.serve_forever()
except SocketError:
app.logger.info('Unable to listen on \'\', trying on IPv4 only...')
- gevent_server = WSGIServer(('0.0.0.0', ub.config.config_port), app)
+ gevent_server = WSGIServer(('0.0.0.0', ub.config.config_port), app,
+ keyfile = keyfile,
+ certfile = certfile)
gevent_server.serve_forever()
except:
pass
diff --git a/messages.pot b/messages.pot
index 202ddd7a..19b39ad5 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: 2018-02-13 16:39+0100\n"
+"POT-Creation-Date: 2018-03-30 21:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -71,7 +71,7 @@ msgstr ""
msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s"
msgstr ""
-#: cps/ub.py:649
+#: cps/ub.py:685
msgid "Guest"
msgstr ""
@@ -139,7 +139,7 @@ msgstr ""
msgid "Author list"
msgstr ""
-#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1877
+#: cps/web.py:1220 cps/web.py:1278 cps/web.py:1408 cps/web.py:1882
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr ""
@@ -190,272 +190,285 @@ msgstr ""
msgid "Update done"
msgstr ""
-#: cps/web.py:1741 cps/web.py:1754
+#: cps/web.py:1746 cps/web.py:1759
msgid "search"
msgstr ""
#: cps/templates/index.xml:39 cps/templates/index.xml:42
-#: cps/templates/layout.html:133 cps/web.py:1832
+#: cps/templates/layout.html:141 cps/web.py:1837
msgid "Read Books"
msgstr ""
#: cps/templates/index.xml:46 cps/templates/index.xml:49
-#: cps/templates/layout.html:135 cps/web.py:1835
+#: cps/templates/layout.html:143 cps/web.py:1840
msgid "Unread Books"
msgstr ""
-#: cps/web.py:1910 cps/web.py:1912 cps/web.py:1914 cps/web.py:1923
+#: cps/web.py:1915 cps/web.py:1917 cps/web.py:1919 cps/web.py:1928
msgid "Read a Book"
msgstr ""
-#: cps/web.py:1975 cps/web.py:2667
+#: cps/web.py:1980 cps/web.py:2697
msgid "Please fill out all fields!"
msgstr ""
-#: cps/web.py:1976 cps/web.py:1993 cps/web.py:1998 cps/web.py:2000
+#: cps/web.py:1981 cps/web.py:1998 cps/web.py:2003 cps/web.py:2005
msgid "register"
msgstr ""
-#: cps/web.py:1992
+#: cps/web.py:1997
msgid "An unknown error occured. Please try again later."
msgstr ""
-#: cps/web.py:1997
+#: cps/web.py:2002
msgid "This username or email address is already in use."
msgstr ""
-#: cps/web.py:2016 cps/web.py:2112
+#: cps/web.py:2021 cps/web.py:2117
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:2021
+#: cps/web.py:2026
msgid "Wrong Username or Password"
msgstr ""
-#: cps/web.py:2027 cps/web.py:2048
+#: cps/web.py:2032 cps/web.py:2053
msgid "login"
msgstr ""
-#: cps/web.py:2060 cps/web.py:2091
+#: cps/web.py:2065 cps/web.py:2096
msgid "Token not found"
msgstr ""
-#: cps/web.py:2068 cps/web.py:2099
+#: cps/web.py:2073 cps/web.py:2104
msgid "Token has expired"
msgstr ""
-#: cps/web.py:2076
+#: cps/web.py:2081
msgid "Success! Please return to your device"
msgstr ""
-#: cps/web.py:2126
+#: cps/web.py:2131
msgid "Please configure the SMTP mail settings first..."
msgstr ""
-#: cps/web.py:2130
+#: cps/web.py:2135
#, python-format
msgid "Book successfully send to %(kindlemail)s"
msgstr ""
-#: cps/web.py:2134
+#: cps/web.py:2139
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr ""
-#: cps/web.py:2136 cps/web.py:2753
+#: cps/web.py:2141 cps/web.py:2784
msgid "Please configure your kindle email address first..."
msgstr ""
-#: cps/web.py:2180
+#: cps/web.py:2185
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr ""
-#: cps/web.py:2218
+#: cps/web.py:2223
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr ""
-#: cps/web.py:2224
+#: cps/web.py:2229
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr ""
-#: cps/web.py:2244 cps/web.py:2268
+#: cps/web.py:2249 cps/web.py:2273
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr ""
-#: cps/web.py:2249
+#: cps/web.py:2254
#, python-format
msgid "Shelf %(title)s created"
msgstr ""
-#: cps/web.py:2251 cps/web.py:2279
+#: cps/web.py:2256 cps/web.py:2284
msgid "There was an error"
msgstr ""
-#: cps/web.py:2252 cps/web.py:2254
+#: cps/web.py:2257 cps/web.py:2259
msgid "create a shelf"
msgstr ""
-#: cps/web.py:2277
+#: cps/web.py:2282
#, python-format
msgid "Shelf %(title)s changed"
msgstr ""
-#: cps/web.py:2280 cps/web.py:2282
+#: cps/web.py:2285 cps/web.py:2287
msgid "Edit a shelf"
msgstr ""
-#: cps/web.py:2303
+#: cps/web.py:2308
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr ""
-#: cps/web.py:2325
+#: cps/web.py:2330
#, python-format
msgid "Shelf: '%(name)s'"
msgstr ""
-#: cps/web.py:2328
+#: cps/web.py:2333
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr ""
-#: cps/web.py:2359
+#: cps/web.py:2364
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr ""
-#: cps/web.py:2428
+#: cps/web.py:2433
msgid "Found an existing account for this email address."
msgstr ""
-#: cps/web.py:2430 cps/web.py:2434
+#: cps/web.py:2435 cps/web.py:2439
#, python-format
msgid "%(name)s's profile"
msgstr ""
-#: cps/web.py:2431
+#: cps/web.py:2436
msgid "Profile updated"
msgstr ""
-#: cps/web.py:2443
+#: cps/web.py:2448
msgid "Unknown"
msgstr ""
-#: cps/web.py:2456
+#: cps/web.py:2461
msgid "Admin page"
msgstr ""
-#: cps/web.py:2606
-msgid "Logfile location is not valid, please enter correct path"
+#: cps/web.py:2532
+msgid "Keyfile location is not valid, please enter correct path"
msgstr ""
-#: cps/web.py:2609 cps/web.py:2628 cps/web.py:2634 cps/web.py:2648
+#: cps/web.py:2535 cps/web.py:2546 cps/web.py:2639 cps/web.py:2658
+#: cps/web.py:2664 cps/web.py:2678
msgid "Basic Configuration"
msgstr ""
-#: cps/web.py:2621
+#: cps/web.py:2543
+msgid "Certfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2636
+msgid "Logfile location is not valid, please enter correct path"
+msgstr ""
+
+#: cps/web.py:2651
msgid "Calibre-web configuration updated"
msgstr ""
-#: cps/web.py:2632
+#: cps/web.py:2662
msgid "DB location is not valid, please enter correct path"
msgstr ""
-#: cps/templates/admin.html:34 cps/web.py:2669 cps/web.py:2723
+#: cps/templates/admin.html:34 cps/web.py:2699 cps/web.py:2754
msgid "Add new user"
msgstr ""
-#: cps/web.py:2714
+#: cps/web.py:2744
#, python-format
msgid "User '%(user)s' created"
msgstr ""
-#: cps/web.py:2718
+#: cps/web.py:2748
msgid "Found an existing account for this email address or nickname."
msgstr ""
-#: cps/web.py:2741
+#: cps/web.py:2772
msgid "Mail settings updated"
msgstr ""
-#: cps/web.py:2748
+#: cps/web.py:2779
#, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr ""
-#: cps/web.py:2751
+#: cps/web.py:2782
#, python-format
msgid "There was an error sending the Test E-Mail: %(res)s"
msgstr ""
-#: cps/web.py:2755
+#: cps/web.py:2786
msgid "E-Mail settings updated"
msgstr ""
-#: cps/web.py:2756
+#: cps/web.py:2787
msgid "Edit mail settings"
msgstr ""
-#: cps/web.py:2785
+#: cps/web.py:2816
#, python-format
msgid "User '%(nick)s' deleted"
msgstr ""
-#: cps/web.py:2893
+#: cps/web.py:2924
#, python-format
msgid "User '%(nick)s' updated"
msgstr ""
-#: cps/web.py:2896
+#: cps/web.py:2927
msgid "An unknown error occured."
msgstr ""
-#: cps/web.py:2899
+#: cps/web.py:2930
#, python-format
msgid "Edit User %(nick)s"
msgstr ""
-#: cps/web.py:2915
+#: cps/web.py:2946
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr ""
-#: cps/web.py:2930 cps/web.py:3138 cps/web.py:3143 cps/web.py:3286
+#: cps/web.py:2961 cps/web.py:3172 cps/web.py:3177 cps/web.py:3323
msgid "edit metadata"
msgstr ""
-#: cps/web.py:2940 cps/web.py:3180
+#: cps/web.py:2971 cps/web.py:3217
#, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr ""
-#: cps/web.py:2951
+#: cps/web.py:2982
#, python-format
msgid "Failed to store file %s."
msgstr ""
-#: cps/web.py:2973 cps/web.py:2977
+#: cps/web.py:3004 cps/web.py:3008
msgid "unknown"
msgstr ""
-#: cps/web.py:3186
+#: cps/web.py:3031
+msgid "Cover is not a jpg file, can't save"
+msgstr ""
+
+#: cps/web.py:3223
msgid "File to be uploaded must have an extension"
msgstr ""
-#: cps/web.py:3205
+#: cps/web.py:3242
#, python-format
msgid "Failed to create path %s (Permission denied)."
msgstr ""
-#: cps/web.py:3210
+#: cps/web.py:3247
#, python-format
msgid "Failed to store file %s (Permission denied)."
msgstr ""
-#: cps/web.py:3215
+#: cps/web.py:3252
#, python-format
msgid "Failed to delete file %s (Permission denied)."
msgstr ""
@@ -541,7 +554,7 @@ msgstr ""
msgid "Calibre DB dir"
msgstr ""
-#: cps/templates/admin.html:61 cps/templates/config_edit.html:83
+#: cps/templates/admin.html:61 cps/templates/config_edit.html:91
msgid "Log Level"
msgstr ""
@@ -549,7 +562,7 @@ msgstr ""
msgid "Port"
msgstr ""
-#: cps/templates/admin.html:63 cps/templates/config_edit.html:60
+#: cps/templates/admin.html:63 cps/templates/config_edit.html:68
msgid "Books per page"
msgstr ""
@@ -612,7 +625,7 @@ msgstr ""
#: cps/templates/admin.html:105 cps/templates/admin.html:119
#: cps/templates/book_edit.html:135 cps/templates/book_edit.html:157
-#: cps/templates/config_edit.html:211 cps/templates/email_edit.html:36
+#: cps/templates/config_edit.html:223 cps/templates/email_edit.html:36
#: cps/templates/shelf.html:60 cps/templates/shelf_edit.html:19
#: cps/templates/shelf_order.html:12 cps/templates/user_edit.html:139
msgid "Back"
@@ -660,7 +673,7 @@ msgstr ""
msgid "Tags"
msgstr ""
-#: cps/templates/book_edit.html:39 cps/templates/layout.html:144
+#: cps/templates/book_edit.html:39 cps/templates/layout.html:152
#: cps/templates/search_form.html:37
msgid "Series"
msgstr ""
@@ -674,7 +687,7 @@ msgid "Rating"
msgstr ""
#: cps/templates/book_edit.html:51
-msgid "Cover URL (jpg)"
+msgid "Cover URL (jpg, cover is downloaded and stored in database, field is afterwards empty again)"
msgstr ""
#: cps/templates/book_edit.html:56 cps/templates/detail.html:131
@@ -705,7 +718,7 @@ msgstr ""
msgid "Get metadata"
msgstr ""
-#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:209
+#: cps/templates/book_edit.html:134 cps/templates/config_edit.html:221
#: cps/templates/login.html:20 cps/templates/search_form.html:79
#: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137
msgid "Submit"
@@ -747,7 +760,7 @@ msgstr ""
msgid "Loading..."
msgstr ""
-#: cps/templates/book_edit.html:196 cps/templates/layout.html:208
+#: cps/templates/book_edit.html:196 cps/templates/layout.html:216
msgid "Close"
msgstr ""
@@ -800,144 +813,156 @@ msgstr ""
msgid "Server Port"
msgstr ""
-#: cps/templates/config_edit.html:56 cps/templates/layout.html:120
-#: cps/templates/layout.html:121 cps/templates/shelf_edit.html:7
+#: cps/templates/config_edit.html:56
+msgid "SSL certfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:60
+msgid "SSL Keyfile location (leave it empty for non-SSL Servers)"
+msgstr ""
+
+#: cps/templates/config_edit.html:64 cps/templates/layout.html:128
+#: cps/templates/layout.html:129 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr ""
-#: cps/templates/config_edit.html:64
+#: cps/templates/config_edit.html:72
msgid "No. of random books to show"
msgstr ""
-#: cps/templates/config_edit.html:68
+#: cps/templates/config_edit.html:76
msgid "Regular expression for ignoring columns"
msgstr ""
-#: cps/templates/config_edit.html:72
+#: cps/templates/config_edit.html:80
msgid "Regular expression for title sorting"
msgstr ""
-#: cps/templates/config_edit.html:76
+#: cps/templates/config_edit.html:84
msgid "Tags for Mature Content"
msgstr ""
-#: cps/templates/config_edit.html:92
+#: cps/templates/config_edit.html:100
msgid "Location and name of logfile (calibre-web.log for no entry)"
msgstr ""
-#: cps/templates/config_edit.html:98
+#: cps/templates/config_edit.html:106
msgid "Enable uploading"
msgstr ""
-#: cps/templates/config_edit.html:102
+#: cps/templates/config_edit.html:110
msgid "Enable anonymous browsing"
msgstr ""
-#: cps/templates/config_edit.html:106
+#: cps/templates/config_edit.html:114
msgid "Enable public registration"
msgstr ""
-#: cps/templates/config_edit.html:110
+#: cps/templates/config_edit.html:118
msgid "Enable remote login (\"magic link\")"
msgstr ""
-#: cps/templates/config_edit.html:115
+#: cps/templates/config_edit.html:123
msgid "Use"
msgstr ""
-#: cps/templates/config_edit.html:116
+#: cps/templates/config_edit.html:124
msgid "Obtain an API Key"
msgstr ""
-#: cps/templates/config_edit.html:120
+#: cps/templates/config_edit.html:128
msgid "Goodreads API Key"
msgstr ""
-#: cps/templates/config_edit.html:124
+#: cps/templates/config_edit.html:132
msgid "Goodreads API Secret"
msgstr ""
-#: cps/templates/config_edit.html:129
+#: cps/templates/config_edit.html:137
msgid "Default Settings for new users"
msgstr ""
-#: cps/templates/config_edit.html:132 cps/templates/user_edit.html:94
+#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:94
msgid "Admin user"
msgstr ""
-#: cps/templates/config_edit.html:136 cps/templates/user_edit.html:103
+#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:103
msgid "Allow Downloads"
msgstr ""
-#: cps/templates/config_edit.html:140 cps/templates/user_edit.html:107
+#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:107
msgid "Allow Uploads"
msgstr ""
-#: cps/templates/config_edit.html:144 cps/templates/user_edit.html:111
+#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:111
msgid "Allow Edit"
msgstr ""
-#: cps/templates/config_edit.html:148 cps/templates/user_edit.html:115
+#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:115
msgid "Allow Delete books"
msgstr ""
-#: cps/templates/config_edit.html:152 cps/templates/user_edit.html:120
+#: cps/templates/config_edit.html:160 cps/templates/user_edit.html:120
msgid "Allow Changing Password"
msgstr ""
-#: cps/templates/config_edit.html:156 cps/templates/user_edit.html:124
+#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:124
msgid "Allow Editing Public Shelfs"
msgstr ""
-#: cps/templates/config_edit.html:160
+#: cps/templates/config_edit.html:168
msgid "Default visiblities for new users"
msgstr ""
-#: cps/templates/config_edit.html:164 cps/templates/user_edit.html:46
+#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:46
msgid "Show random books"
msgstr ""
-#: cps/templates/config_edit.html:168 cps/templates/user_edit.html:50
+#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:50
msgid "Show recent books"
msgstr ""
-#: cps/templates/config_edit.html:172 cps/templates/user_edit.html:54
+#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:54
msgid "Show sorted books"
msgstr ""
-#: cps/templates/config_edit.html:176 cps/templates/user_edit.html:58
+#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:58
msgid "Show hot books"
msgstr ""
-#: cps/templates/config_edit.html:180 cps/templates/user_edit.html:62
+#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:62
msgid "Show best rated books"
msgstr ""
-#: cps/templates/config_edit.html:184 cps/templates/user_edit.html:66
+#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:66
msgid "Show language selection"
msgstr ""
-#: cps/templates/config_edit.html:188 cps/templates/user_edit.html:70
+#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:70
msgid "Show series selection"
msgstr ""
-#: cps/templates/config_edit.html:192 cps/templates/user_edit.html:74
+#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:74
msgid "Show category selection"
msgstr ""
-#: cps/templates/config_edit.html:196 cps/templates/user_edit.html:78
+#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:78
msgid "Show author selection"
msgstr ""
-#: cps/templates/config_edit.html:200 cps/templates/user_edit.html:82
+#: cps/templates/config_edit.html:208 cps/templates/user_edit.html:82
msgid "Show read and unread"
msgstr ""
-#: cps/templates/config_edit.html:204 cps/templates/user_edit.html:86
+#: cps/templates/config_edit.html:212 cps/templates/user_edit.html:86
msgid "Show random books in detail view"
msgstr ""
-#: cps/templates/config_edit.html:214 cps/templates/layout.html:77
+#: cps/templates/config_edit.html:216 cps/templates/user_edit.html:99
+msgid "Show mature content"
+msgstr ""
+
+#: cps/templates/config_edit.html:226 cps/templates/layout.html:77
#: cps/templates/login.html:4
msgid "Login"
msgstr ""
@@ -1006,7 +1031,7 @@ msgstr ""
msgid "Save settings and send Test E-Mail"
msgstr ""
-#: cps/templates/feed.xml:20 cps/templates/layout.html:192
+#: cps/templates/feed.xml:20 cps/templates/layout.html:200
msgid "Next"
msgstr ""
@@ -1023,7 +1048,7 @@ msgstr ""
msgid "Start"
msgstr ""
-#: cps/templates/index.xml:14 cps/templates/layout.html:126
+#: cps/templates/index.xml:14 cps/templates/layout.html:134
msgid "Hot Books"
msgstr ""
@@ -1031,7 +1056,7 @@ msgstr ""
msgid "Popular publications from this catalog based on Downloads."
msgstr ""
-#: cps/templates/index.xml:20 cps/templates/layout.html:129
+#: cps/templates/index.xml:20 cps/templates/layout.html:137
msgid "Best rated Books"
msgstr ""
@@ -1051,7 +1076,7 @@ msgstr ""
msgid "Show Random Books"
msgstr ""
-#: cps/templates/index.xml:52 cps/templates/layout.html:147
+#: cps/templates/index.xml:52 cps/templates/layout.html:155
msgid "Authors"
msgstr ""
@@ -1067,7 +1092,7 @@ msgstr ""
msgid "Books ordered by series"
msgstr ""
-#: cps/templates/index.xml:70 cps/templates/layout.html:153
+#: cps/templates/index.xml:70 cps/templates/layout.html:161
msgid "Public Shelves"
msgstr ""
@@ -1075,7 +1100,7 @@ msgstr ""
msgid "Books organized in public shelfs, visible to everyone"
msgstr ""
-#: cps/templates/index.xml:77 cps/templates/layout.html:157
+#: cps/templates/index.xml:77 cps/templates/layout.html:165
msgid "Your Shelves"
msgstr ""
@@ -1099,64 +1124,64 @@ msgstr ""
msgid "Register"
msgstr ""
-#: cps/templates/layout.html:107
+#: cps/templates/layout.html:115
msgid "Browse"
msgstr ""
-#: cps/templates/layout.html:109
+#: cps/templates/layout.html:117
msgid "Recently Added"
msgstr ""
-#: cps/templates/layout.html:114
+#: cps/templates/layout.html:122
msgid "Sorted Books"
msgstr ""
-#: cps/templates/layout.html:118 cps/templates/layout.html:119
-#: cps/templates/layout.html:120 cps/templates/layout.html:121
+#: cps/templates/layout.html:126 cps/templates/layout.html:127
+#: cps/templates/layout.html:128 cps/templates/layout.html:129
msgid "Sort By"
msgstr ""
-#: cps/templates/layout.html:118
+#: cps/templates/layout.html:126
msgid "Newest"
msgstr ""
-#: cps/templates/layout.html:119
+#: cps/templates/layout.html:127
msgid "Oldest"
msgstr ""
-#: cps/templates/layout.html:120
+#: cps/templates/layout.html:128
msgid "Ascending"
msgstr ""
-#: cps/templates/layout.html:121
+#: cps/templates/layout.html:129
msgid "Descending"
msgstr ""
-#: cps/templates/layout.html:138
+#: cps/templates/layout.html:146
msgid "Discover"
msgstr ""
-#: cps/templates/layout.html:141
+#: cps/templates/layout.html:149
msgid "Categories"
msgstr ""
-#: cps/templates/layout.html:150 cps/templates/search_form.html:58
+#: cps/templates/layout.html:158 cps/templates/search_form.html:58
msgid "Languages"
msgstr ""
-#: cps/templates/layout.html:162
+#: cps/templates/layout.html:170
msgid "Create a Shelf"
msgstr ""
-#: cps/templates/layout.html:163 cps/templates/stats.html:3
+#: cps/templates/layout.html:171 cps/templates/stats.html:3
msgid "About"
msgstr ""
-#: cps/templates/layout.html:177
+#: cps/templates/layout.html:185
msgid "Previous"
msgstr ""
-#: cps/templates/layout.html:204
+#: cps/templates/layout.html:212
msgid "Book Details"
msgstr ""
@@ -1326,10 +1351,6 @@ msgstr ""
msgid "Show all"
msgstr ""
-#: cps/templates/user_edit.html:99
-msgid "Show mature content"
-msgstr ""
-
#: cps/templates/user_edit.html:131
msgid "Delete this user"
msgstr ""
diff --git a/readme.md b/readme.md
index a1708f21..aa670dd8 100755
--- a/readme.md
+++ b/readme.md
@@ -155,6 +155,14 @@ Listen 443
```
+## (Optional) SSL Configuration
+
+For configuration of calibre-web as SSL Server go to the Config page in the Admin section. Enter the certfile- and keyfile-location, optionally change port to 443 and press submit.
+Afterwards the server can only be accessed via SSL. In case of a misconfiguration (wrong/invalid files) both files can be overridden via command line options
+-c [certfile location] -k [keyfile location]
+By using "" as file locations the server runs as non SSL server again. The correct file path can than be entered on the Config page. After the next restart without command line options the changed file paths are applied.
+
+
## Start Calibre-Web as service under Linux
Create a file "cps.service" as root in the folder /etc/systemd/system with the following content:
@@ -183,5 +191,6 @@ Starting the script with `-h` lists all supported command line options
Currently supported are 2 options, which are both useful for running multiple instances of Calibre-Web
`"-p path"` allows to specify the location of the settings database
-`"-p path"` allows to specify the location of the google-drive database
-
+`"-g path"` allows to specify the location of the google-drive database
+`"-c path"` allows to specify the location of SSL certfile, works only in combination with keyfile
+`"-k path"` allows to specify the location of SSL keyfile, works only in combination with certfile