\n"
"Language: pl\n"
@@ -23,185 +23,194 @@ msgstr ""
msgid "Statistics"
msgstr "Statystyki"
-#: cps/admin.py:96
+#: cps/admin.py:97
msgid "Server restarted, please reload page"
msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę"
-#: cps/admin.py:99
+#: cps/admin.py:100
msgid "Performing shutdown of server, please close window"
msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno"
-#: cps/admin.py:119 cps/updater.py:498
+#: cps/admin.py:120 cps/updater.py:498
msgid "Unknown"
msgstr ""
-#: cps/admin.py:138
+#: cps/admin.py:139
msgid "Admin page"
msgstr "Portal administracyjny"
-#: cps/admin.py:203 cps/admin.py:474
+#: cps/admin.py:206 cps/admin.py:484
msgid "Calibre-Web configuration updated"
msgstr "Konfiguracja Calibre-Web została zaktualizowana"
-#: cps/admin.py:217 cps/templates/admin.html:100
+#: cps/admin.py:220 cps/templates/admin.html:100
msgid "UI Configuration"
msgstr ""
-#: cps/admin.py:290
+#: cps/admin.py:293
msgid "Import of optional Google Drive requirements missing"
msgstr ""
-#: cps/admin.py:293
+#: cps/admin.py:296
msgid "client_secrets.json is missing or not readable"
msgstr ""
-#: cps/admin.py:298 cps/admin.py:327
+#: cps/admin.py:301 cps/admin.py:330
msgid "client_secrets.json is not configured for web application"
msgstr ""
-#: cps/admin.py:330 cps/admin.py:356 cps/admin.py:368 cps/admin.py:393
-#: cps/admin.py:451 cps/admin.py:464 cps/admin.py:482 cps/admin.py:489
-#: cps/admin.py:504 cps/templates/admin.html:99
+#: cps/admin.py:333 cps/admin.py:359 cps/admin.py:371 cps/admin.py:396
+#: cps/admin.py:424 cps/admin.py:438 cps/admin.py:461 cps/admin.py:474
+#: cps/admin.py:492 cps/admin.py:499 cps/admin.py:514
+#: cps/templates/admin.html:99
msgid "Basic Configuration"
msgstr "Podstawowa konfiguracja"
-#: cps/admin.py:353
+#: cps/admin.py:356
msgid "Keyfile location is not valid, please enter correct path"
msgstr ""
-#: cps/admin.py:365
+#: cps/admin.py:368
msgid "Certfile location is not valid, please enter correct path"
msgstr ""
-#: cps/admin.py:390
+#: cps/admin.py:393
msgid "Please enter a LDAP provider and a DN"
msgstr ""
-#: cps/admin.py:448
+#: cps/admin.py:421
+msgid "Please enter Github oauth credentials"
+msgstr ""
+
+#: cps/admin.py:435
+msgid "Please enter Google oauth credentials"
+msgstr ""
+
+#: cps/admin.py:458
msgid "Logfile location is not valid, please enter correct path"
msgstr ""
-#: cps/admin.py:486
+#: cps/admin.py:496
msgid "DB location is not valid, please enter correct path"
msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę"
-#: cps/admin.py:546 cps/web.py:1303
+#: cps/admin.py:556 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Proszę wypełnić wszystkie pola!"
-#: cps/admin.py:548 cps/admin.py:554 cps/admin.py:570
+#: cps/admin.py:558 cps/admin.py:564 cps/admin.py:580
#: cps/templates/admin.html:33
msgid "Add new user"
msgstr "Dodaj nowego użytkownika"
-#: cps/admin.py:552 cps/web.py:1528
+#: cps/admin.py:562 cps/web.py:1261
msgid "E-mail is not from valid domain"
msgstr ""
-#: cps/admin.py:560
+#: cps/admin.py:570
#, python-format
msgid "User '%(user)s' created"
msgstr "Użytkownik '%(user)s' został utworzony"
-#: cps/admin.py:564
+#: cps/admin.py:574
msgid "Found an existing account for this e-mail address or nickname."
msgstr ""
-#: cps/admin.py:595
+#: cps/admin.py:605
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr ""
-#: cps/admin.py:598
+#: cps/admin.py:608
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr ""
-#: cps/admin.py:600 cps/web.py:1495
+#: cps/admin.py:610 cps/web.py:1039
msgid "Please configure your kindle e-mail address first..."
msgstr ""
-#: cps/admin.py:602
+#: cps/admin.py:612
msgid "E-mail server settings updated"
msgstr ""
-#: cps/admin.py:603
+#: cps/admin.py:613
msgid "Edit e-mail server settings"
msgstr ""
-#: cps/admin.py:628
+#: cps/admin.py:638
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Użytkownik '%(nick)s' został usunięty"
-#: cps/admin.py:694
+#: cps/admin.py:704
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Użytkownik '%(nick)s' został zaktualizowany"
-#: cps/admin.py:697
+#: cps/admin.py:707
msgid "An unknown error occured."
msgstr "Wystąpił nieznany błąd."
-#: cps/admin.py:700
+#: cps/admin.py:710
#, python-format
msgid "Edit User %(nick)s"
msgstr "Edytuj użytkownika %(nick)s"
-#: cps/admin.py:716
+#: cps/admin.py:726
#, python-format
msgid "Password for user %(user)s reset"
msgstr ""
-#: cps/admin.py:719 cps/web.py:1328
+#: cps/admin.py:729 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr ""
-#: cps/admin.py:738
+#: cps/admin.py:748
msgid "Requesting update package"
msgstr "Żądanie o pakiet aktualizacji"
-#: cps/admin.py:739
+#: cps/admin.py:749
msgid "Downloading update package"
msgstr "Pobieranie pakietu aktualizacji"
-#: cps/admin.py:740
+#: cps/admin.py:750
msgid "Unzipping update package"
msgstr "Rozpakowywanie pakietu aktualizacji"
-#: cps/admin.py:741
+#: cps/admin.py:751
msgid "Replacing files"
msgstr ""
-#: cps/admin.py:742
+#: cps/admin.py:752
msgid "Database connections are closed"
msgstr "Połączenia z bazą danych zostały zakończone"
-#: cps/admin.py:743
+#: cps/admin.py:753
msgid "Stopping server"
msgstr ""
-#: cps/admin.py:744
+#: cps/admin.py:754
msgid "Update finished, please press okay and reload page"
msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę"
-#: cps/admin.py:745 cps/admin.py:746 cps/admin.py:747 cps/admin.py:748
+#: cps/admin.py:755 cps/admin.py:756 cps/admin.py:757 cps/admin.py:758
msgid "Update failed:"
msgstr ""
-#: cps/admin.py:745 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
+#: cps/admin.py:755 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
msgid "HTTP Error"
msgstr ""
-#: cps/admin.py:746 cps/updater.py:277 cps/updater.py:513
+#: cps/admin.py:756 cps/updater.py:277 cps/updater.py:513
msgid "Connection error"
msgstr ""
-#: cps/admin.py:747 cps/updater.py:279 cps/updater.py:515
+#: cps/admin.py:757 cps/updater.py:279 cps/updater.py:515
msgid "Timeout while establishing connection"
msgstr ""
-#: cps/admin.py:748 cps/updater.py:281 cps/updater.py:517
+#: cps/admin.py:758 cps/updater.py:281 cps/updater.py:517
msgid "General error"
msgstr ""
@@ -218,98 +227,98 @@ msgstr ""
msgid "not configured"
msgstr ""
-#: cps/editbooks.py:219 cps/editbooks.py:425
+#: cps/editbooks.py:218 cps/editbooks.py:410
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr ""
-#: cps/editbooks.py:247
+#: cps/editbooks.py:246
msgid "edit metadata"
msgstr "edytuj metadane"
-#: cps/editbooks.py:340 cps/editbooks.py:587
+#: cps/editbooks.py:325 cps/editbooks.py:572
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Rozszerzenie pliku '%(ext)s' nie jest dozwolone do przesłania na ten serwer"
-#: cps/editbooks.py:344 cps/editbooks.py:591
+#: cps/editbooks.py:329 cps/editbooks.py:576
msgid "File to be uploaded must have an extension"
msgstr "Plik do przesłania musi mieć rozszerzenie"
-#: cps/editbooks.py:356 cps/editbooks.py:611
+#: cps/editbooks.py:341 cps/editbooks.py:596
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Nie udało się utworzyć łącza %(path)s (Odmowa dostępu)."
-#: cps/editbooks.py:361
+#: cps/editbooks.py:346
#, python-format
msgid "Failed to store file %(file)s."
msgstr ""
-#: cps/editbooks.py:378
+#: cps/editbooks.py:363
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr ""
-#: cps/editbooks.py:396
+#: cps/editbooks.py:381
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:404
-#, python-format
-msgid "Failed to store cover-file %(cover)s."
+#: cps/editbooks.py:389
+msgid "Cover-file is not a valid image file"
msgstr ""
-#: cps/editbooks.py:407
-msgid "Cover-file is not a valid image file"
+#: cps/editbooks.py:392
+#, python-format
+msgid "Failed to store cover-file %(cover)s."
msgstr ""
-#: cps/editbooks.py:437 cps/editbooks.py:446
+#: cps/editbooks.py:422 cps/editbooks.py:431
msgid "unknown"
msgstr ""
-#: cps/editbooks.py:478
+#: cps/editbooks.py:463
msgid "Cover is not a jpg file, can't save"
msgstr ""
-#: cps/editbooks.py:526
+#: cps/editbooks.py:511
#, python-format
msgid "%(langname)s is not a valid language"
msgstr ""
-#: cps/editbooks.py:557
+#: cps/editbooks.py:542
msgid "Metadata successfully updated"
msgstr ""
-#: cps/editbooks.py:566
+#: cps/editbooks.py:551
msgid "Error editing book, please check logfile for details"
msgstr ""
-#: cps/editbooks.py:616
+#: cps/editbooks.py:601
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr "Nie można przechowywać pliku %(file)s (Odmowa dostępu)."
-#: cps/editbooks.py:621
+#: cps/editbooks.py:606
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr "Nie udało się usunąć pliku %(file)s (Odmowa dostępu)."
-#: cps/editbooks.py:704
+#: cps/editbooks.py:689
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:733
+#: cps/editbooks.py:718
msgid "Source or destination format for conversion missing"
msgstr ""
-#: cps/editbooks.py:743
+#: cps/editbooks.py:728
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr ""
-#: cps/editbooks.py:747
+#: cps/editbooks.py:732
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr ""
@@ -322,133 +331,133 @@ msgstr ""
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr ""
-#: cps/helper.py:66
+#: cps/helper.py:84
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr ""
-#: cps/helper.py:78
+#: cps/helper.py:96
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr ""
-#: cps/helper.py:85 cps/helper.py:193 cps/templates/detail.html:45
+#: cps/helper.py:103 cps/helper.py:211 cps/templates/detail.html:45
#: cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr "Wyślij do Kindle"
-#: cps/helper.py:86 cps/helper.py:104 cps/helper.py:195
+#: cps/helper.py:104 cps/helper.py:122 cps/helper.py:213
msgid "This e-mail has been sent via Calibre-Web."
msgstr ""
-#: cps/helper.py:97
+#: cps/helper.py:115
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr ""
-#: cps/helper.py:102
+#: cps/helper.py:120
msgid "Calibre-Web test e-mail"
msgstr ""
-#: cps/helper.py:103
+#: cps/helper.py:121
msgid "Test e-mail"
msgstr ""
-#: cps/helper.py:119
+#: cps/helper.py:137
msgid "Get Started with Calibre-Web"
msgstr ""
-#: cps/helper.py:120
+#: cps/helper.py:138
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr ""
-#: cps/helper.py:133 cps/helper.py:135 cps/helper.py:137 cps/helper.py:139
-#: cps/helper.py:145 cps/helper.py:147 cps/helper.py:149 cps/helper.py:151
+#: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
+#: cps/helper.py:163 cps/helper.py:165 cps/helper.py:167 cps/helper.py:169
#, python-format
msgid "Send %(format)s to Kindle"
msgstr ""
-#: cps/helper.py:155 cps/helper.py:159
+#: cps/helper.py:173 cps/helper.py:177
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr ""
-#: cps/helper.py:194
+#: cps/helper.py:212
#, python-format
msgid "E-mail: %(book)s"
msgstr ""
-#: cps/helper.py:197
+#: cps/helper.py:215
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr ""
-#: cps/helper.py:305
+#: cps/helper.py:323
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:315
+#: cps/helper.py:333
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:329
+#: cps/helper.py:347
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:355 cps/helper.py:365 cps/helper.py:373
+#: cps/helper.py:373 cps/helper.py:383 cps/helper.py:391
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:394
+#: cps/helper.py:412
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:502
+#: cps/helper.py:520
msgid "Error excecuting UnRar"
msgstr ""
-#: cps/helper.py:504
+#: cps/helper.py:522
msgid "Unrar binary file not found"
msgstr ""
-#: cps/helper.py:535
+#: cps/helper.py:553
msgid "Waiting"
msgstr ""
-#: cps/helper.py:537
+#: cps/helper.py:555
msgid "Failed"
msgstr ""
-#: cps/helper.py:539
+#: cps/helper.py:557
msgid "Started"
msgstr ""
-#: cps/helper.py:541
+#: cps/helper.py:559
msgid "Finished"
msgstr ""
-#: cps/helper.py:543
+#: cps/helper.py:561
msgid "Unknown Status"
msgstr ""
-#: cps/helper.py:548
+#: cps/helper.py:566
msgid "E-mail: "
msgstr ""
-#: cps/helper.py:550 cps/helper.py:554
+#: cps/helper.py:568 cps/helper.py:572
msgid "Convert: "
msgstr ""
-#: cps/helper.py:552
+#: cps/helper.py:570
msgid "Upload: "
msgstr ""
-#: cps/helper.py:556
+#: cps/helper.py:574
msgid "Unknown Task: "
msgstr ""
@@ -473,30 +482,26 @@ msgstr ""
msgid "Failed to fetch user info from Google."
msgstr ""
-#: cps/oauth_bb.py:229
-msgid "Public registration is not enabled"
-msgstr ""
-
-#: cps/oauth_bb.py:264
+#: cps/oauth_bb.py:265
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr ""
-#: cps/oauth_bb.py:268
+#: cps/oauth_bb.py:269
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr ""
-#: cps/oauth_bb.py:271
+#: cps/oauth_bb.py:272
#, python-format
msgid "Not linked to %(oauth)s."
msgstr ""
-#: cps/oauth_bb.py:299
+#: cps/oauth_bb.py:300
msgid "GitHub Oauth error, please retry later."
msgstr ""
-#: cps/oauth_bb.py:318
+#: cps/oauth_bb.py:319
msgid "Google Oauth error, please retry later."
msgstr ""
@@ -589,119 +594,127 @@ msgstr "Edytuj półkę"
msgid "successfully deleted shelf %(name)s"
msgstr "pomyślnie usunięto półkę %(name)s"
-#: cps/shelf.py:286 cps/shelf.py:316
+#: cps/shelf.py:289
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Półka: '%(name)s'"
-#: cps/shelf.py:289 cps/shelf.py:319
+#: cps/shelf.py:292
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr ""
-#: cps/shelf.py:349
+#: cps/shelf.py:324
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Zmieniono kolejność półki: '%(name)s'"
-#: cps/ub.py:106
+#: cps/ub.py:107
msgid "Recently Added"
msgstr ""
-#: cps/ub.py:108
+#: cps/ub.py:109
msgid "Show recent books"
msgstr ""
-#: cps/templates/index.xml:17 cps/ub.py:109
+#: cps/templates/index.xml:17 cps/ub.py:110
msgid "Hot Books"
msgstr "Najpopularniejsze książki"
-#: cps/ub.py:110
+#: cps/ub.py:111
msgid "Show hot books"
msgstr "Pokaż najpopularniejsze książki"
-#: cps/templates/index.xml:24 cps/ub.py:113
+#: cps/templates/index.xml:24 cps/ub.py:114
msgid "Best rated Books"
msgstr "Najlepiej ocenione książki"
-#: cps/ub.py:115
+#: cps/ub.py:116
msgid "Show best rated books"
msgstr "Pokaż najlepiej ocenione książki"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:116
-#: cps/web.py:1193
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:117
+#: cps/web.py:975
msgid "Read Books"
msgstr "Przeczytane książki"
-#: cps/ub.py:118
+#: cps/ub.py:119
msgid "Show read and unread"
msgstr "Pokaż przeczytane i nieprzeczytane"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:120
-#: cps/web.py:1196
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:121
+#: cps/web.py:979
msgid "Unread Books"
msgstr "Nieprzeczytane książki"
-#: cps/ub.py:122
+#: cps/ub.py:123
msgid "Show unread"
msgstr ""
-#: cps/ub.py:123
+#: cps/ub.py:124
msgid "Discover"
msgstr "Odkrywaj"
-#: cps/ub.py:125
+#: cps/ub.py:126
msgid "Show random books"
msgstr "Pokaż losowe książki"
-#: cps/ub.py:126
+#: cps/ub.py:127
msgid "Categories"
msgstr "Kategorie"
-#: cps/ub.py:128
+#: cps/ub.py:129
msgid "Show category selection"
msgstr "Pokaż wybór kategorii"
#: cps/templates/book_edit.html:75 cps/templates/search_form.html:53
-#: cps/ub.py:129
+#: cps/ub.py:130
msgid "Series"
msgstr "Seria"
-#: cps/ub.py:131
+#: cps/ub.py:132
msgid "Show series selection"
msgstr "Pokaż wybór serii"
-#: cps/templates/index.xml:61 cps/ub.py:132
+#: cps/templates/index.xml:61 cps/ub.py:133
msgid "Authors"
msgstr "Autorzy"
-#: cps/ub.py:134
+#: cps/ub.py:135
msgid "Show author selection"
msgstr "Pokaż wybór autora"
-#: cps/templates/index.xml:68 cps/ub.py:136
+#: cps/templates/index.xml:68 cps/ub.py:137
msgid "Publishers"
msgstr ""
-#: cps/ub.py:138
+#: cps/ub.py:139
msgid "Show publisher selection"
msgstr ""
-#: cps/templates/search_form.html:74 cps/ub.py:139
+#: cps/templates/search_form.html:74 cps/ub.py:140
msgid "Languages"
msgstr "Języki"
-#: cps/ub.py:142
+#: cps/ub.py:143
msgid "Show language selection"
msgstr "Pokaż wybór języka"
-#: cps/ub.py:143
+#: cps/ub.py:144
msgid "Ratings"
msgstr ""
-#: cps/ub.py:145
+#: cps/ub.py:146
msgid "Show ratings selection"
msgstr ""
+#: cps/ub.py:147
+msgid "File formats"
+msgstr ""
+
+#: cps/ub.py:149
+msgid "Show file formats selection"
+msgstr ""
+
#: cps/updater.py:255 cps/updater.py:417 cps/updater.py:430
msgid "Unexpected data while reading update information"
msgstr ""
@@ -727,196 +740,193 @@ msgstr ""
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
-#: cps/web.py:497
+#: cps/web.py:464
msgid "Recently Added Books"
msgstr ""
-#: cps/web.py:506
-msgid "Newest Books"
-msgstr ""
-
-#: cps/web.py:515
-msgid "Oldest Books"
-msgstr ""
+#: cps/web.py:491
+msgid "Best rated books"
+msgstr "Najlepiej oceniane książki"
-#: cps/web.py:524
-msgid "Books (A-Z)"
-msgstr ""
+#: cps/templates/index.xml:38 cps/web.py:499
+msgid "Random Books"
+msgstr "Losowe książki"
-#: cps/web.py:533
-msgid "Books (Z-A)"
+#: cps/web.py:513
+msgid "Books"
msgstr ""
-#: cps/web.py:562
+#: cps/web.py:540
msgid "Hot Books (most downloaded)"
msgstr "Najpopularniejsze książki (najczęściej pobierane)"
-#: cps/web.py:575
-msgid "Best rated books"
-msgstr "Najlepiej oceniane książki"
-
-#: cps/templates/index.xml:38 cps/web.py:588
-msgid "Random Books"
-msgstr "Losowe książki"
-
-#: cps/web.py:618 cps/web.py:925 cps/web.py:1206
+#: cps/web.py:568 cps/web.py:1306 cps/web.py:1409
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:"
-#: cps/web.py:650
+#: cps/web.py:599
msgid "Publisher list"
msgstr ""
-#: cps/web.py:666
+#: cps/web.py:614
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
-#: cps/templates/index.xml:82 cps/web.py:704
+#: cps/templates/index.xml:82 cps/web.py:630
msgid "Series list"
msgstr "Lista serii"
-#: cps/web.py:718
+#: cps/web.py:644
#, python-format
msgid "Series: %(serie)s"
msgstr "Seria: %(serie)s"
-#: cps/web.py:734
+#: cps/web.py:658
msgid "Ratings list"
msgstr ""
-#: cps/web.py:748
+#: cps/web.py:672
#, python-format
-msgid "Ratings: %(serie)s"
+msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:776
+#: cps/web.py:685
+msgid "File formats list"
+msgstr ""
+
+#: cps/web.py:699
+#, python-format
+msgid "File format: %(format)s"
+msgstr ""
+
+#: cps/web.py:727
msgid "Available languages"
msgstr "Dostępne języki"
-#: cps/web.py:796
+#: cps/web.py:747
#, python-format
msgid "Language: %(name)s"
msgstr "Język: %(name)s"
-#: cps/templates/index.xml:75 cps/web.py:810
+#: cps/templates/index.xml:75 cps/web.py:761
msgid "Category list"
msgstr "Lista kategorii"
-#: cps/web.py:825
+#: cps/web.py:776
#, python-format
msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s"
-#: cps/templates/layout.html:73 cps/web.py:957
+#: cps/templates/layout.html:73 cps/web.py:787
msgid "Tasks"
msgstr ""
-#: cps/web.py:1028
+#: cps/web.py:851
msgid "Published after "
msgstr ""
-#: cps/web.py:1035
+#: cps/web.py:858
msgid "Published before "
msgstr ""
-#: cps/web.py:1049
+#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr ""
-#: cps/web.py:1051
+#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr ""
-#: cps/web.py:1112 cps/web.py:1121
+#: cps/web.py:935 cps/web.py:944
msgid "search"
msgstr "szukaj"
-#: cps/web.py:1216 cps/web.py:1218 cps/web.py:1220 cps/web.py:1224
-#: cps/web.py:1228 cps/web.py:1232 cps/web.py:1244
-msgid "Read a Book"
-msgstr "Czytaj książkę"
+#: cps/web.py:1028
+msgid "Please configure the SMTP mail settings first..."
+msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
-#: cps/web.py:1304 cps/web.py:1329 cps/web.py:1334 cps/web.py:1339
-#: cps/web.py:1343
+#: cps/web.py:1033
+#, python-format
+msgid "Book successfully queued for sending to %(kindlemail)s"
+msgstr ""
+
+#: cps/web.py:1037
+#, 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:1056 cps/web.py:1081 cps/web.py:1086 cps/web.py:1091
+#: cps/web.py:1095
msgid "register"
msgstr "rejestracja"
-#: cps/web.py:1331
+#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr ""
-#: cps/web.py:1335
+#: cps/web.py:1087
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
-#: cps/web.py:1338
+#: cps/web.py:1090
msgid "This username or e-mail address is already in use."
msgstr ""
-#: cps/web.py:1361 cps/web.py:1373
+#: cps/web.py:1113 cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1366 cps/web.py:1378
+#: cps/web.py:1118 cps/web.py:1130
msgid "Wrong Username or Password"
msgstr "Błędna nazwa użytkownika lub hasło"
-#: cps/web.py:1369
+#: cps/web.py:1121
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
-#: cps/web.py:1384 cps/web.py:1406
+#: cps/web.py:1136 cps/web.py:1158
msgid "login"
msgstr "logowanie"
-#: cps/web.py:1418 cps/web.py:1449
+#: cps/web.py:1170 cps/web.py:1201
msgid "Token not found"
msgstr ""
-#: cps/web.py:1426 cps/web.py:1457
+#: cps/web.py:1178 cps/web.py:1209
msgid "Token has expired"
msgstr ""
-#: cps/web.py:1434
+#: cps/web.py:1186
msgid "Success! Please return to your device"
msgstr ""
-#: cps/web.py:1470
+#: cps/web.py:1222
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Zalogowałeś się jako: '%(nickname)s'"
-#: cps/web.py:1484
-msgid "Please configure the SMTP mail settings first..."
-msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
-
-#: cps/web.py:1489
-#, python-format
-msgid "Book successfully queued for sending to %(kindlemail)s"
-msgstr ""
-
-#: cps/web.py:1493
-#, 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:1530 cps/web.py:1555 cps/web.py:1559
+#: cps/web.py:1263 cps/web.py:1290 cps/web.py:1294
#, python-format
msgid "%(name)s's profile"
msgstr "Profil użytkownika %(name)s"
-#: cps/web.py:1553
+#: cps/web.py:1287
msgid "Found an existing account for this e-mail address."
msgstr ""
-#: cps/web.py:1557
+#: cps/web.py:1292
msgid "Profile updated"
msgstr "Zaktualizowano profil"
+#: cps/web.py:1316 cps/web.py:1318 cps/web.py:1320 cps/web.py:1324
+#: cps/web.py:1328 cps/web.py:1332 cps/web.py:1344
+msgid "Read a Book"
+msgstr "Czytaj książkę"
+
#: cps/worker.py:308
#, python-format
msgid "Ebook-converter failed: %(error)s"
@@ -1084,7 +1094,7 @@ msgstr "OK"
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:77
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
-#: cps/templates/user_edit.html:127
+#: cps/templates/user_edit.html:128
msgid "Back"
msgstr "Wróć"
@@ -1104,14 +1114,19 @@ msgstr ""
msgid "In Library"
msgstr ""
-#: cps/templates/author.html:50 cps/templates/author.html:97
-#: cps/templates/discover.html:28 cps/templates/index.html:30
-#: cps/templates/index.html:97 cps/templates/search.html:55
+#: cps/templates/author.html:34 cps/templates/list.html:9
+#: cps/templates/search.html:41
+msgid "All"
+msgstr ""
+
+#: cps/templates/author.html:62 cps/templates/author.html:109
+#: cps/templates/discover.html:27 cps/templates/index.html:30
+#: cps/templates/index.html:97 cps/templates/search.html:67
#: cps/templates/shelf.html:40
msgid "reduce"
msgstr ""
-#: cps/templates/author.html:81
+#: cps/templates/author.html:93
msgid "More by"
msgstr ""
@@ -1219,7 +1234,7 @@ msgstr "Uzyskaj metadane"
#: cps/templates/book_edit.html:177 cps/templates/config_edit.html:279
#: cps/templates/config_view_edit.html:140 cps/templates/login.html:20
#: cps/templates/search_form.html:150 cps/templates/shelf_edit.html:17
-#: cps/templates/user_edit.html:125
+#: cps/templates/user_edit.html:126
msgid "Submit"
msgstr "Wyślij"
@@ -1255,8 +1270,8 @@ msgstr "Kliknij okładkę, aby załadować metadane do formularza"
msgid "Loading..."
msgstr "Ładowanie..."
-#: cps/templates/book_edit.html:239 cps/templates/layout.html:199
-#: cps/templates/layout.html:231
+#: cps/templates/book_edit.html:239 cps/templates/layout.html:187
+#: cps/templates/layout.html:219
msgid "Close"
msgstr "Zamknij"
@@ -1486,8 +1501,7 @@ msgstr "Zaloguj się"
msgid "View Configuration"
msgstr ""
-#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:132
-#: cps/templates/layout.html:133 cps/templates/shelf_edit.html:7
+#: cps/templates/config_view_edit.html:19 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "Tytuł"
@@ -1531,31 +1545,31 @@ msgstr ""
msgid "Default settings for new users"
msgstr "Domyślne ustawienia dla nowych użytkowników"
-#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:82
+#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Użytkownik z uprawnieniami administratora"
-#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:91
+#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:92
msgid "Allow Downloads"
msgstr "Zezwalaj na pobieranie"
-#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:95
+#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:96
msgid "Allow Uploads"
msgstr "Zezwalaj na wysyłanie"
-#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:99
+#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:100
msgid "Allow Edit"
msgstr "Zezwalaj na edycję"
-#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:103
+#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:104
msgid "Allow Delete books"
msgstr ""
-#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:108
+#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:109
msgid "Allow Changing Password"
msgstr "Zezwalaj na zmianę hasła"
-#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:112
+#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:113
msgid "Allow Editing Public Shelfs"
msgstr ""
@@ -1563,11 +1577,11 @@ msgstr ""
msgid "Default visibilities for new users"
msgstr ""
-#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:74
+#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "Pokaz losowe książki w widoku szczegółowym"
-#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:87
+#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:88
msgid "Show mature content"
msgstr ""
@@ -1671,7 +1685,7 @@ msgstr ""
msgid "Do you really want to delete this domain rule?"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:183
+#: cps/templates/feed.xml:21 cps/templates/layout.html:171
msgid "Next"
msgstr "Następne"
@@ -1688,8 +1702,8 @@ msgstr ""
msgid "Discover (Random Books)"
msgstr "Odkrywaj (losowe książki)"
-#: cps/templates/index.html:69 cps/templates/list.html:8
-msgid "All"
+#: cps/templates/index.html:69
+msgid "Group by series"
msgstr ""
#: cps/templates/index.xml:6
@@ -1732,7 +1746,7 @@ msgstr "Książki sortowane według kategorii"
msgid "Books ordered by series"
msgstr "Książki sortowane według serii"
-#: cps/templates/index.xml:89 cps/templates/layout.html:144
+#: cps/templates/index.xml:89 cps/templates/layout.html:132
msgid "Public Shelves"
msgstr "Publiczne półki"
@@ -1740,7 +1754,7 @@ msgstr "Publiczne półki"
msgid "Books organized in public shelfs, visible to everyone"
msgstr ""
-#: cps/templates/index.xml:97 cps/templates/layout.html:148
+#: cps/templates/index.xml:97 cps/templates/layout.html:136
msgid "Your Shelves"
msgstr "Twoje półki"
@@ -1777,7 +1791,7 @@ msgstr "Wyloguj się"
msgid "Register"
msgstr "Zarejestruj się"
-#: cps/templates/layout.html:111 cps/templates/layout.html:230
+#: cps/templates/layout.html:111 cps/templates/layout.html:218
msgid "Uploading..."
msgstr ""
@@ -1789,52 +1803,27 @@ msgstr ""
msgid "Browse"
msgstr "Przeglądaj"
-#: cps/templates/layout.html:126
-msgid "Sorted Books"
-msgstr ""
-
-#: cps/templates/layout.html:130 cps/templates/layout.html:131
-#: cps/templates/layout.html:132 cps/templates/layout.html:133
-msgid "Sort By"
-msgstr ""
-
-#: cps/templates/layout.html:130
-msgid "Newest"
-msgstr ""
-
-#: cps/templates/layout.html:131
-msgid "Oldest"
-msgstr ""
-
-#: cps/templates/layout.html:132
-msgid "Ascending"
-msgstr ""
-
-#: cps/templates/layout.html:133
-msgid "Descending"
-msgstr ""
-
-#: cps/templates/layout.html:153
+#: cps/templates/layout.html:141
msgid "Create a Shelf"
msgstr "Utwórz półkę"
-#: cps/templates/layout.html:154 cps/templates/stats.html:3
+#: cps/templates/layout.html:142 cps/templates/stats.html:3
msgid "About"
msgstr "O programie"
-#: cps/templates/layout.html:168
+#: cps/templates/layout.html:156
msgid "Previous"
msgstr ""
-#: cps/templates/layout.html:195
+#: cps/templates/layout.html:183
msgid "Book Details"
msgstr ""
-#: cps/templates/layout.html:229
+#: cps/templates/layout.html:217
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:232
+#: cps/templates/layout.html:220
msgid "Error"
msgstr ""
@@ -2133,27 +2122,31 @@ msgstr ""
msgid "Kindle E-Mail"
msgstr "Adres e-mail Kindle"
-#: cps/templates/user_edit.html:39
+#: cps/templates/user_edit.html:40
msgid "Show books with language"
msgstr "Pokaż książki w języku"
-#: cps/templates/user_edit.html:41
+#: cps/templates/user_edit.html:42
msgid "Show all"
msgstr "Pokaż wszystko"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:52
msgid "OAuth Settings"
msgstr ""
+#: cps/templates/user_edit.html:54
+msgid "Link"
+msgstr ""
+
#: cps/templates/user_edit.html:56
msgid "Unlink"
msgstr ""
-#: cps/templates/user_edit.html:119
+#: cps/templates/user_edit.html:120
msgid "Delete this user"
msgstr "Usuń tego użytkownika"
-#: cps/templates/user_edit.html:134
+#: cps/templates/user_edit.html:135
msgid "Recent Downloads"
msgstr "Ostatnio pobierane"
@@ -3417,3 +3410,39 @@ msgstr "Ostatnio pobierane"
#~ msgid "Show sorted books"
#~ msgstr ""
+#~ msgid "Public registration is not enabled"
+#~ msgstr ""
+
+#~ msgid "Newest Books"
+#~ msgstr ""
+
+#~ msgid "Oldest Books"
+#~ msgstr ""
+
+#~ msgid "Books (A-Z)"
+#~ msgstr ""
+
+#~ msgid "Books (Z-A)"
+#~ msgstr ""
+
+#~ msgid "Ratings: %(serie)s"
+#~ msgstr ""
+
+#~ msgid "Sorted Books"
+#~ msgstr ""
+
+#~ msgid "Sort By"
+#~ msgstr ""
+
+#~ msgid "Newest"
+#~ msgstr ""
+
+#~ msgid "Oldest"
+#~ msgstr ""
+
+#~ msgid "Ascending"
+#~ msgstr ""
+
+#~ msgid "Descending"
+#~ msgstr ""
+
diff --git a/cps/translations/ru/LC_MESSAGES/messages.mo b/cps/translations/ru/LC_MESSAGES/messages.mo
index 3860f5cb..0940adfb 100644
Binary files a/cps/translations/ru/LC_MESSAGES/messages.mo and b/cps/translations/ru/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po
index 0262e402..38be077f 100644
--- a/cps/translations/ru/LC_MESSAGES/messages.po
+++ b/cps/translations/ru/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2019-03-10 08:24+0100\n"
+"POT-Creation-Date: 2019-03-24 08:25+0100\n"
"PO-Revision-Date: 2018-12-14 16:26+0300\n"
"Last-Translator: Pavel Korovin \n"
"Language: ru\n"
@@ -22,185 +22,194 @@ msgstr ""
msgid "Statistics"
msgstr "Статистика"
-#: cps/admin.py:96
+#: cps/admin.py:97
msgid "Server restarted, please reload page"
msgstr "Сервер перезагружен, пожалуйста, перезагрузите страницу"
-#: cps/admin.py:99
+#: cps/admin.py:100
msgid "Performing shutdown of server, please close window"
msgstr "Производится остановка сервера, пожалуйста, закройте окно"
-#: cps/admin.py:119 cps/updater.py:498
+#: cps/admin.py:120 cps/updater.py:498
msgid "Unknown"
msgstr "Неизвестно"
-#: cps/admin.py:138
+#: cps/admin.py:139
msgid "Admin page"
msgstr "Администрирование"
-#: cps/admin.py:203 cps/admin.py:474
+#: cps/admin.py:206 cps/admin.py:484
msgid "Calibre-Web configuration updated"
msgstr "Конфигурация Calibre-Web обновлена"
-#: cps/admin.py:217 cps/templates/admin.html:100
+#: cps/admin.py:220 cps/templates/admin.html:100
msgid "UI Configuration"
msgstr "Настройка интерфейса"
-#: cps/admin.py:290
+#: cps/admin.py:293
msgid "Import of optional Google Drive requirements missing"
msgstr "Импорт дополнительных требований к Google Диску отсутствует"
-#: cps/admin.py:293
+#: cps/admin.py:296
msgid "client_secrets.json is missing or not readable"
msgstr "client_secrets.json отсутствует или его невозможно прочесть"
-#: cps/admin.py:298 cps/admin.py:327
+#: cps/admin.py:301 cps/admin.py:330
msgid "client_secrets.json is not configured for web application"
msgstr "client_secrets.json не настроен для веб-приложения"
-#: cps/admin.py:330 cps/admin.py:356 cps/admin.py:368 cps/admin.py:393
-#: cps/admin.py:451 cps/admin.py:464 cps/admin.py:482 cps/admin.py:489
-#: cps/admin.py:504 cps/templates/admin.html:99
+#: cps/admin.py:333 cps/admin.py:359 cps/admin.py:371 cps/admin.py:396
+#: cps/admin.py:424 cps/admin.py:438 cps/admin.py:461 cps/admin.py:474
+#: cps/admin.py:492 cps/admin.py:499 cps/admin.py:514
+#: cps/templates/admin.html:99
msgid "Basic Configuration"
msgstr "Настройки сервера"
-#: cps/admin.py:353
+#: cps/admin.py:356
msgid "Keyfile location is not valid, please enter correct path"
msgstr "Неверное расположение файла-ключа, введите правильный путь"
-#: cps/admin.py:365
+#: cps/admin.py:368
msgid "Certfile location is not valid, please enter correct path"
msgstr "Неверное расположение сертификата, введите правильный путь"
-#: cps/admin.py:390
+#: cps/admin.py:393
msgid "Please enter a LDAP provider and a DN"
msgstr ""
-#: cps/admin.py:448
+#: cps/admin.py:421
+msgid "Please enter Github oauth credentials"
+msgstr ""
+
+#: cps/admin.py:435
+msgid "Please enter Google oauth credentials"
+msgstr ""
+
+#: cps/admin.py:458
msgid "Logfile location is not valid, please enter correct path"
msgstr "Неверное расположение лог-файла, введите правильный путь"
-#: cps/admin.py:486
+#: cps/admin.py:496
msgid "DB location is not valid, please enter correct path"
msgstr "Неверное расположение базы данных, введите правильный путь"
-#: cps/admin.py:546 cps/web.py:1303
+#: cps/admin.py:556 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Пожалуйста, заполните все поля!"
-#: cps/admin.py:548 cps/admin.py:554 cps/admin.py:570
+#: cps/admin.py:558 cps/admin.py:564 cps/admin.py:580
#: cps/templates/admin.html:33
msgid "Add new user"
msgstr "Добавить пользователя"
-#: cps/admin.py:552 cps/web.py:1528
+#: cps/admin.py:562 cps/web.py:1261
msgid "E-mail is not from valid domain"
msgstr "E-mail не из существующей доменной зоны"
-#: cps/admin.py:560
+#: cps/admin.py:570
#, python-format
msgid "User '%(user)s' created"
msgstr "Пользователь '%(user)s' добавлен"
-#: cps/admin.py:564
+#: cps/admin.py:574
msgid "Found an existing account for this e-mail address or nickname."
msgstr "Для этого адреса электронной почты или логина уже есть аккаунт."
-#: cps/admin.py:595
+#: cps/admin.py:605
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "Тестовое письмо успешно отправлено на %(kindlemail)s"
-#: cps/admin.py:598
+#: cps/admin.py:608
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Произошла ошибка при отправке тестового письма на: %(res)s"
-#: cps/admin.py:600 cps/web.py:1495
+#: cps/admin.py:610 cps/web.py:1039
msgid "Please configure your kindle e-mail address first..."
msgstr "Пожалуйста, сначала настройте e-mail на вашем kindle..."
-#: cps/admin.py:602
+#: cps/admin.py:612
msgid "E-mail server settings updated"
msgstr "Настройки E-mail сервера обновлены"
-#: cps/admin.py:603
+#: cps/admin.py:613
msgid "Edit e-mail server settings"
msgstr "Изменить настройки e-mail сервера"
-#: cps/admin.py:628
+#: cps/admin.py:638
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Пользователь '%(nick)s' удалён"
-#: cps/admin.py:694
+#: cps/admin.py:704
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Пользователь '%(nick)s' обновлён"
-#: cps/admin.py:697
+#: cps/admin.py:707
msgid "An unknown error occured."
msgstr "Произошла неизвестная ошибка."
-#: cps/admin.py:700
+#: cps/admin.py:710
#, python-format
msgid "Edit User %(nick)s"
msgstr "Изменить пользователя %(nick)s"
-#: cps/admin.py:716
+#: cps/admin.py:726
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Пароль для пользователя %(user)s сброшен"
-#: cps/admin.py:719 cps/web.py:1328
+#: cps/admin.py:729 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Неизвестная ошибка. Попробуйте позже."
-#: cps/admin.py:738
+#: cps/admin.py:748
msgid "Requesting update package"
msgstr "Проверка обновлений"
-#: cps/admin.py:739
+#: cps/admin.py:749
msgid "Downloading update package"
msgstr "Загрузка обновлений"
-#: cps/admin.py:740
+#: cps/admin.py:750
msgid "Unzipping update package"
msgstr "Распаковка обновлений"
-#: cps/admin.py:741
+#: cps/admin.py:751
msgid "Replacing files"
msgstr "Замена файлов"
-#: cps/admin.py:742
+#: cps/admin.py:752
msgid "Database connections are closed"
msgstr "Соеднинения с базой данных закрыты"
-#: cps/admin.py:743
+#: cps/admin.py:753
msgid "Stopping server"
msgstr "Остановка сервера"
-#: cps/admin.py:744
+#: cps/admin.py:754
msgid "Update finished, please press okay and reload page"
msgstr "Обновления установлены, нажмите okay и перезагрузите страницу"
-#: cps/admin.py:745 cps/admin.py:746 cps/admin.py:747 cps/admin.py:748
+#: cps/admin.py:755 cps/admin.py:756 cps/admin.py:757 cps/admin.py:758
msgid "Update failed:"
msgstr "Ошибка обновления:"
-#: cps/admin.py:745 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
+#: cps/admin.py:755 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
msgid "HTTP Error"
msgstr "Ошибка HTTP"
-#: cps/admin.py:746 cps/updater.py:277 cps/updater.py:513
+#: cps/admin.py:756 cps/updater.py:277 cps/updater.py:513
msgid "Connection error"
msgstr "Ошибка соединения"
-#: cps/admin.py:747 cps/updater.py:279 cps/updater.py:515
+#: cps/admin.py:757 cps/updater.py:279 cps/updater.py:515
msgid "Timeout while establishing connection"
msgstr "Таймаут при установлении соединения"
-#: cps/admin.py:748 cps/updater.py:281 cps/updater.py:517
+#: cps/admin.py:758 cps/updater.py:281 cps/updater.py:517
msgid "General error"
msgstr "Общая ошибка"
@@ -217,98 +226,98 @@ msgstr "Отсутствуют разрешения на выполнение"
msgid "not configured"
msgstr "не настроен"
-#: cps/editbooks.py:219 cps/editbooks.py:425
+#: cps/editbooks.py:218 cps/editbooks.py:410
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Ошибка при открытии eBook. Файл не существует или файл недоступен"
-#: cps/editbooks.py:247
+#: cps/editbooks.py:246
msgid "edit metadata"
msgstr "изменить метаданные"
-#: cps/editbooks.py:340 cps/editbooks.py:587
+#: cps/editbooks.py:325 cps/editbooks.py:572
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Запрещена загрузка файлов с расширением '%(ext)s'"
-#: cps/editbooks.py:344 cps/editbooks.py:591
+#: cps/editbooks.py:329 cps/editbooks.py:576
msgid "File to be uploaded must have an extension"
msgstr "Загружаемый файл должен иметь расширение"
-#: cps/editbooks.py:356 cps/editbooks.py:611
+#: cps/editbooks.py:341 cps/editbooks.py:596
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Ошибка при создании пути %(path)s (Доступ запрещён)."
-#: cps/editbooks.py:361
+#: cps/editbooks.py:346
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Не удалось сохранить файл %(file)s."
-#: cps/editbooks.py:378
+#: cps/editbooks.py:363
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Формат файла %(ext)s добавлен в %(book)s"
-#: cps/editbooks.py:396
+#: cps/editbooks.py:381
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr "Не удалось создать путь для обложки %(path)s (Доступ запрещён)."
-#: cps/editbooks.py:404
+#: cps/editbooks.py:389
+msgid "Cover-file is not a valid image file"
+msgstr "Файл обложки не соответствует изображению"
+
+#: cps/editbooks.py:392
#, python-format
msgid "Failed to store cover-file %(cover)s."
msgstr "Не удалось сохранить файл обложки %(cover)s."
-#: cps/editbooks.py:407
-msgid "Cover-file is not a valid image file"
-msgstr "Файл обложки не соответствует изображению"
-
-#: cps/editbooks.py:437 cps/editbooks.py:446
+#: cps/editbooks.py:422 cps/editbooks.py:431
msgid "unknown"
msgstr "неизвестно"
-#: cps/editbooks.py:478
+#: cps/editbooks.py:463
msgid "Cover is not a jpg file, can't save"
msgstr "Обложка не jpg файл, невозможно сохранить"
-#: cps/editbooks.py:526
+#: cps/editbooks.py:511
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "%(langname)s не допустимый язык"
-#: cps/editbooks.py:557
+#: cps/editbooks.py:542
msgid "Metadata successfully updated"
msgstr "Метаданные обновлены"
-#: cps/editbooks.py:566
+#: cps/editbooks.py:551
msgid "Error editing book, please check logfile for details"
msgstr "Ошибка редактирования книги. Пожалуйста, проверьте лог-файл для дополнительной информации"
-#: cps/editbooks.py:616
+#: cps/editbooks.py:601
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr "Ошибка записи файла %(file)s (Доступ запрещён)."
-#: cps/editbooks.py:621
+#: cps/editbooks.py:606
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr "Ошибка удаления файла %(file)s (Доступ запрещён)."
-#: cps/editbooks.py:704
+#: cps/editbooks.py:689
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:733
+#: cps/editbooks.py:718
msgid "Source or destination format for conversion missing"
msgstr "Исходный или целевой формат для конвертирования отсутствует"
-#: cps/editbooks.py:743
+#: cps/editbooks.py:728
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Книга успешно поставлена в очередь для конвертирования в %(book_format)s"
-#: cps/editbooks.py:747
+#: cps/editbooks.py:732
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Произошла ошибка при конвертирования этой книги: %(res)s"
@@ -321,133 +330,133 @@ msgstr ""
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Не удалось проверить домен обратного вызова, пожалуйста, выполните шаги для проверки домена в консоли разработчика Google."
-#: cps/helper.py:66
+#: cps/helper.py:84
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "%(format)s форма не найден для книги с id: %(book)d"
-#: cps/helper.py:78
+#: cps/helper.py:96
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "%(format)s не найден на Google Drive: %(fn)s"
-#: cps/helper.py:85 cps/helper.py:193 cps/templates/detail.html:45
+#: cps/helper.py:103 cps/helper.py:211 cps/templates/detail.html:45
#: cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr "Отправить на Kindle"
-#: cps/helper.py:86 cps/helper.py:104 cps/helper.py:195
+#: cps/helper.py:104 cps/helper.py:122 cps/helper.py:213
msgid "This e-mail has been sent via Calibre-Web."
msgstr "Это электронное письмо было отправлено через Caliber-Web."
-#: cps/helper.py:97
+#: cps/helper.py:115
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "%(format)s не найден: %(fn)s"
-#: cps/helper.py:102
+#: cps/helper.py:120
msgid "Calibre-Web test e-mail"
msgstr "Тестовый e-mail для Calibre-Web"
-#: cps/helper.py:103
+#: cps/helper.py:121
msgid "Test e-mail"
msgstr "Тестовый e-mail"
-#: cps/helper.py:119
+#: cps/helper.py:137
msgid "Get Started with Calibre-Web"
msgstr "Начать работать с Calibre-Web"
-#: cps/helper.py:120
+#: cps/helper.py:138
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "Регистрационный e-mail для пользователя: %(name)s"
-#: cps/helper.py:133 cps/helper.py:135 cps/helper.py:137 cps/helper.py:139
-#: cps/helper.py:145 cps/helper.py:147 cps/helper.py:149 cps/helper.py:151
+#: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
+#: cps/helper.py:163 cps/helper.py:165 cps/helper.py:167 cps/helper.py:169
#, python-format
msgid "Send %(format)s to Kindle"
msgstr ""
-#: cps/helper.py:155 cps/helper.py:159
+#: cps/helper.py:173 cps/helper.py:177
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr ""
-#: cps/helper.py:194
+#: cps/helper.py:212
#, python-format
msgid "E-mail: %(book)s"
msgstr "Эл. почта: %(book)s"
-#: cps/helper.py:197
+#: cps/helper.py:215
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "Запрашиваемый файл не может быть прочитан. Возможно не верные разрешения?"
-#: cps/helper.py:305
+#: cps/helper.py:323
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Переименовывание заголовка с: '%(src)s' на '%(dest)s' не удалось из-за ошибки: %(error)s"
-#: cps/helper.py:315
+#: cps/helper.py:333
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Переименовывание автора с: '%(src)s' на '%(dest)s' не удалось из-за ошибки: %(error)s"
-#: cps/helper.py:329
+#: cps/helper.py:347
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:355 cps/helper.py:365 cps/helper.py:373
+#: cps/helper.py:373 cps/helper.py:383 cps/helper.py:391
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Файл %(file)s не найден на Google Drive"
-#: cps/helper.py:394
+#: cps/helper.py:412
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "Путь книги %(path)s не найден на Google Drive"
-#: cps/helper.py:502
+#: cps/helper.py:520
msgid "Error excecuting UnRar"
msgstr "Ошибка извлечения UnRar"
-#: cps/helper.py:504
+#: cps/helper.py:522
msgid "Unrar binary file not found"
msgstr "Unrar двочиный файл не найден"
-#: cps/helper.py:535
+#: cps/helper.py:553
msgid "Waiting"
msgstr "Ожидание"
-#: cps/helper.py:537
+#: cps/helper.py:555
msgid "Failed"
msgstr "Неудачно"
-#: cps/helper.py:539
+#: cps/helper.py:557
msgid "Started"
msgstr "Начало"
-#: cps/helper.py:541
+#: cps/helper.py:559
msgid "Finished"
msgstr "Закончено"
-#: cps/helper.py:543
+#: cps/helper.py:561
msgid "Unknown Status"
msgstr "Неизвестный статус"
-#: cps/helper.py:548
+#: cps/helper.py:566
msgid "E-mail: "
msgstr "E-mail: "
-#: cps/helper.py:550 cps/helper.py:554
+#: cps/helper.py:568 cps/helper.py:572
msgid "Convert: "
msgstr "Конвертировать:"
-#: cps/helper.py:552
+#: cps/helper.py:570
msgid "Upload: "
msgstr "Загрузить:"
-#: cps/helper.py:556
+#: cps/helper.py:574
msgid "Unknown Task: "
msgstr "Неизвестная задача:"
@@ -472,30 +481,26 @@ msgstr ""
msgid "Failed to fetch user info from Google."
msgstr ""
-#: cps/oauth_bb.py:229
-msgid "Public registration is not enabled"
-msgstr ""
-
-#: cps/oauth_bb.py:264
+#: cps/oauth_bb.py:265
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr ""
-#: cps/oauth_bb.py:268
+#: cps/oauth_bb.py:269
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr ""
-#: cps/oauth_bb.py:271
+#: cps/oauth_bb.py:272
#, python-format
msgid "Not linked to %(oauth)s."
msgstr ""
-#: cps/oauth_bb.py:299
+#: cps/oauth_bb.py:300
msgid "GitHub Oauth error, please retry later."
msgstr ""
-#: cps/oauth_bb.py:318
+#: cps/oauth_bb.py:319
msgid "Google Oauth error, please retry later."
msgstr ""
@@ -588,119 +593,127 @@ msgstr "Изменить полку"
msgid "successfully deleted shelf %(name)s"
msgstr "удачно удалена полка %(name)s"
-#: cps/shelf.py:286 cps/shelf.py:316
+#: cps/shelf.py:289
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Полка: '%(name)s'"
-#: cps/shelf.py:289 cps/shelf.py:319
+#: cps/shelf.py:292
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Ошибка открытия Полки. Полка не существует или недоступна"
-#: cps/shelf.py:349
+#: cps/shelf.py:324
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Изменить расположение полки '%(name)s'"
-#: cps/ub.py:106
+#: cps/ub.py:107
msgid "Recently Added"
msgstr "Недавно Добавленные"
-#: cps/ub.py:108
+#: cps/ub.py:109
msgid "Show recent books"
msgstr "Показывать недавние книги"
-#: cps/templates/index.xml:17 cps/ub.py:109
+#: cps/templates/index.xml:17 cps/ub.py:110
msgid "Hot Books"
msgstr "Популярные Книги"
-#: cps/ub.py:110
+#: cps/ub.py:111
msgid "Show hot books"
msgstr "Показывать популярные книги"
-#: cps/templates/index.xml:24 cps/ub.py:113
+#: cps/templates/index.xml:24 cps/ub.py:114
msgid "Best rated Books"
msgstr "Книги с наилучшим рейтингом"
-#: cps/ub.py:115
+#: cps/ub.py:116
msgid "Show best rated books"
msgstr "Показывать книги с наивысшим рейтингом"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:116
-#: cps/web.py:1193
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:117
+#: cps/web.py:975
msgid "Read Books"
msgstr "Прочитанные Книги"
-#: cps/ub.py:118
+#: cps/ub.py:119
msgid "Show read and unread"
msgstr "Показывать прочитанные и непрочитанные"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:120
-#: cps/web.py:1196
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:121
+#: cps/web.py:979
msgid "Unread Books"
msgstr "Непрочитанные Книги"
-#: cps/ub.py:122
+#: cps/ub.py:123
msgid "Show unread"
msgstr ""
-#: cps/ub.py:123
+#: cps/ub.py:124
msgid "Discover"
msgstr "Обзор"
-#: cps/ub.py:125
+#: cps/ub.py:126
msgid "Show random books"
msgstr "Показывать случайные книги"
-#: cps/ub.py:126
+#: cps/ub.py:127
msgid "Categories"
msgstr "Категории"
-#: cps/ub.py:128
+#: cps/ub.py:129
msgid "Show category selection"
msgstr "Показывать выбор категории"
#: cps/templates/book_edit.html:75 cps/templates/search_form.html:53
-#: cps/ub.py:129
+#: cps/ub.py:130
msgid "Series"
msgstr "Серии"
-#: cps/ub.py:131
+#: cps/ub.py:132
msgid "Show series selection"
msgstr "Показывать выбор серии"
-#: cps/templates/index.xml:61 cps/ub.py:132
+#: cps/templates/index.xml:61 cps/ub.py:133
msgid "Authors"
msgstr "Авторы"
-#: cps/ub.py:134
+#: cps/ub.py:135
msgid "Show author selection"
msgstr "Показывать выбор автора"
-#: cps/templates/index.xml:68 cps/ub.py:136
+#: cps/templates/index.xml:68 cps/ub.py:137
msgid "Publishers"
msgstr "Издатели"
-#: cps/ub.py:138
+#: cps/ub.py:139
msgid "Show publisher selection"
msgstr "Показать выбор издателя"
-#: cps/templates/search_form.html:74 cps/ub.py:139
+#: cps/templates/search_form.html:74 cps/ub.py:140
msgid "Languages"
msgstr "Языки"
-#: cps/ub.py:142
+#: cps/ub.py:143
msgid "Show language selection"
msgstr "Показывать выбор языка"
-#: cps/ub.py:143
+#: cps/ub.py:144
msgid "Ratings"
msgstr ""
-#: cps/ub.py:145
+#: cps/ub.py:146
msgid "Show ratings selection"
msgstr ""
+#: cps/ub.py:147
+msgid "File formats"
+msgstr ""
+
+#: cps/ub.py:149
+msgid "Show file formats selection"
+msgstr ""
+
#: cps/updater.py:255 cps/updater.py:417 cps/updater.py:430
msgid "Unexpected data while reading update information"
msgstr "Некорректные данные при чтении информации об обновлении"
@@ -726,196 +739,193 @@ msgstr ""
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
-#: cps/web.py:497
+#: cps/web.py:464
msgid "Recently Added Books"
msgstr "Недавно Добавленные Книги"
-#: cps/web.py:506
-msgid "Newest Books"
-msgstr "Новые Книги"
-
-#: cps/web.py:515
-msgid "Oldest Books"
-msgstr "Старые Книги"
-
-#: cps/web.py:524
-msgid "Books (A-Z)"
-msgstr "Книги (А-Я)"
-
-#: cps/web.py:533
-msgid "Books (Z-A)"
-msgstr "Книги (Я-А)"
-
-#: cps/web.py:562
-msgid "Hot Books (most downloaded)"
-msgstr "Популярные книги (часто загружаемые)"
-
-#: cps/web.py:575
+#: cps/web.py:491
msgid "Best rated books"
msgstr "Книги с наивысшим рейтингом"
-#: cps/templates/index.xml:38 cps/web.py:588
+#: cps/templates/index.xml:38 cps/web.py:499
msgid "Random Books"
msgstr "Случайный выбор"
-#: cps/web.py:618 cps/web.py:925 cps/web.py:1206
+#: cps/web.py:513
+msgid "Books"
+msgstr ""
+
+#: cps/web.py:540
+msgid "Hot Books (most downloaded)"
+msgstr "Популярные книги (часто загружаемые)"
+
+#: cps/web.py:568 cps/web.py:1306 cps/web.py:1409
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Невозможно открыть книгу. Файл не существует или недоступен."
-#: cps/web.py:650
+#: cps/web.py:599
msgid "Publisher list"
msgstr "Список издателей"
-#: cps/web.py:666
+#: cps/web.py:614
#, python-format
msgid "Publisher: %(name)s"
msgstr "Издатель: %(name)s"
-#: cps/templates/index.xml:82 cps/web.py:704
+#: cps/templates/index.xml:82 cps/web.py:630
msgid "Series list"
msgstr "Серии"
-#: cps/web.py:718
+#: cps/web.py:644
#, python-format
msgid "Series: %(serie)s"
msgstr "Серии: %(serie)s"
-#: cps/web.py:734
+#: cps/web.py:658
msgid "Ratings list"
msgstr ""
-#: cps/web.py:748
+#: cps/web.py:672
#, python-format
-msgid "Ratings: %(serie)s"
+msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:776
+#: cps/web.py:685
+msgid "File formats list"
+msgstr ""
+
+#: cps/web.py:699
+#, python-format
+msgid "File format: %(format)s"
+msgstr ""
+
+#: cps/web.py:727
msgid "Available languages"
msgstr "Доступные языки"
-#: cps/web.py:796
+#: cps/web.py:747
#, python-format
msgid "Language: %(name)s"
msgstr "Язык: %(name)s"
-#: cps/templates/index.xml:75 cps/web.py:810
+#: cps/templates/index.xml:75 cps/web.py:761
msgid "Category list"
msgstr "Категории"
-#: cps/web.py:825
+#: cps/web.py:776
#, python-format
msgid "Category: %(name)s"
msgstr "Категория: %(name)s"
-#: cps/templates/layout.html:73 cps/web.py:957
+#: cps/templates/layout.html:73 cps/web.py:787
msgid "Tasks"
msgstr "Задания"
-#: cps/web.py:1028
+#: cps/web.py:851
msgid "Published after "
msgstr "Опубликовано до "
-#: cps/web.py:1035
+#: cps/web.py:858
msgid "Published before "
msgstr "Опубликовано после "
-#: cps/web.py:1049
+#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Рейтинг <= %(rating)s"
-#: cps/web.py:1051
+#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Рейтинг >= %(rating)s"
-#: cps/web.py:1112 cps/web.py:1121
+#: cps/web.py:935 cps/web.py:944
msgid "search"
msgstr "поиск"
-#: cps/web.py:1216 cps/web.py:1218 cps/web.py:1220 cps/web.py:1224
-#: cps/web.py:1228 cps/web.py:1232 cps/web.py:1244
-msgid "Read a Book"
-msgstr "Читать Книгу"
+#: cps/web.py:1028
+msgid "Please configure the SMTP mail settings first..."
+msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP"
+
+#: cps/web.py:1033
+#, python-format
+msgid "Book successfully queued for sending to %(kindlemail)s"
+msgstr "Книга успешно поставлена в очередь для отправки на %(kindlemail)s"
-#: cps/web.py:1304 cps/web.py:1329 cps/web.py:1334 cps/web.py:1339
-#: cps/web.py:1343
+#: cps/web.py:1037
+#, python-format
+msgid "There was an error sending this book: %(res)s"
+msgstr "Ошибка при отправке книги: %(res)s"
+
+#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1086 cps/web.py:1091
+#: cps/web.py:1095
msgid "register"
msgstr "регистрация"
-#: cps/web.py:1331
+#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Ваш e-mail не подходит для регистрации"
-#: cps/web.py:1335
+#: cps/web.py:1087
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Письмо с подтверждением отправлено вам на e-mail"
-#: cps/web.py:1338
+#: cps/web.py:1090
msgid "This username or e-mail address is already in use."
msgstr "Этот никнейм или e-mail уже используются"
-#: cps/web.py:1361 cps/web.py:1373
+#: cps/web.py:1113 cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1366 cps/web.py:1378
+#: cps/web.py:1118 cps/web.py:1130
msgid "Wrong Username or Password"
msgstr "Ошибка в имени пользователя или пароле"
-#: cps/web.py:1369
+#: cps/web.py:1121
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
-#: cps/web.py:1384 cps/web.py:1406
+#: cps/web.py:1136 cps/web.py:1158
msgid "login"
msgstr "войти"
-#: cps/web.py:1418 cps/web.py:1449
+#: cps/web.py:1170 cps/web.py:1201
msgid "Token not found"
msgstr "Ключ не найден"
-#: cps/web.py:1426 cps/web.py:1457
+#: cps/web.py:1178 cps/web.py:1209
msgid "Token has expired"
msgstr "Ключ просрочен"
-#: cps/web.py:1434
+#: cps/web.py:1186
msgid "Success! Please return to your device"
msgstr "Успешно! Пожалуйста, проверьте свое устройство"
-#: cps/web.py:1470
+#: cps/web.py:1222
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Вы вошли как пользователь '%(nickname)s'"
-#: cps/web.py:1484
-msgid "Please configure the SMTP mail settings first..."
-msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP"
-
-#: cps/web.py:1489
-#, python-format
-msgid "Book successfully queued for sending to %(kindlemail)s"
-msgstr "Книга успешно поставлена в очередь для отправки на %(kindlemail)s"
-
-#: cps/web.py:1493
-#, python-format
-msgid "There was an error sending this book: %(res)s"
-msgstr "Ошибка при отправке книги: %(res)s"
-
-#: cps/web.py:1530 cps/web.py:1555 cps/web.py:1559
+#: cps/web.py:1263 cps/web.py:1290 cps/web.py:1294
#, python-format
msgid "%(name)s's profile"
msgstr "Профиль %(name)s"
-#: cps/web.py:1553
+#: cps/web.py:1287
msgid "Found an existing account for this e-mail address."
msgstr "Этот адрес электронной почты уже зарегистрирован."
-#: cps/web.py:1557
+#: cps/web.py:1292
msgid "Profile updated"
msgstr "Профиль обновлён"
+#: cps/web.py:1316 cps/web.py:1318 cps/web.py:1320 cps/web.py:1324
+#: cps/web.py:1328 cps/web.py:1332 cps/web.py:1344
+msgid "Read a Book"
+msgstr "Читать Книгу"
+
#: cps/worker.py:308
#, python-format
msgid "Ebook-converter failed: %(error)s"
@@ -1083,7 +1093,7 @@ msgstr "Ok"
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:77
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
-#: cps/templates/user_edit.html:127
+#: cps/templates/user_edit.html:128
msgid "Back"
msgstr "Назад"
@@ -1103,14 +1113,19 @@ msgstr "с помощью"
msgid "In Library"
msgstr "В библиотеке"
-#: cps/templates/author.html:50 cps/templates/author.html:97
-#: cps/templates/discover.html:28 cps/templates/index.html:30
-#: cps/templates/index.html:97 cps/templates/search.html:55
+#: cps/templates/author.html:34 cps/templates/list.html:9
+#: cps/templates/search.html:41
+msgid "All"
+msgstr ""
+
+#: cps/templates/author.html:62 cps/templates/author.html:109
+#: cps/templates/discover.html:27 cps/templates/index.html:30
+#: cps/templates/index.html:97 cps/templates/search.html:67
#: cps/templates/shelf.html:40
msgid "reduce"
msgstr ""
-#: cps/templates/author.html:81
+#: cps/templates/author.html:93
msgid "More by"
msgstr "Ещё от"
@@ -1218,7 +1233,7 @@ msgstr "Получить метаданные"
#: cps/templates/book_edit.html:177 cps/templates/config_edit.html:279
#: cps/templates/config_view_edit.html:140 cps/templates/login.html:20
#: cps/templates/search_form.html:150 cps/templates/shelf_edit.html:17
-#: cps/templates/user_edit.html:125
+#: cps/templates/user_edit.html:126
msgid "Submit"
msgstr "Отправить"
@@ -1254,8 +1269,8 @@ msgstr "Нажмите на обложку, чтобы получить мета
msgid "Loading..."
msgstr "Загрузка..."
-#: cps/templates/book_edit.html:239 cps/templates/layout.html:199
-#: cps/templates/layout.html:231
+#: cps/templates/book_edit.html:239 cps/templates/layout.html:187
+#: cps/templates/layout.html:219
msgid "Close"
msgstr "Закрыть"
@@ -1484,8 +1499,7 @@ msgstr "Логин"
msgid "View Configuration"
msgstr "Просмотреть Конфигурацию"
-#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:132
-#: cps/templates/layout.html:133 cps/templates/shelf_edit.html:7
+#: cps/templates/config_view_edit.html:19 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "Заголовок"
@@ -1529,31 +1543,31 @@ msgstr "Теги для Зрелого Контента"
msgid "Default settings for new users"
msgstr "Настройки по умолчанию для новых пользователей"
-#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:82
+#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Управление сервером"
-#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:91
+#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:92
msgid "Allow Downloads"
msgstr "Разрешить скачивание с сервера"
-#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:95
+#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:96
msgid "Allow Uploads"
msgstr "Разрешить загрузку на сервер"
-#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:99
+#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:100
msgid "Allow Edit"
msgstr "Разрешить редактирование книг"
-#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:103
+#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:104
msgid "Allow Delete books"
msgstr "Разрешить удаление книг"
-#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:108
+#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:109
msgid "Allow Changing Password"
msgstr "Разрешить смену пароля"
-#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:112
+#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:113
msgid "Allow Editing Public Shelfs"
msgstr "Разрешить редактирование публичных книжных полок"
@@ -1561,11 +1575,11 @@ msgstr "Разрешить редактирование публичных кн
msgid "Default visibilities for new users"
msgstr "Видимость для новых пользователей(по умолчанию)"
-#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:74
+#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "Показывать случайные книги при просмотре деталей"
-#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:87
+#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:88
msgid "Show mature content"
msgstr "Показывать взрослый контент"
@@ -1669,7 +1683,7 @@ msgstr "Добавить"
msgid "Do you really want to delete this domain rule?"
msgstr "Вы действительно желаете удалить это правило домена?"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:183
+#: cps/templates/feed.xml:21 cps/templates/layout.html:171
msgid "Next"
msgstr "Дальше"
@@ -1686,8 +1700,8 @@ msgstr ""
msgid "Discover (Random Books)"
msgstr "Обзор (Случайные Книги)"
-#: cps/templates/index.html:69 cps/templates/list.html:8
-msgid "All"
+#: cps/templates/index.html:69
+msgid "Group by series"
msgstr ""
#: cps/templates/index.xml:6
@@ -1730,7 +1744,7 @@ msgstr "Книги, отсортированные по категории"
msgid "Books ordered by series"
msgstr "Книги, отсортированные по серии"
-#: cps/templates/index.xml:89 cps/templates/layout.html:144
+#: cps/templates/index.xml:89 cps/templates/layout.html:132
msgid "Public Shelves"
msgstr "Общие полки"
@@ -1738,7 +1752,7 @@ msgstr "Общие полки"
msgid "Books organized in public shelfs, visible to everyone"
msgstr "Книги размещены на полках, и доступны всем"
-#: cps/templates/index.xml:97 cps/templates/layout.html:148
+#: cps/templates/index.xml:97 cps/templates/layout.html:136
msgid "Your Shelves"
msgstr "Ваши полки"
@@ -1775,7 +1789,7 @@ msgstr "Выход"
msgid "Register"
msgstr "Зарегистрироваться"
-#: cps/templates/layout.html:111 cps/templates/layout.html:230
+#: cps/templates/layout.html:111 cps/templates/layout.html:218
msgid "Uploading..."
msgstr "Загружается..."
@@ -1787,52 +1801,27 @@ msgstr "пожалуйста не обновляйте страницу"
msgid "Browse"
msgstr "Просмотр"
-#: cps/templates/layout.html:126
-msgid "Sorted Books"
-msgstr "Сортировка Книг"
-
-#: cps/templates/layout.html:130 cps/templates/layout.html:131
-#: cps/templates/layout.html:132 cps/templates/layout.html:133
-msgid "Sort By"
-msgstr "Отсортировано по"
-
-#: cps/templates/layout.html:130
-msgid "Newest"
-msgstr "Новинки"
-
-#: cps/templates/layout.html:131
-msgid "Oldest"
-msgstr "Старое"
-
-#: cps/templates/layout.html:132
-msgid "Ascending"
-msgstr "По возрастанию"
-
-#: cps/templates/layout.html:133
-msgid "Descending"
-msgstr "По убыванию"
-
-#: cps/templates/layout.html:153
+#: cps/templates/layout.html:141
msgid "Create a Shelf"
msgstr "Создать книжную полку"
-#: cps/templates/layout.html:154 cps/templates/stats.html:3
+#: cps/templates/layout.html:142 cps/templates/stats.html:3
msgid "About"
msgstr "О программе"
-#: cps/templates/layout.html:168
+#: cps/templates/layout.html:156
msgid "Previous"
msgstr "Предыдущий"
-#: cps/templates/layout.html:195
+#: cps/templates/layout.html:183
msgid "Book Details"
msgstr "Подробнее о книге"
-#: cps/templates/layout.html:229
+#: cps/templates/layout.html:217
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:232
+#: cps/templates/layout.html:220
msgid "Error"
msgstr ""
@@ -2130,27 +2119,31 @@ msgstr "Сбросить пароль пользователя"
msgid "Kindle E-Mail"
msgstr "Адрес почты Kindle"
-#: cps/templates/user_edit.html:39
+#: cps/templates/user_edit.html:40
msgid "Show books with language"
msgstr "Показать книги на языках"
-#: cps/templates/user_edit.html:41
+#: cps/templates/user_edit.html:42
msgid "Show all"
msgstr "Показать все"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:52
msgid "OAuth Settings"
msgstr ""
+#: cps/templates/user_edit.html:54
+msgid "Link"
+msgstr ""
+
#: cps/templates/user_edit.html:56
msgid "Unlink"
msgstr ""
-#: cps/templates/user_edit.html:119
+#: cps/templates/user_edit.html:120
msgid "Delete this user"
msgstr "Удалить этого пользователя"
-#: cps/templates/user_edit.html:134
+#: cps/templates/user_edit.html:135
msgid "Recent Downloads"
msgstr "Недавние скачивания"
@@ -3414,3 +3407,39 @@ msgstr "Недавние скачивания"
#~ msgid "Show sorted books"
#~ msgstr "Показывать отсортированные книги"
+#~ msgid "Public registration is not enabled"
+#~ msgstr ""
+
+#~ msgid "Newest Books"
+#~ msgstr "Новые Книги"
+
+#~ msgid "Oldest Books"
+#~ msgstr "Старые Книги"
+
+#~ msgid "Books (A-Z)"
+#~ msgstr "Книги (А-Я)"
+
+#~ msgid "Books (Z-A)"
+#~ msgstr "Книги (Я-А)"
+
+#~ msgid "Ratings: %(serie)s"
+#~ msgstr ""
+
+#~ msgid "Sorted Books"
+#~ msgstr "Сортировка Книг"
+
+#~ msgid "Sort By"
+#~ msgstr "Отсортировано по"
+
+#~ msgid "Newest"
+#~ msgstr "Новинки"
+
+#~ msgid "Oldest"
+#~ msgstr "Старое"
+
+#~ msgid "Ascending"
+#~ msgstr "По возрастанию"
+
+#~ msgid "Descending"
+#~ msgstr "По убыванию"
+
diff --git a/cps/translations/sv/LC_MESSAGES/messages.mo b/cps/translations/sv/LC_MESSAGES/messages.mo
index 814cafa2..429b0e9e 100644
Binary files a/cps/translations/sv/LC_MESSAGES/messages.mo and b/cps/translations/sv/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/sv/LC_MESSAGES/messages.po b/cps/translations/sv/LC_MESSAGES/messages.po
index 08d0922a..1a124d26 100644
--- a/cps/translations/sv/LC_MESSAGES/messages.po
+++ b/cps/translations/sv/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2019-03-10 08:24+0100\n"
+"POT-Creation-Date: 2019-03-24 08:25+0100\n"
"PO-Revision-Date: 2018-11-23 02:57+0100\n"
"Last-Translator: Jonatan Nyberg \n"
"Language: sv\n"
@@ -22,185 +22,194 @@ msgstr ""
msgid "Statistics"
msgstr "Statistik"
-#: cps/admin.py:96
+#: cps/admin.py:97
msgid "Server restarted, please reload page"
msgstr "Server startas om, vänligen uppdatera sidan"
-#: cps/admin.py:99
+#: cps/admin.py:100
msgid "Performing shutdown of server, please close window"
msgstr "Stänger servern, vänligen stäng fönstret"
-#: cps/admin.py:119 cps/updater.py:498
+#: cps/admin.py:120 cps/updater.py:498
msgid "Unknown"
msgstr "Okänd"
-#: cps/admin.py:138
+#: cps/admin.py:139
msgid "Admin page"
msgstr "Administrationssida"
-#: cps/admin.py:203 cps/admin.py:474
+#: cps/admin.py:206 cps/admin.py:484
msgid "Calibre-Web configuration updated"
msgstr "Calibre-Web konfiguration uppdaterad"
-#: cps/admin.py:217 cps/templates/admin.html:100
+#: cps/admin.py:220 cps/templates/admin.html:100
msgid "UI Configuration"
msgstr "Användargränssnitt konfiguration"
-#: cps/admin.py:290
+#: cps/admin.py:293
msgid "Import of optional Google Drive requirements missing"
msgstr "Import av valfri Google Drive krav saknas"
-#: cps/admin.py:293
+#: cps/admin.py:296
msgid "client_secrets.json is missing or not readable"
msgstr "client_secrets.json saknas eller inte kan läsas"
-#: cps/admin.py:298 cps/admin.py:327
+#: cps/admin.py:301 cps/admin.py:330
msgid "client_secrets.json is not configured for web application"
msgstr "client_secrets.json är inte konfigurerad för webbapplikation"
-#: cps/admin.py:330 cps/admin.py:356 cps/admin.py:368 cps/admin.py:393
-#: cps/admin.py:451 cps/admin.py:464 cps/admin.py:482 cps/admin.py:489
-#: cps/admin.py:504 cps/templates/admin.html:99
+#: cps/admin.py:333 cps/admin.py:359 cps/admin.py:371 cps/admin.py:396
+#: cps/admin.py:424 cps/admin.py:438 cps/admin.py:461 cps/admin.py:474
+#: cps/admin.py:492 cps/admin.py:499 cps/admin.py:514
+#: cps/templates/admin.html:99
msgid "Basic Configuration"
msgstr "Grundläggande konfiguration"
-#: cps/admin.py:353
+#: cps/admin.py:356
msgid "Keyfile location is not valid, please enter correct path"
msgstr "Platsen för Keyfile är inte giltig, ange rätt sökväg"
-#: cps/admin.py:365
+#: cps/admin.py:368
msgid "Certfile location is not valid, please enter correct path"
msgstr "Platsen för Certfile är inte giltig, ange rätt sökväg"
-#: cps/admin.py:390
+#: cps/admin.py:393
msgid "Please enter a LDAP provider and a DN"
msgstr ""
-#: cps/admin.py:448
+#: cps/admin.py:421
+msgid "Please enter Github oauth credentials"
+msgstr ""
+
+#: cps/admin.py:435
+msgid "Please enter Google oauth credentials"
+msgstr ""
+
+#: cps/admin.py:458
msgid "Logfile location is not valid, please enter correct path"
msgstr "Platsen för Logfile platsen är inte giltig, ange rätt sökväg"
-#: cps/admin.py:486
+#: cps/admin.py:496
msgid "DB location is not valid, please enter correct path"
msgstr "Platsen för DB är inte giltig, ange rätt sökväg"
-#: cps/admin.py:546 cps/web.py:1303
+#: cps/admin.py:556 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Fyll i alla fält!"
-#: cps/admin.py:548 cps/admin.py:554 cps/admin.py:570
+#: cps/admin.py:558 cps/admin.py:564 cps/admin.py:580
#: cps/templates/admin.html:33
msgid "Add new user"
msgstr "Lägg till ny användare"
-#: cps/admin.py:552 cps/web.py:1528
+#: cps/admin.py:562 cps/web.py:1261
msgid "E-mail is not from valid domain"
msgstr "E-posten är inte från giltig domän"
-#: cps/admin.py:560
+#: cps/admin.py:570
#, python-format
msgid "User '%(user)s' created"
msgstr "Användaren '%(user)s' skapad"
-#: cps/admin.py:564
+#: cps/admin.py:574
msgid "Found an existing account for this e-mail address or nickname."
msgstr "Hittade ett befintligt konto för den här e-postadressen eller smeknamnet."
-#: cps/admin.py:595
+#: cps/admin.py:605
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "Test-e-post skicka till %(kindlemail)s"
-#: cps/admin.py:598
+#: cps/admin.py:608
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Det gick inte att skicka Testmeddelandet: %(res)s"
-#: cps/admin.py:600 cps/web.py:1495
+#: cps/admin.py:610 cps/web.py:1039
msgid "Please configure your kindle e-mail address first..."
msgstr "Konfigurera din kindle-e-postadress först..."
-#: cps/admin.py:602
+#: cps/admin.py:612
msgid "E-mail server settings updated"
msgstr "E-postserverinställningar uppdaterade"
-#: cps/admin.py:603
+#: cps/admin.py:613
msgid "Edit e-mail server settings"
msgstr "Redigera inställningar för e-postserver"
-#: cps/admin.py:628
+#: cps/admin.py:638
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Användaren '%(nick)s' borttagen"
-#: cps/admin.py:694
+#: cps/admin.py:704
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Användaren '%(nick)s' uppdaterad"
-#: cps/admin.py:697
+#: cps/admin.py:707
msgid "An unknown error occured."
msgstr "Ett okänt fel uppstod."
-#: cps/admin.py:700
+#: cps/admin.py:710
#, python-format
msgid "Edit User %(nick)s"
msgstr "Redigera användaren %(nick)s"
-#: cps/admin.py:716
+#: cps/admin.py:726
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Lösenord för användaren %(user)s återställd"
-#: cps/admin.py:719 cps/web.py:1328
+#: cps/admin.py:729 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Ett okänt fel uppstod. Försök igen senare."
-#: cps/admin.py:738
+#: cps/admin.py:748
msgid "Requesting update package"
msgstr "Begär uppdateringspaketet"
-#: cps/admin.py:739
+#: cps/admin.py:749
msgid "Downloading update package"
msgstr "Hämtar uppdateringspaketet"
-#: cps/admin.py:740
+#: cps/admin.py:750
msgid "Unzipping update package"
msgstr "Packar upp uppdateringspaketet"
-#: cps/admin.py:741
+#: cps/admin.py:751
msgid "Replacing files"
msgstr "Ersätta filer"
-#: cps/admin.py:742
+#: cps/admin.py:752
msgid "Database connections are closed"
msgstr "Databasanslutningarna är stängda"
-#: cps/admin.py:743
+#: cps/admin.py:753
msgid "Stopping server"
msgstr "Stoppar server"
-#: cps/admin.py:744
+#: cps/admin.py:754
msgid "Update finished, please press okay and reload page"
msgstr "Uppdatering klar, tryck på okej och uppdatera sidan"
-#: cps/admin.py:745 cps/admin.py:746 cps/admin.py:747 cps/admin.py:748
+#: cps/admin.py:755 cps/admin.py:756 cps/admin.py:757 cps/admin.py:758
msgid "Update failed:"
msgstr "Uppdateringen misslyckades:"
-#: cps/admin.py:745 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
+#: cps/admin.py:755 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
msgid "HTTP Error"
msgstr "HTTP-fel"
-#: cps/admin.py:746 cps/updater.py:277 cps/updater.py:513
+#: cps/admin.py:756 cps/updater.py:277 cps/updater.py:513
msgid "Connection error"
msgstr "Anslutningsfel"
-#: cps/admin.py:747 cps/updater.py:279 cps/updater.py:515
+#: cps/admin.py:757 cps/updater.py:279 cps/updater.py:515
msgid "Timeout while establishing connection"
msgstr "Tiden ute när du etablerade anslutning"
-#: cps/admin.py:748 cps/updater.py:281 cps/updater.py:517
+#: cps/admin.py:758 cps/updater.py:281 cps/updater.py:517
msgid "General error"
msgstr "Allmänt fel"
@@ -217,98 +226,98 @@ msgstr "Utförande behörighet saknas"
msgid "not configured"
msgstr "inte konfigurerad"
-#: cps/editbooks.py:219 cps/editbooks.py:425
+#: cps/editbooks.py:218 cps/editbooks.py:410
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Det gick inte att öppna e-boken. Filen finns inte eller filen är inte tillgänglig"
-#: cps/editbooks.py:247
+#: cps/editbooks.py:246
msgid "edit metadata"
msgstr "redigera metadata"
-#: cps/editbooks.py:340 cps/editbooks.py:587
+#: cps/editbooks.py:325 cps/editbooks.py:572
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Filändelsen '%(ext)s' får inte laddas upp till den här servern"
-#: cps/editbooks.py:344 cps/editbooks.py:591
+#: cps/editbooks.py:329 cps/editbooks.py:576
msgid "File to be uploaded must have an extension"
msgstr "Filen som ska laddas upp måste ha en ändelse"
-#: cps/editbooks.py:356 cps/editbooks.py:611
+#: cps/editbooks.py:341 cps/editbooks.py:596
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Det gick inte att skapa sökväg %(path)s (behörighet nekad)."
-#: cps/editbooks.py:361
+#: cps/editbooks.py:346
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Det gick inte att lagra filen %(file)s."
-#: cps/editbooks.py:378
+#: cps/editbooks.py:363
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Filformatet %(ext)s lades till %(book)s"
-#: cps/editbooks.py:396
+#: cps/editbooks.py:381
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr "Det gick inte att skapa sökväg för omslag %(path)s (behörighet nekad)."
-#: cps/editbooks.py:404
+#: cps/editbooks.py:389
+msgid "Cover-file is not a valid image file"
+msgstr "Omslagsfilen är inte en giltig bildfil"
+
+#: cps/editbooks.py:392
#, python-format
msgid "Failed to store cover-file %(cover)s."
msgstr "Det gick inte att lagra omslagsfilen %(cover)s."
-#: cps/editbooks.py:407
-msgid "Cover-file is not a valid image file"
-msgstr "Omslagsfilen är inte en giltig bildfil"
-
-#: cps/editbooks.py:437 cps/editbooks.py:446
+#: cps/editbooks.py:422 cps/editbooks.py:431
msgid "unknown"
msgstr "okänd"
-#: cps/editbooks.py:478
+#: cps/editbooks.py:463
msgid "Cover is not a jpg file, can't save"
msgstr "Omslag är inte en jpg-fil, kan inte spara"
-#: cps/editbooks.py:526
+#: cps/editbooks.py:511
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "%(langname)s är inte ett giltigt språk"
-#: cps/editbooks.py:557
+#: cps/editbooks.py:542
msgid "Metadata successfully updated"
msgstr "Metadata uppdaterades"
-#: cps/editbooks.py:566
+#: cps/editbooks.py:551
msgid "Error editing book, please check logfile for details"
msgstr "Det gick inte att redigera boken, kontrollera loggfilen för mer information"
-#: cps/editbooks.py:616
+#: cps/editbooks.py:601
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr "Det gick inte att lagra filen %(file)s (behörighet nekad)."
-#: cps/editbooks.py:621
+#: cps/editbooks.py:606
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr "Det gick inte att ta bort filen %(file)s (behörighet nekad)."
-#: cps/editbooks.py:704
+#: cps/editbooks.py:689
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:733
+#: cps/editbooks.py:718
msgid "Source or destination format for conversion missing"
msgstr "Källa eller målformat för konvertering saknas"
-#: cps/editbooks.py:743
+#: cps/editbooks.py:728
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Boken är i kö för konvertering till %(book_format)s"
-#: cps/editbooks.py:747
+#: cps/editbooks.py:732
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Det gick inte att konvertera den här boken: %(res)s"
@@ -321,133 +330,133 @@ msgstr ""
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Återuppringningsdomänen är inte verifierad, följ stegen för att verifiera domänen i Google utvecklarkonsol"
-#: cps/helper.py:66
+#: cps/helper.py:84
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "%(format)s formatet hittades inte för bok-id: %(book)d"
-#: cps/helper.py:78
+#: cps/helper.py:96
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "%(format)s hittades inte på Google Drive: %(fn)s"
-#: cps/helper.py:85 cps/helper.py:193 cps/templates/detail.html:45
+#: cps/helper.py:103 cps/helper.py:211 cps/templates/detail.html:45
#: cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr "Skicka till Kindle"
-#: cps/helper.py:86 cps/helper.py:104 cps/helper.py:195
+#: cps/helper.py:104 cps/helper.py:122 cps/helper.py:213
msgid "This e-mail has been sent via Calibre-Web."
msgstr "Detta e-postmeddelande har skickats via Calibre-Web."
-#: cps/helper.py:97
+#: cps/helper.py:115
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "%(format)s hittades inte: %(fn)s"
-#: cps/helper.py:102
+#: cps/helper.py:120
msgid "Calibre-Web test e-mail"
msgstr "Calibre-Web test e-post"
-#: cps/helper.py:103
+#: cps/helper.py:121
msgid "Test e-mail"
msgstr "Test e-post"
-#: cps/helper.py:119
+#: cps/helper.py:137
msgid "Get Started with Calibre-Web"
msgstr "Kom igång med Calibre-Web"
-#: cps/helper.py:120
+#: cps/helper.py:138
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "Registrera e-post för användare: %(name)s"
-#: cps/helper.py:133 cps/helper.py:135 cps/helper.py:137 cps/helper.py:139
-#: cps/helper.py:145 cps/helper.py:147 cps/helper.py:149 cps/helper.py:151
+#: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
+#: cps/helper.py:163 cps/helper.py:165 cps/helper.py:167 cps/helper.py:169
#, python-format
msgid "Send %(format)s to Kindle"
msgstr ""
-#: cps/helper.py:155 cps/helper.py:159
+#: cps/helper.py:173 cps/helper.py:177
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr ""
-#: cps/helper.py:194
+#: cps/helper.py:212
#, python-format
msgid "E-mail: %(book)s"
msgstr "E-post: %(book)s"
-#: cps/helper.py:197
+#: cps/helper.py:215
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "Den begärda filen kunde inte läsas. Kanske fel behörigheter?"
-#: cps/helper.py:305
+#: cps/helper.py:323
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Byt namn på titel från: \"%(src)s\" till \"%(dest)s\" misslyckades med fel: %(error)s"
-#: cps/helper.py:315
+#: cps/helper.py:333
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Byt namn på författare från: \"%(src)s\" till \"%(dest)s\" misslyckades med fel: %(error)s"
-#: cps/helper.py:329
+#: cps/helper.py:347
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:355 cps/helper.py:365 cps/helper.py:373
+#: cps/helper.py:373 cps/helper.py:383 cps/helper.py:391
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Filen %(file)s hittades inte på Google Drive"
-#: cps/helper.py:394
+#: cps/helper.py:412
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "Boksökvägen %(path)s hittades inte på Google Drive"
-#: cps/helper.py:502
+#: cps/helper.py:520
msgid "Error excecuting UnRar"
msgstr "Fel vid körning av UnRar"
-#: cps/helper.py:504
+#: cps/helper.py:522
msgid "Unrar binary file not found"
msgstr "Unrar binärfil hittades inte"
-#: cps/helper.py:535
+#: cps/helper.py:553
msgid "Waiting"
msgstr "Väntar"
-#: cps/helper.py:537
+#: cps/helper.py:555
msgid "Failed"
msgstr "Misslyckades"
-#: cps/helper.py:539
+#: cps/helper.py:557
msgid "Started"
msgstr "Startad"
-#: cps/helper.py:541
+#: cps/helper.py:559
msgid "Finished"
msgstr "Klar"
-#: cps/helper.py:543
+#: cps/helper.py:561
msgid "Unknown Status"
msgstr "Okänd status"
-#: cps/helper.py:548
+#: cps/helper.py:566
msgid "E-mail: "
msgstr "E-post: "
-#: cps/helper.py:550 cps/helper.py:554
+#: cps/helper.py:568 cps/helper.py:572
msgid "Convert: "
msgstr "Konvertera: "
-#: cps/helper.py:552
+#: cps/helper.py:570
msgid "Upload: "
msgstr "Överför: "
-#: cps/helper.py:556
+#: cps/helper.py:574
msgid "Unknown Task: "
msgstr "Okänd uppgift: "
@@ -472,30 +481,26 @@ msgstr ""
msgid "Failed to fetch user info from Google."
msgstr ""
-#: cps/oauth_bb.py:229
-msgid "Public registration is not enabled"
-msgstr ""
-
-#: cps/oauth_bb.py:264
+#: cps/oauth_bb.py:265
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr ""
-#: cps/oauth_bb.py:268
+#: cps/oauth_bb.py:269
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr ""
-#: cps/oauth_bb.py:271
+#: cps/oauth_bb.py:272
#, python-format
msgid "Not linked to %(oauth)s."
msgstr ""
-#: cps/oauth_bb.py:299
+#: cps/oauth_bb.py:300
msgid "GitHub Oauth error, please retry later."
msgstr ""
-#: cps/oauth_bb.py:318
+#: cps/oauth_bb.py:319
msgid "Google Oauth error, please retry later."
msgstr ""
@@ -588,119 +593,127 @@ msgstr "Redigera en hylla"
msgid "successfully deleted shelf %(name)s"
msgstr "tog bort hyllan %(name)s"
-#: cps/shelf.py:286 cps/shelf.py:316
+#: cps/shelf.py:289
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Hylla: '%(name)s'"
-#: cps/shelf.py:289 cps/shelf.py:319
+#: cps/shelf.py:292
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Fel vid öppning av hyllan. Hylla finns inte eller är inte tillgänglig"
-#: cps/shelf.py:349
+#: cps/shelf.py:324
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Ändra ordning på hyllan: '%(name)s'"
-#: cps/ub.py:106
+#: cps/ub.py:107
msgid "Recently Added"
msgstr "Nyligen tillagda"
-#: cps/ub.py:108
+#: cps/ub.py:109
msgid "Show recent books"
msgstr "Visa senaste böcker"
-#: cps/templates/index.xml:17 cps/ub.py:109
+#: cps/templates/index.xml:17 cps/ub.py:110
msgid "Hot Books"
msgstr "Heta böcker"
-#: cps/ub.py:110
+#: cps/ub.py:111
msgid "Show hot books"
msgstr "Visa heta böcker"
-#: cps/templates/index.xml:24 cps/ub.py:113
+#: cps/templates/index.xml:24 cps/ub.py:114
msgid "Best rated Books"
msgstr "Bäst rankade böcker"
-#: cps/ub.py:115
+#: cps/ub.py:116
msgid "Show best rated books"
msgstr "Visa böcker med bästa betyg"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:116
-#: cps/web.py:1193
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:117
+#: cps/web.py:975
msgid "Read Books"
msgstr "Lästa böcker"
-#: cps/ub.py:118
+#: cps/ub.py:119
msgid "Show read and unread"
msgstr "Visa lästa och olästa"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:120
-#: cps/web.py:1196
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:121
+#: cps/web.py:979
msgid "Unread Books"
msgstr "Olästa böcker"
-#: cps/ub.py:122
+#: cps/ub.py:123
msgid "Show unread"
msgstr ""
-#: cps/ub.py:123
+#: cps/ub.py:124
msgid "Discover"
msgstr "Upptäck"
-#: cps/ub.py:125
+#: cps/ub.py:126
msgid "Show random books"
msgstr "Visa slumpmässiga böcker"
-#: cps/ub.py:126
+#: cps/ub.py:127
msgid "Categories"
msgstr "Kategorier"
-#: cps/ub.py:128
+#: cps/ub.py:129
msgid "Show category selection"
msgstr "Visa kategorival"
#: cps/templates/book_edit.html:75 cps/templates/search_form.html:53
-#: cps/ub.py:129
+#: cps/ub.py:130
msgid "Series"
msgstr "Serier"
-#: cps/ub.py:131
+#: cps/ub.py:132
msgid "Show series selection"
msgstr "Visa serieval"
-#: cps/templates/index.xml:61 cps/ub.py:132
+#: cps/templates/index.xml:61 cps/ub.py:133
msgid "Authors"
msgstr "Författare"
-#: cps/ub.py:134
+#: cps/ub.py:135
msgid "Show author selection"
msgstr "Visa författarval"
-#: cps/templates/index.xml:68 cps/ub.py:136
+#: cps/templates/index.xml:68 cps/ub.py:137
msgid "Publishers"
msgstr "Förlag"
-#: cps/ub.py:138
+#: cps/ub.py:139
msgid "Show publisher selection"
msgstr "Visa urval av förlag"
-#: cps/templates/search_form.html:74 cps/ub.py:139
+#: cps/templates/search_form.html:74 cps/ub.py:140
msgid "Languages"
msgstr "Språk"
-#: cps/ub.py:142
+#: cps/ub.py:143
msgid "Show language selection"
msgstr "Visa språkval"
-#: cps/ub.py:143
+#: cps/ub.py:144
msgid "Ratings"
msgstr ""
-#: cps/ub.py:145
+#: cps/ub.py:146
msgid "Show ratings selection"
msgstr ""
+#: cps/ub.py:147
+msgid "File formats"
+msgstr ""
+
+#: cps/ub.py:149
+msgid "Show file formats selection"
+msgstr ""
+
#: cps/updater.py:255 cps/updater.py:417 cps/updater.py:430
msgid "Unexpected data while reading update information"
msgstr "Oväntade data vid läsning av uppdateringsinformation"
@@ -726,196 +739,193 @@ msgstr ""
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
-#: cps/web.py:497
+#: cps/web.py:464
msgid "Recently Added Books"
msgstr "Nyligen tillagda böcker"
-#: cps/web.py:506
-msgid "Newest Books"
-msgstr "Nyaste böcker"
-
-#: cps/web.py:515
-msgid "Oldest Books"
-msgstr "Äldsta böcker"
-
-#: cps/web.py:524
-msgid "Books (A-Z)"
-msgstr "Böcker (A-Ö)"
-
-#: cps/web.py:533
-msgid "Books (Z-A)"
-msgstr "Böcker (Ö-A)"
-
-#: cps/web.py:562
-msgid "Hot Books (most downloaded)"
-msgstr "Heta böcker (mest hämtade)"
-
-#: cps/web.py:575
+#: cps/web.py:491
msgid "Best rated books"
msgstr "Bäst rankade böcker"
-#: cps/templates/index.xml:38 cps/web.py:588
+#: cps/templates/index.xml:38 cps/web.py:499
msgid "Random Books"
msgstr "Slumpmässiga böcker"
-#: cps/web.py:618 cps/web.py:925 cps/web.py:1206
+#: cps/web.py:513
+msgid "Books"
+msgstr ""
+
+#: cps/web.py:540
+msgid "Hot Books (most downloaded)"
+msgstr "Heta böcker (mest hämtade)"
+
+#: cps/web.py:568 cps/web.py:1306 cps/web.py:1409
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Fel vid öppnande av e-bok. Filen finns inte eller filen är inte tillgänglig:"
-#: cps/web.py:650
+#: cps/web.py:599
msgid "Publisher list"
msgstr "Lista över förlag"
-#: cps/web.py:666
+#: cps/web.py:614
#, python-format
msgid "Publisher: %(name)s"
msgstr "Förlag: %(name)s"
-#: cps/templates/index.xml:82 cps/web.py:704
+#: cps/templates/index.xml:82 cps/web.py:630
msgid "Series list"
msgstr "Serielista"
-#: cps/web.py:718
+#: cps/web.py:644
#, python-format
msgid "Series: %(serie)s"
msgstr "Serier: %(serie)s"
-#: cps/web.py:734
+#: cps/web.py:658
msgid "Ratings list"
msgstr ""
-#: cps/web.py:748
+#: cps/web.py:672
#, python-format
-msgid "Ratings: %(serie)s"
+msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:776
+#: cps/web.py:685
+msgid "File formats list"
+msgstr ""
+
+#: cps/web.py:699
+#, python-format
+msgid "File format: %(format)s"
+msgstr ""
+
+#: cps/web.py:727
msgid "Available languages"
msgstr "Tillgängliga språk"
-#: cps/web.py:796
+#: cps/web.py:747
#, python-format
msgid "Language: %(name)s"
msgstr "Språk: %(name)s"
-#: cps/templates/index.xml:75 cps/web.py:810
+#: cps/templates/index.xml:75 cps/web.py:761
msgid "Category list"
msgstr "Kategorilista"
-#: cps/web.py:825
+#: cps/web.py:776
#, python-format
msgid "Category: %(name)s"
msgstr "Kategori: %(name)s"
-#: cps/templates/layout.html:73 cps/web.py:957
+#: cps/templates/layout.html:73 cps/web.py:787
msgid "Tasks"
msgstr "Uppgifter"
-#: cps/web.py:1028
+#: cps/web.py:851
msgid "Published after "
msgstr "Publicerad efter "
-#: cps/web.py:1035
+#: cps/web.py:858
msgid "Published before "
msgstr "Publicerad före "
-#: cps/web.py:1049
+#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Betyg <= %(rating)s"
-#: cps/web.py:1051
+#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Betyg >= %(rating)s"
-#: cps/web.py:1112 cps/web.py:1121
+#: cps/web.py:935 cps/web.py:944
msgid "search"
msgstr "sök"
-#: cps/web.py:1216 cps/web.py:1218 cps/web.py:1220 cps/web.py:1224
-#: cps/web.py:1228 cps/web.py:1232 cps/web.py:1244
-msgid "Read a Book"
-msgstr "Läs en bok"
+#: cps/web.py:1028
+msgid "Please configure the SMTP mail settings first..."
+msgstr "Konfigurera SMTP-postinställningarna först..."
-#: cps/web.py:1304 cps/web.py:1329 cps/web.py:1334 cps/web.py:1339
-#: cps/web.py:1343
+#: cps/web.py:1033
+#, python-format
+msgid "Book successfully queued for sending to %(kindlemail)s"
+msgstr "Boken är i kö för att skicka till %(kindlemail)s"
+
+#: cps/web.py:1037
+#, python-format
+msgid "There was an error sending this book: %(res)s"
+msgstr "Det gick inte att skicka den här boken: %(res)s"
+
+#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1086 cps/web.py:1091
+#: cps/web.py:1095
msgid "register"
msgstr "registrera"
-#: cps/web.py:1331
+#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Din e-post är inte tillåten att registrera"
-#: cps/web.py:1335
+#: cps/web.py:1087
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Bekräftelsemail skickades till ditt e-postkonto."
-#: cps/web.py:1338
+#: cps/web.py:1090
msgid "This username or e-mail address is already in use."
msgstr "Det här användarnamnet eller e-postadressen är redan i bruk."
-#: cps/web.py:1361 cps/web.py:1373
+#: cps/web.py:1113 cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1366 cps/web.py:1378
+#: cps/web.py:1118 cps/web.py:1130
msgid "Wrong Username or Password"
msgstr "Fel användarnamn eller lösenord"
-#: cps/web.py:1369
+#: cps/web.py:1121
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
-#: cps/web.py:1384 cps/web.py:1406
+#: cps/web.py:1136 cps/web.py:1158
msgid "login"
msgstr "logga in"
-#: cps/web.py:1418 cps/web.py:1449
+#: cps/web.py:1170 cps/web.py:1201
msgid "Token not found"
msgstr "Token hittades inte"
-#: cps/web.py:1426 cps/web.py:1457
+#: cps/web.py:1178 cps/web.py:1209
msgid "Token has expired"
msgstr "Token har löpt ut"
-#: cps/web.py:1434
+#: cps/web.py:1186
msgid "Success! Please return to your device"
msgstr "Lyckades! Vänligen återvänd till din enhet"
-#: cps/web.py:1470
+#: cps/web.py:1222
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "du är nu inloggad som: \"%(nickname)s\""
-#: cps/web.py:1484
-msgid "Please configure the SMTP mail settings first..."
-msgstr "Konfigurera SMTP-postinställningarna först..."
-
-#: cps/web.py:1489
-#, python-format
-msgid "Book successfully queued for sending to %(kindlemail)s"
-msgstr "Boken är i kö för att skicka till %(kindlemail)s"
-
-#: cps/web.py:1493
-#, python-format
-msgid "There was an error sending this book: %(res)s"
-msgstr "Det gick inte att skicka den här boken: %(res)s"
-
-#: cps/web.py:1530 cps/web.py:1555 cps/web.py:1559
+#: cps/web.py:1263 cps/web.py:1290 cps/web.py:1294
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)ss profil"
-#: cps/web.py:1553
+#: cps/web.py:1287
msgid "Found an existing account for this e-mail address."
msgstr "Hittade ett befintligt konto för den här e-postadressen."
-#: cps/web.py:1557
+#: cps/web.py:1292
msgid "Profile updated"
msgstr "Profilen uppdaterad"
+#: cps/web.py:1316 cps/web.py:1318 cps/web.py:1320 cps/web.py:1324
+#: cps/web.py:1328 cps/web.py:1332 cps/web.py:1344
+msgid "Read a Book"
+msgstr "Läs en bok"
+
#: cps/worker.py:308
#, python-format
msgid "Ebook-converter failed: %(error)s"
@@ -1083,7 +1093,7 @@ msgstr "Ok"
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:77
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
-#: cps/templates/user_edit.html:127
+#: cps/templates/user_edit.html:128
msgid "Back"
msgstr "Tillbaka"
@@ -1103,14 +1113,19 @@ msgstr "via"
msgid "In Library"
msgstr "I biblioteket"
-#: cps/templates/author.html:50 cps/templates/author.html:97
-#: cps/templates/discover.html:28 cps/templates/index.html:30
-#: cps/templates/index.html:97 cps/templates/search.html:55
+#: cps/templates/author.html:34 cps/templates/list.html:9
+#: cps/templates/search.html:41
+msgid "All"
+msgstr ""
+
+#: cps/templates/author.html:62 cps/templates/author.html:109
+#: cps/templates/discover.html:27 cps/templates/index.html:30
+#: cps/templates/index.html:97 cps/templates/search.html:67
#: cps/templates/shelf.html:40
msgid "reduce"
msgstr ""
-#: cps/templates/author.html:81
+#: cps/templates/author.html:93
msgid "More by"
msgstr "Mer av"
@@ -1218,7 +1233,7 @@ msgstr "Hämta metadata"
#: cps/templates/book_edit.html:177 cps/templates/config_edit.html:279
#: cps/templates/config_view_edit.html:140 cps/templates/login.html:20
#: cps/templates/search_form.html:150 cps/templates/shelf_edit.html:17
-#: cps/templates/user_edit.html:125
+#: cps/templates/user_edit.html:126
msgid "Submit"
msgstr "Skicka"
@@ -1254,8 +1269,8 @@ msgstr "Klicka på omslaget för att läsa in metadata till formuläret"
msgid "Loading..."
msgstr "Läser in..."
-#: cps/templates/book_edit.html:239 cps/templates/layout.html:199
-#: cps/templates/layout.html:231
+#: cps/templates/book_edit.html:239 cps/templates/layout.html:187
+#: cps/templates/layout.html:219
msgid "Close"
msgstr "Stäng"
@@ -1484,8 +1499,7 @@ msgstr "Logga in"
msgid "View Configuration"
msgstr "Visa konfiguration"
-#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:132
-#: cps/templates/layout.html:133 cps/templates/shelf_edit.html:7
+#: cps/templates/config_view_edit.html:19 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "Titel"
@@ -1529,31 +1543,31 @@ msgstr "Taggar för vuxeninnehåll"
msgid "Default settings for new users"
msgstr "Standardinställningar för nya användare"
-#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:82
+#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Adminstratör användare"
-#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:91
+#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:92
msgid "Allow Downloads"
msgstr "Tillåt Hämtningar"
-#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:95
+#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:96
msgid "Allow Uploads"
msgstr "Tillåt Uppladdningar"
-#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:99
+#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:100
msgid "Allow Edit"
msgstr "Tillåt Redigera"
-#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:103
+#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:104
msgid "Allow Delete books"
msgstr "Tillåt Ta bort böcker"
-#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:108
+#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:109
msgid "Allow Changing Password"
msgstr "Tillåt Ändra lösenord"
-#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:112
+#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:113
msgid "Allow Editing Public Shelfs"
msgstr "Tillåt Redigering av offentliga hyllor"
@@ -1561,11 +1575,11 @@ msgstr "Tillåt Redigering av offentliga hyllor"
msgid "Default visibilities for new users"
msgstr "Standardvisibiliteter för nya användare"
-#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:74
+#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "Visa slumpmässiga böcker i detaljvyn"
-#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:87
+#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:88
msgid "Show mature content"
msgstr "Visa vuxeninnehåll"
@@ -1669,7 +1683,7 @@ msgstr "Lägg till"
msgid "Do you really want to delete this domain rule?"
msgstr "Är du säker på att du vill ta bort den här domänregeln?"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:183
+#: cps/templates/feed.xml:21 cps/templates/layout.html:171
msgid "Next"
msgstr "Nästa"
@@ -1686,8 +1700,8 @@ msgstr "Tillbaka till hemmet"
msgid "Discover (Random Books)"
msgstr "Upptäck (slumpmässiga böcker)"
-#: cps/templates/index.html:69 cps/templates/list.html:8
-msgid "All"
+#: cps/templates/index.html:69
+msgid "Group by series"
msgstr ""
#: cps/templates/index.xml:6
@@ -1730,7 +1744,7 @@ msgstr "Böcker ordnade efter kategori"
msgid "Books ordered by series"
msgstr "Böcker ordnade efter serier"
-#: cps/templates/index.xml:89 cps/templates/layout.html:144
+#: cps/templates/index.xml:89 cps/templates/layout.html:132
msgid "Public Shelves"
msgstr "Offentliga hyllor"
@@ -1738,7 +1752,7 @@ msgstr "Offentliga hyllor"
msgid "Books organized in public shelfs, visible to everyone"
msgstr "Böcker organiserade i offentliga hyllor, synliga för alla"
-#: cps/templates/index.xml:97 cps/templates/layout.html:148
+#: cps/templates/index.xml:97 cps/templates/layout.html:136
msgid "Your Shelves"
msgstr "Dina hyllor"
@@ -1775,7 +1789,7 @@ msgstr "Logga ut"
msgid "Register"
msgstr "Registrera"
-#: cps/templates/layout.html:111 cps/templates/layout.html:230
+#: cps/templates/layout.html:111 cps/templates/layout.html:218
msgid "Uploading..."
msgstr "Laddar upp..."
@@ -1787,52 +1801,27 @@ msgstr "uppdatera inte sidan"
msgid "Browse"
msgstr "Bläddra"
-#: cps/templates/layout.html:126
-msgid "Sorted Books"
-msgstr "Sorterade böcker"
-
-#: cps/templates/layout.html:130 cps/templates/layout.html:131
-#: cps/templates/layout.html:132 cps/templates/layout.html:133
-msgid "Sort By"
-msgstr "Sortera efter"
-
-#: cps/templates/layout.html:130
-msgid "Newest"
-msgstr "Nyast"
-
-#: cps/templates/layout.html:131
-msgid "Oldest"
-msgstr "Äldst"
-
-#: cps/templates/layout.html:132
-msgid "Ascending"
-msgstr "Stigande"
-
-#: cps/templates/layout.html:133
-msgid "Descending"
-msgstr "Fallande"
-
-#: cps/templates/layout.html:153
+#: cps/templates/layout.html:141
msgid "Create a Shelf"
msgstr "Skapa en hylla"
-#: cps/templates/layout.html:154 cps/templates/stats.html:3
+#: cps/templates/layout.html:142 cps/templates/stats.html:3
msgid "About"
msgstr "Om"
-#: cps/templates/layout.html:168
+#: cps/templates/layout.html:156
msgid "Previous"
msgstr "Föregående"
-#: cps/templates/layout.html:195
+#: cps/templates/layout.html:183
msgid "Book Details"
msgstr "Bokdetaljer"
-#: cps/templates/layout.html:229
+#: cps/templates/layout.html:217
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:232
+#: cps/templates/layout.html:220
msgid "Error"
msgstr ""
@@ -2130,27 +2119,31 @@ msgstr "Återställ användarlösenordet"
msgid "Kindle E-Mail"
msgstr "Kindle e-post"
-#: cps/templates/user_edit.html:39
+#: cps/templates/user_edit.html:40
msgid "Show books with language"
msgstr "Visa böcker med språk"
-#: cps/templates/user_edit.html:41
+#: cps/templates/user_edit.html:42
msgid "Show all"
msgstr "Visa alla"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:52
msgid "OAuth Settings"
msgstr ""
+#: cps/templates/user_edit.html:54
+msgid "Link"
+msgstr ""
+
#: cps/templates/user_edit.html:56
msgid "Unlink"
msgstr ""
-#: cps/templates/user_edit.html:119
+#: cps/templates/user_edit.html:120
msgid "Delete this user"
msgstr "Ta bort den här användaren"
-#: cps/templates/user_edit.html:134
+#: cps/templates/user_edit.html:135
msgid "Recent Downloads"
msgstr "Senaste hämtningar"
@@ -2214,3 +2207,39 @@ msgstr "Senaste hämtningar"
#~ msgid "Show sorted books"
#~ msgstr "Visa sorterade böcker"
+#~ msgid "Public registration is not enabled"
+#~ msgstr ""
+
+#~ msgid "Newest Books"
+#~ msgstr "Nyaste böcker"
+
+#~ msgid "Oldest Books"
+#~ msgstr "Äldsta böcker"
+
+#~ msgid "Books (A-Z)"
+#~ msgstr "Böcker (A-Ö)"
+
+#~ msgid "Books (Z-A)"
+#~ msgstr "Böcker (Ö-A)"
+
+#~ msgid "Ratings: %(serie)s"
+#~ msgstr ""
+
+#~ msgid "Sorted Books"
+#~ msgstr "Sorterade böcker"
+
+#~ msgid "Sort By"
+#~ msgstr "Sortera efter"
+
+#~ msgid "Newest"
+#~ msgstr "Nyast"
+
+#~ msgid "Oldest"
+#~ msgstr "Äldst"
+
+#~ msgid "Ascending"
+#~ msgstr "Stigande"
+
+#~ msgid "Descending"
+#~ msgstr "Fallande"
+
diff --git a/cps/translations/uk/LC_MESSAGES/messages.mo b/cps/translations/uk/LC_MESSAGES/messages.mo
index 189747b4..e839f5e0 100644
Binary files a/cps/translations/uk/LC_MESSAGES/messages.mo and b/cps/translations/uk/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/uk/LC_MESSAGES/messages.po b/cps/translations/uk/LC_MESSAGES/messages.po
index 9c6e03ca..800c348b 100644
--- a/cps/translations/uk/LC_MESSAGES/messages.po
+++ b/cps/translations/uk/LC_MESSAGES/messages.po
@@ -6,11 +6,12 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
-"POT-Creation-Date: 2019-03-10 08:24+0100\n"
+"POT-Creation-Date: 2019-03-24 08:25+0100\n"
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
"Last-Translator: ABIS Team \n"
-"Language: ua\n"
+"Language: uk\n"
"Language-Team: \n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -20,185 +21,194 @@ msgstr ""
msgid "Statistics"
msgstr "Статистика"
-#: cps/admin.py:96
+#: cps/admin.py:97
msgid "Server restarted, please reload page"
msgstr "Сервер перезавантажено, будь-ласка, перезавантажте сторінку"
-#: cps/admin.py:99
+#: cps/admin.py:100
msgid "Performing shutdown of server, please close window"
msgstr "Виконується зупинка серверу, будь-ласка, закрийте вікно"
-#: cps/admin.py:119 cps/updater.py:498
+#: cps/admin.py:120 cps/updater.py:498
msgid "Unknown"
msgstr "Невідомий"
-#: cps/admin.py:138
+#: cps/admin.py:139
msgid "Admin page"
msgstr "Сторінка адміністратора"
-#: cps/admin.py:203 cps/admin.py:474
+#: cps/admin.py:206 cps/admin.py:484
msgid "Calibre-Web configuration updated"
msgstr ""
-#: cps/admin.py:217 cps/templates/admin.html:100
+#: cps/admin.py:220 cps/templates/admin.html:100
msgid "UI Configuration"
msgstr "Конфігурація інтерфейсу"
-#: cps/admin.py:290
+#: cps/admin.py:293
msgid "Import of optional Google Drive requirements missing"
msgstr "Імпорт додаткових вимог Google Drive відсутній"
-#: cps/admin.py:293
+#: cps/admin.py:296
msgid "client_secrets.json is missing or not readable"
msgstr "Неможливо зчитати client_secrets.json або він відсутній"
-#: cps/admin.py:298 cps/admin.py:327
+#: cps/admin.py:301 cps/admin.py:330
msgid "client_secrets.json is not configured for web application"
msgstr "Неможливо зконфігурувати client_secrets.json для веб-додатку"
-#: cps/admin.py:330 cps/admin.py:356 cps/admin.py:368 cps/admin.py:393
-#: cps/admin.py:451 cps/admin.py:464 cps/admin.py:482 cps/admin.py:489
-#: cps/admin.py:504 cps/templates/admin.html:99
+#: cps/admin.py:333 cps/admin.py:359 cps/admin.py:371 cps/admin.py:396
+#: cps/admin.py:424 cps/admin.py:438 cps/admin.py:461 cps/admin.py:474
+#: cps/admin.py:492 cps/admin.py:499 cps/admin.py:514
+#: cps/templates/admin.html:99
msgid "Basic Configuration"
msgstr "Настройки сервера"
-#: cps/admin.py:353
+#: cps/admin.py:356
msgid "Keyfile location is not valid, please enter correct path"
msgstr "Невідомий шлях до Keyfile. Будь-ласка введіть коректний"
-#: cps/admin.py:365
+#: cps/admin.py:368
msgid "Certfile location is not valid, please enter correct path"
msgstr "Невідомий шлях до Certfile. Будь-ласка введіть коректний"
-#: cps/admin.py:390
+#: cps/admin.py:393
msgid "Please enter a LDAP provider and a DN"
msgstr ""
-#: cps/admin.py:448
+#: cps/admin.py:421
+msgid "Please enter Github oauth credentials"
+msgstr ""
+
+#: cps/admin.py:435
+msgid "Please enter Google oauth credentials"
+msgstr ""
+
+#: cps/admin.py:458
msgid "Logfile location is not valid, please enter correct path"
msgstr "Невідомий шлях до Logfile. Будь-ласка введіть коректний"
-#: cps/admin.py:486
+#: cps/admin.py:496
msgid "DB location is not valid, please enter correct path"
msgstr "Невідомий шлях до БД. Будь-ласка введіть коректний"
-#: cps/admin.py:546 cps/web.py:1303
+#: cps/admin.py:556 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Будь-ласка, заповніть всі поля!"
-#: cps/admin.py:548 cps/admin.py:554 cps/admin.py:570
+#: cps/admin.py:558 cps/admin.py:564 cps/admin.py:580
#: cps/templates/admin.html:33
msgid "Add new user"
msgstr "Додати користувача"
-#: cps/admin.py:552 cps/web.py:1528
+#: cps/admin.py:562 cps/web.py:1261
msgid "E-mail is not from valid domain"
msgstr ""
-#: cps/admin.py:560
+#: cps/admin.py:570
#, python-format
msgid "User '%(user)s' created"
msgstr "Користувач '%(user)s' додан"
-#: cps/admin.py:564
+#: cps/admin.py:574
msgid "Found an existing account for this e-mail address or nickname."
msgstr ""
-#: cps/admin.py:595
+#: cps/admin.py:605
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr ""
-#: cps/admin.py:598
+#: cps/admin.py:608
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr ""
-#: cps/admin.py:600 cps/web.py:1495
+#: cps/admin.py:610 cps/web.py:1039
msgid "Please configure your kindle e-mail address first..."
msgstr ""
-#: cps/admin.py:602
+#: cps/admin.py:612
msgid "E-mail server settings updated"
msgstr ""
-#: cps/admin.py:603
+#: cps/admin.py:613
msgid "Edit e-mail server settings"
msgstr ""
-#: cps/admin.py:628
+#: cps/admin.py:638
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Користувача '%(nick)s' видалено"
-#: cps/admin.py:694
+#: cps/admin.py:704
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Користувача '%(nick)s' оновлено"
-#: cps/admin.py:697
+#: cps/admin.py:707
msgid "An unknown error occured."
msgstr "Сталась невідома помилка"
-#: cps/admin.py:700
+#: cps/admin.py:710
#, python-format
msgid "Edit User %(nick)s"
msgstr "Змінити користувача %(nick)s"
-#: cps/admin.py:716
+#: cps/admin.py:726
#, python-format
msgid "Password for user %(user)s reset"
msgstr ""
-#: cps/admin.py:719 cps/web.py:1328
+#: cps/admin.py:729 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr ""
-#: cps/admin.py:738
+#: cps/admin.py:748
msgid "Requesting update package"
msgstr "Перевірка оновлень"
-#: cps/admin.py:739
+#: cps/admin.py:749
msgid "Downloading update package"
msgstr "Завантаження оновлень"
-#: cps/admin.py:740
+#: cps/admin.py:750
msgid "Unzipping update package"
msgstr "Розпакування оновлення"
-#: cps/admin.py:741
+#: cps/admin.py:751
msgid "Replacing files"
msgstr ""
-#: cps/admin.py:742
+#: cps/admin.py:752
msgid "Database connections are closed"
msgstr "З'єднання з базою даних закрите"
-#: cps/admin.py:743
+#: cps/admin.py:753
msgid "Stopping server"
msgstr ""
-#: cps/admin.py:744
+#: cps/admin.py:754
msgid "Update finished, please press okay and reload page"
msgstr "Оновлення встановлені, натисніть ok і перезавантажте сторінку"
-#: cps/admin.py:745 cps/admin.py:746 cps/admin.py:747 cps/admin.py:748
+#: cps/admin.py:755 cps/admin.py:756 cps/admin.py:757 cps/admin.py:758
msgid "Update failed:"
msgstr ""
-#: cps/admin.py:745 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
+#: cps/admin.py:755 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
msgid "HTTP Error"
msgstr ""
-#: cps/admin.py:746 cps/updater.py:277 cps/updater.py:513
+#: cps/admin.py:756 cps/updater.py:277 cps/updater.py:513
msgid "Connection error"
msgstr ""
-#: cps/admin.py:747 cps/updater.py:279 cps/updater.py:515
+#: cps/admin.py:757 cps/updater.py:279 cps/updater.py:515
msgid "Timeout while establishing connection"
msgstr ""
-#: cps/admin.py:748 cps/updater.py:281 cps/updater.py:517
+#: cps/admin.py:758 cps/updater.py:281 cps/updater.py:517
msgid "General error"
msgstr ""
@@ -215,98 +225,98 @@ msgstr "Відсутній дозвіл на виконання"
msgid "not configured"
msgstr ""
-#: cps/editbooks.py:219 cps/editbooks.py:425
+#: cps/editbooks.py:218 cps/editbooks.py:410
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Сталась помилка при відкриванні eBook. Файл не існує або відсутній доступ до нього"
-#: cps/editbooks.py:247
+#: cps/editbooks.py:246
msgid "edit metadata"
msgstr "змінити метадані"
-#: cps/editbooks.py:340 cps/editbooks.py:587
+#: cps/editbooks.py:325 cps/editbooks.py:572
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr ""
-#: cps/editbooks.py:344 cps/editbooks.py:591
+#: cps/editbooks.py:329 cps/editbooks.py:576
msgid "File to be uploaded must have an extension"
msgstr "Завантажувальний файл повинен мати розширення"
-#: cps/editbooks.py:356 cps/editbooks.py:611
+#: cps/editbooks.py:341 cps/editbooks.py:596
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:361
+#: cps/editbooks.py:346
#, python-format
msgid "Failed to store file %(file)s."
msgstr ""
-#: cps/editbooks.py:378
+#: cps/editbooks.py:363
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr ""
-#: cps/editbooks.py:396
+#: cps/editbooks.py:381
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:404
-#, python-format
-msgid "Failed to store cover-file %(cover)s."
+#: cps/editbooks.py:389
+msgid "Cover-file is not a valid image file"
msgstr ""
-#: cps/editbooks.py:407
-msgid "Cover-file is not a valid image file"
+#: cps/editbooks.py:392
+#, python-format
+msgid "Failed to store cover-file %(cover)s."
msgstr ""
-#: cps/editbooks.py:437 cps/editbooks.py:446
+#: cps/editbooks.py:422 cps/editbooks.py:431
msgid "unknown"
msgstr "невідомий"
-#: cps/editbooks.py:478
+#: cps/editbooks.py:463
msgid "Cover is not a jpg file, can't save"
msgstr "Обкладинка не є .jpg файлом. Неможливо зберегти"
-#: cps/editbooks.py:526
+#: cps/editbooks.py:511
#, python-format
msgid "%(langname)s is not a valid language"
msgstr ""
-#: cps/editbooks.py:557
+#: cps/editbooks.py:542
msgid "Metadata successfully updated"
msgstr ""
-#: cps/editbooks.py:566
+#: cps/editbooks.py:551
msgid "Error editing book, please check logfile for details"
msgstr "Сталась помилка при редагуванні книги. Будь-ласка, перевірте лог-файл для деталей"
-#: cps/editbooks.py:616
+#: cps/editbooks.py:601
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:621
+#: cps/editbooks.py:606
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:704
+#: cps/editbooks.py:689
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:733
+#: cps/editbooks.py:718
msgid "Source or destination format for conversion missing"
msgstr ""
-#: cps/editbooks.py:743
+#: cps/editbooks.py:728
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr ""
-#: cps/editbooks.py:747
+#: cps/editbooks.py:732
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr ""
@@ -319,133 +329,133 @@ msgstr ""
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Домен зворотнього зв'язку не підтверджено. Виконайте дії для підтвердження домену, будь-ласка"
-#: cps/helper.py:66
+#: cps/helper.py:84
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr ""
-#: cps/helper.py:78
+#: cps/helper.py:96
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr ""
-#: cps/helper.py:85 cps/helper.py:193 cps/templates/detail.html:45
+#: cps/helper.py:103 cps/helper.py:211 cps/templates/detail.html:45
#: cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr "Відправити на Kindle"
-#: cps/helper.py:86 cps/helper.py:104 cps/helper.py:195
+#: cps/helper.py:104 cps/helper.py:122 cps/helper.py:213
msgid "This e-mail has been sent via Calibre-Web."
msgstr ""
-#: cps/helper.py:97
+#: cps/helper.py:115
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr ""
-#: cps/helper.py:102
+#: cps/helper.py:120
msgid "Calibre-Web test e-mail"
msgstr ""
-#: cps/helper.py:103
+#: cps/helper.py:121
msgid "Test e-mail"
msgstr ""
-#: cps/helper.py:119
+#: cps/helper.py:137
msgid "Get Started with Calibre-Web"
msgstr ""
-#: cps/helper.py:120
+#: cps/helper.py:138
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr ""
-#: cps/helper.py:133 cps/helper.py:135 cps/helper.py:137 cps/helper.py:139
-#: cps/helper.py:145 cps/helper.py:147 cps/helper.py:149 cps/helper.py:151
+#: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
+#: cps/helper.py:163 cps/helper.py:165 cps/helper.py:167 cps/helper.py:169
#, python-format
msgid "Send %(format)s to Kindle"
msgstr ""
-#: cps/helper.py:155 cps/helper.py:159
+#: cps/helper.py:173 cps/helper.py:177
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr ""
-#: cps/helper.py:194
+#: cps/helper.py:212
#, python-format
msgid "E-mail: %(book)s"
msgstr ""
-#: cps/helper.py:197
+#: cps/helper.py:215
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr ""
-#: cps/helper.py:305
+#: cps/helper.py:323
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:315
+#: cps/helper.py:333
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:329
+#: cps/helper.py:347
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:355 cps/helper.py:365 cps/helper.py:373
+#: cps/helper.py:373 cps/helper.py:383 cps/helper.py:391
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:394
+#: cps/helper.py:412
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:502
+#: cps/helper.py:520
msgid "Error excecuting UnRar"
msgstr ""
-#: cps/helper.py:504
+#: cps/helper.py:522
msgid "Unrar binary file not found"
msgstr ""
-#: cps/helper.py:535
+#: cps/helper.py:553
msgid "Waiting"
msgstr ""
-#: cps/helper.py:537
+#: cps/helper.py:555
msgid "Failed"
msgstr ""
-#: cps/helper.py:539
+#: cps/helper.py:557
msgid "Started"
msgstr ""
-#: cps/helper.py:541
+#: cps/helper.py:559
msgid "Finished"
msgstr ""
-#: cps/helper.py:543
+#: cps/helper.py:561
msgid "Unknown Status"
msgstr ""
-#: cps/helper.py:548
+#: cps/helper.py:566
msgid "E-mail: "
msgstr ""
-#: cps/helper.py:550 cps/helper.py:554
+#: cps/helper.py:568 cps/helper.py:572
msgid "Convert: "
msgstr ""
-#: cps/helper.py:552
+#: cps/helper.py:570
msgid "Upload: "
msgstr ""
-#: cps/helper.py:556
+#: cps/helper.py:574
msgid "Unknown Task: "
msgstr ""
@@ -470,30 +480,26 @@ msgstr ""
msgid "Failed to fetch user info from Google."
msgstr ""
-#: cps/oauth_bb.py:229
-msgid "Public registration is not enabled"
-msgstr ""
-
-#: cps/oauth_bb.py:264
+#: cps/oauth_bb.py:265
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr ""
-#: cps/oauth_bb.py:268
+#: cps/oauth_bb.py:269
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr ""
-#: cps/oauth_bb.py:271
+#: cps/oauth_bb.py:272
#, python-format
msgid "Not linked to %(oauth)s."
msgstr ""
-#: cps/oauth_bb.py:299
+#: cps/oauth_bb.py:300
msgid "GitHub Oauth error, please retry later."
msgstr ""
-#: cps/oauth_bb.py:318
+#: cps/oauth_bb.py:319
msgid "Google Oauth error, please retry later."
msgstr ""
@@ -586,119 +592,127 @@ msgstr "Змінити книжкову полицю"
msgid "successfully deleted shelf %(name)s"
msgstr "Книжкова полиця %(name)s видалена"
-#: cps/shelf.py:286 cps/shelf.py:316
+#: cps/shelf.py:289
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Книжкова полиця: '%(name)s'"
-#: cps/shelf.py:289 cps/shelf.py:319
+#: cps/shelf.py:292
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Помилка при відкриванні полиці. Полиця не існує або до неї відсутній доступ"
-#: cps/shelf.py:349
+#: cps/shelf.py:324
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Змінити розташування книжкової полиці '%(name)s'"
-#: cps/ub.py:106
+#: cps/ub.py:107
msgid "Recently Added"
msgstr "Останні додані"
-#: cps/ub.py:108
+#: cps/ub.py:109
msgid "Show recent books"
msgstr "Показувати останні книги"
-#: cps/templates/index.xml:17 cps/ub.py:109
+#: cps/templates/index.xml:17 cps/ub.py:110
msgid "Hot Books"
msgstr "Популярні книги"
-#: cps/ub.py:110
+#: cps/ub.py:111
msgid "Show hot books"
msgstr "Показувати популярні книги"
-#: cps/templates/index.xml:24 cps/ub.py:113
+#: cps/templates/index.xml:24 cps/ub.py:114
msgid "Best rated Books"
msgstr "Книги з найкращим рейтингом"
-#: cps/ub.py:115
+#: cps/ub.py:116
msgid "Show best rated books"
msgstr "Показувати книги з найвищим рейтингом"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:116
-#: cps/web.py:1193
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:117
+#: cps/web.py:975
msgid "Read Books"
msgstr "Прочитані книги"
-#: cps/ub.py:118
+#: cps/ub.py:119
msgid "Show read and unread"
msgstr "Показувати прочитані та непрочитані книги"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:120
-#: cps/web.py:1196
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:121
+#: cps/web.py:979
msgid "Unread Books"
msgstr "Непрочитані книги"
-#: cps/ub.py:122
+#: cps/ub.py:123
msgid "Show unread"
msgstr ""
-#: cps/ub.py:123
+#: cps/ub.py:124
msgid "Discover"
msgstr "Огляд"
-#: cps/ub.py:125
+#: cps/ub.py:126
msgid "Show random books"
msgstr "Показувати випадкові книги"
-#: cps/ub.py:126
+#: cps/ub.py:127
msgid "Categories"
msgstr "Категорії"
-#: cps/ub.py:128
+#: cps/ub.py:129
msgid "Show category selection"
msgstr "Показувати вибір категорії"
#: cps/templates/book_edit.html:75 cps/templates/search_form.html:53
-#: cps/ub.py:129
+#: cps/ub.py:130
msgid "Series"
msgstr "Серії"
-#: cps/ub.py:131
+#: cps/ub.py:132
msgid "Show series selection"
msgstr "Показувати вибір серії"
-#: cps/templates/index.xml:61 cps/ub.py:132
+#: cps/templates/index.xml:61 cps/ub.py:133
msgid "Authors"
msgstr "Автори"
-#: cps/ub.py:134
+#: cps/ub.py:135
msgid "Show author selection"
msgstr "Показувати вибір автора"
-#: cps/templates/index.xml:68 cps/ub.py:136
+#: cps/templates/index.xml:68 cps/ub.py:137
msgid "Publishers"
msgstr ""
-#: cps/ub.py:138
+#: cps/ub.py:139
msgid "Show publisher selection"
msgstr ""
-#: cps/templates/search_form.html:74 cps/ub.py:139
+#: cps/templates/search_form.html:74 cps/ub.py:140
msgid "Languages"
msgstr "Мови"
-#: cps/ub.py:142
+#: cps/ub.py:143
msgid "Show language selection"
msgstr "Показувати вибір мови"
-#: cps/ub.py:143
+#: cps/ub.py:144
msgid "Ratings"
msgstr ""
-#: cps/ub.py:145
+#: cps/ub.py:146
msgid "Show ratings selection"
msgstr ""
+#: cps/ub.py:147
+msgid "File formats"
+msgstr ""
+
+#: cps/ub.py:149
+msgid "Show file formats selection"
+msgstr ""
+
#: cps/updater.py:255 cps/updater.py:417 cps/updater.py:430
msgid "Unexpected data while reading update information"
msgstr ""
@@ -724,196 +738,193 @@ msgstr ""
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
-#: cps/web.py:497
+#: cps/web.py:464
msgid "Recently Added Books"
msgstr "Нещодавно додані книги"
-#: cps/web.py:506
-msgid "Newest Books"
-msgstr "Найновіші книги"
-
-#: cps/web.py:515
-msgid "Oldest Books"
-msgstr "Найстаріші книги"
-
-#: cps/web.py:524
-msgid "Books (A-Z)"
-msgstr "Книги (А-Я)"
-
-#: cps/web.py:533
-msgid "Books (Z-A)"
-msgstr "Книги (Я-А)"
-
-#: cps/web.py:562
-msgid "Hot Books (most downloaded)"
-msgstr "Популярні книги (найбільш завантажувані)"
-
-#: cps/web.py:575
+#: cps/web.py:491
msgid "Best rated books"
msgstr "Книги з найкращим рейтингом"
-#: cps/templates/index.xml:38 cps/web.py:588
+#: cps/templates/index.xml:38 cps/web.py:499
msgid "Random Books"
msgstr "Випадковий список книг"
-#: cps/web.py:618 cps/web.py:925 cps/web.py:1206
+#: cps/web.py:513
+msgid "Books"
+msgstr ""
+
+#: cps/web.py:540
+msgid "Hot Books (most downloaded)"
+msgstr "Популярні книги (найбільш завантажувані)"
+
+#: cps/web.py:568 cps/web.py:1306 cps/web.py:1409
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Неможливо відкрити книгу. Файл не існує або немає доступу."
-#: cps/web.py:650
+#: cps/web.py:599
msgid "Publisher list"
msgstr ""
-#: cps/web.py:666
+#: cps/web.py:614
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
-#: cps/templates/index.xml:82 cps/web.py:704
+#: cps/templates/index.xml:82 cps/web.py:630
msgid "Series list"
msgstr "Список серій"
-#: cps/web.py:718
+#: cps/web.py:644
#, python-format
msgid "Series: %(serie)s"
msgstr "Серії: %(serie)s"
-#: cps/web.py:734
+#: cps/web.py:658
msgid "Ratings list"
msgstr ""
-#: cps/web.py:748
+#: cps/web.py:672
#, python-format
-msgid "Ratings: %(serie)s"
+msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:776
+#: cps/web.py:685
+msgid "File formats list"
+msgstr ""
+
+#: cps/web.py:699
+#, python-format
+msgid "File format: %(format)s"
+msgstr ""
+
+#: cps/web.py:727
msgid "Available languages"
msgstr "Доступні мови"
-#: cps/web.py:796
+#: cps/web.py:747
#, python-format
msgid "Language: %(name)s"
msgstr "Мова: %(name)s"
-#: cps/templates/index.xml:75 cps/web.py:810
+#: cps/templates/index.xml:75 cps/web.py:761
msgid "Category list"
msgstr "Список категорій"
-#: cps/web.py:825
+#: cps/web.py:776
#, python-format
msgid "Category: %(name)s"
msgstr "Категорія: %(name)s"
-#: cps/templates/layout.html:73 cps/web.py:957
+#: cps/templates/layout.html:73 cps/web.py:787
msgid "Tasks"
msgstr ""
-#: cps/web.py:1028
+#: cps/web.py:851
msgid "Published after "
msgstr ""
-#: cps/web.py:1035
+#: cps/web.py:858
msgid "Published before "
msgstr "Опубліковано до"
-#: cps/web.py:1049
+#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr ""
-#: cps/web.py:1051
+#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr ""
-#: cps/web.py:1112 cps/web.py:1121
+#: cps/web.py:935 cps/web.py:944
msgid "search"
msgstr "пошук"
-#: cps/web.py:1216 cps/web.py:1218 cps/web.py:1220 cps/web.py:1224
-#: cps/web.py:1228 cps/web.py:1232 cps/web.py:1244
-msgid "Read a Book"
-msgstr "Читати книгу"
+#: cps/web.py:1028
+msgid "Please configure the SMTP mail settings first..."
+msgstr "Будь-ласка, спочатку сконфігуруйте параметри SMTP"
-#: cps/web.py:1304 cps/web.py:1329 cps/web.py:1334 cps/web.py:1339
-#: cps/web.py:1343
+#: cps/web.py:1033
+#, python-format
+msgid "Book successfully queued for sending to %(kindlemail)s"
+msgstr ""
+
+#: cps/web.py:1037
+#, python-format
+msgid "There was an error sending this book: %(res)s"
+msgstr "Помилка при відправці книги: %(res)s"
+
+#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1086 cps/web.py:1091
+#: cps/web.py:1095
msgid "register"
msgstr "зареєструватись"
-#: cps/web.py:1331
+#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr ""
-#: cps/web.py:1335
+#: cps/web.py:1087
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
-#: cps/web.py:1338
+#: cps/web.py:1090
msgid "This username or e-mail address is already in use."
msgstr ""
-#: cps/web.py:1361 cps/web.py:1373
+#: cps/web.py:1113 cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1366 cps/web.py:1378
+#: cps/web.py:1118 cps/web.py:1130
msgid "Wrong Username or Password"
msgstr "Помилка в імені користувача або паролі"
-#: cps/web.py:1369
+#: cps/web.py:1121
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
-#: cps/web.py:1384 cps/web.py:1406
+#: cps/web.py:1136 cps/web.py:1158
msgid "login"
msgstr "увійти"
-#: cps/web.py:1418 cps/web.py:1449
+#: cps/web.py:1170 cps/web.py:1201
msgid "Token not found"
msgstr "Токен не знайдено"
-#: cps/web.py:1426 cps/web.py:1457
+#: cps/web.py:1178 cps/web.py:1209
msgid "Token has expired"
msgstr "Час дії токено вичерпано"
-#: cps/web.py:1434
+#: cps/web.py:1186
msgid "Success! Please return to your device"
msgstr "Вдалося! Будь-ласка, поверніться до вашого пристрою"
-#: cps/web.py:1470
+#: cps/web.py:1222
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Ви увійшли як користувач: '%(nickname)s'"
-#: cps/web.py:1484
-msgid "Please configure the SMTP mail settings first..."
-msgstr "Будь-ласка, спочатку сконфігуруйте параметри SMTP"
-
-#: cps/web.py:1489
-#, python-format
-msgid "Book successfully queued for sending to %(kindlemail)s"
-msgstr ""
-
-#: cps/web.py:1493
-#, python-format
-msgid "There was an error sending this book: %(res)s"
-msgstr "Помилка при відправці книги: %(res)s"
-
-#: cps/web.py:1530 cps/web.py:1555 cps/web.py:1559
+#: cps/web.py:1263 cps/web.py:1290 cps/web.py:1294
#, python-format
msgid "%(name)s's profile"
msgstr "Профіль %(name)s"
-#: cps/web.py:1553
+#: cps/web.py:1287
msgid "Found an existing account for this e-mail address."
msgstr ""
-#: cps/web.py:1557
+#: cps/web.py:1292
msgid "Profile updated"
msgstr "Профіль оновлено"
+#: cps/web.py:1316 cps/web.py:1318 cps/web.py:1320 cps/web.py:1324
+#: cps/web.py:1328 cps/web.py:1332 cps/web.py:1344
+msgid "Read a Book"
+msgstr "Читати книгу"
+
#: cps/worker.py:308
#, python-format
msgid "Ebook-converter failed: %(error)s"
@@ -1081,7 +1092,7 @@ msgstr "Ok"
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:77
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
-#: cps/templates/user_edit.html:127
+#: cps/templates/user_edit.html:128
msgid "Back"
msgstr "Назад"
@@ -1101,14 +1112,19 @@ msgstr "через"
msgid "In Library"
msgstr "У бібліотеці"
-#: cps/templates/author.html:50 cps/templates/author.html:97
-#: cps/templates/discover.html:28 cps/templates/index.html:30
-#: cps/templates/index.html:97 cps/templates/search.html:55
+#: cps/templates/author.html:34 cps/templates/list.html:9
+#: cps/templates/search.html:41
+msgid "All"
+msgstr ""
+
+#: cps/templates/author.html:62 cps/templates/author.html:109
+#: cps/templates/discover.html:27 cps/templates/index.html:30
+#: cps/templates/index.html:97 cps/templates/search.html:67
#: cps/templates/shelf.html:40
msgid "reduce"
msgstr ""
-#: cps/templates/author.html:81
+#: cps/templates/author.html:93
msgid "More by"
msgstr "Більше за"
@@ -1216,7 +1232,7 @@ msgstr "Отримати метадані"
#: cps/templates/book_edit.html:177 cps/templates/config_edit.html:279
#: cps/templates/config_view_edit.html:140 cps/templates/login.html:20
#: cps/templates/search_form.html:150 cps/templates/shelf_edit.html:17
-#: cps/templates/user_edit.html:125
+#: cps/templates/user_edit.html:126
msgid "Submit"
msgstr "Зберегти"
@@ -1252,8 +1268,8 @@ msgstr "Натисніть на обкладинку, щоб отримати м
msgid "Loading..."
msgstr "Завантаження..."
-#: cps/templates/book_edit.html:239 cps/templates/layout.html:199
-#: cps/templates/layout.html:231
+#: cps/templates/book_edit.html:239 cps/templates/layout.html:187
+#: cps/templates/layout.html:219
msgid "Close"
msgstr "Закрити"
@@ -1482,8 +1498,7 @@ msgstr "Ім'я користувача"
msgid "View Configuration"
msgstr "Переглянути налаштування"
-#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:132
-#: cps/templates/layout.html:133 cps/templates/shelf_edit.html:7
+#: cps/templates/config_view_edit.html:19 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "Заголовок"
@@ -1527,31 +1542,31 @@ msgstr ""
msgid "Default settings for new users"
msgstr "Налаштування по замовчуванню для нових користувачів"
-#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:82
+#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "Керування сервером"
-#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:91
+#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:92
msgid "Allow Downloads"
msgstr "Дозволити завантажувати з сервера"
-#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:95
+#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:96
msgid "Allow Uploads"
msgstr "Дозволити завантаження на сервер"
-#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:99
+#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:100
msgid "Allow Edit"
msgstr "Дозволити редагування книг"
-#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:103
+#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:104
msgid "Allow Delete books"
msgstr "Дозволити видалення книг"
-#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:108
+#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:109
msgid "Allow Changing Password"
msgstr "Дозволити зміну пароля"
-#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:112
+#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:113
msgid "Allow Editing Public Shelfs"
msgstr "Дозволити редагування публічних книжкових полиць"
@@ -1559,11 +1574,11 @@ msgstr "Дозволити редагування публічних книжк
msgid "Default visibilities for new users"
msgstr "Можливості за замовчуванням для нових користувачів"
-#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:74
+#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "Показувати випадкові книги при перегляді деталей"
-#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:87
+#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:88
msgid "Show mature content"
msgstr ""
@@ -1667,7 +1682,7 @@ msgstr ""
msgid "Do you really want to delete this domain rule?"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:183
+#: cps/templates/feed.xml:21 cps/templates/layout.html:171
msgid "Next"
msgstr "Далі"
@@ -1684,8 +1699,8 @@ msgstr ""
msgid "Discover (Random Books)"
msgstr "Огляд (випадкові книги)"
-#: cps/templates/index.html:69 cps/templates/list.html:8
-msgid "All"
+#: cps/templates/index.html:69
+msgid "Group by series"
msgstr ""
#: cps/templates/index.xml:6
@@ -1728,7 +1743,7 @@ msgstr "Книги відсортовані за категоріями"
msgid "Books ordered by series"
msgstr "Книги відсортовані за серією"
-#: cps/templates/index.xml:89 cps/templates/layout.html:144
+#: cps/templates/index.xml:89 cps/templates/layout.html:132
msgid "Public Shelves"
msgstr "Загальні книжкові полиці"
@@ -1736,7 +1751,7 @@ msgstr "Загальні книжкові полиці"
msgid "Books organized in public shelfs, visible to everyone"
msgstr "Книги, організовані на публічних полицях, видимі всім"
-#: cps/templates/index.xml:97 cps/templates/layout.html:148
+#: cps/templates/index.xml:97 cps/templates/layout.html:136
msgid "Your Shelves"
msgstr "Ваші книжкові полиці"
@@ -1773,7 +1788,7 @@ msgstr "Вийти"
msgid "Register"
msgstr "Зареєструватись"
-#: cps/templates/layout.html:111 cps/templates/layout.html:230
+#: cps/templates/layout.html:111 cps/templates/layout.html:218
msgid "Uploading..."
msgstr "Завантаження..."
@@ -1785,52 +1800,27 @@ msgstr "будь ласка, не перезавантажуйте сторін
msgid "Browse"
msgstr "Перегляд"
-#: cps/templates/layout.html:126
-msgid "Sorted Books"
-msgstr "Відсортовані книги"
-
-#: cps/templates/layout.html:130 cps/templates/layout.html:131
-#: cps/templates/layout.html:132 cps/templates/layout.html:133
-msgid "Sort By"
-msgstr "Сортувати за"
-
-#: cps/templates/layout.html:130
-msgid "Newest"
-msgstr "Найновіші"
-
-#: cps/templates/layout.html:131
-msgid "Oldest"
-msgstr "Найстаріші"
-
-#: cps/templates/layout.html:132
-msgid "Ascending"
-msgstr "За зростанням"
-
-#: cps/templates/layout.html:133
-msgid "Descending"
-msgstr "За спаданням"
-
-#: cps/templates/layout.html:153
+#: cps/templates/layout.html:141
msgid "Create a Shelf"
msgstr "Створити книжкову полицю"
-#: cps/templates/layout.html:154 cps/templates/stats.html:3
+#: cps/templates/layout.html:142 cps/templates/stats.html:3
msgid "About"
msgstr "Про програму"
-#: cps/templates/layout.html:168
+#: cps/templates/layout.html:156
msgid "Previous"
msgstr "Попередній перегляд"
-#: cps/templates/layout.html:195
+#: cps/templates/layout.html:183
msgid "Book Details"
msgstr "Деталі"
-#: cps/templates/layout.html:229
+#: cps/templates/layout.html:217
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:232
+#: cps/templates/layout.html:220
msgid "Error"
msgstr ""
@@ -2128,27 +2118,31 @@ msgstr ""
msgid "Kindle E-Mail"
msgstr "Електронний адрес Kindle"
-#: cps/templates/user_edit.html:39
+#: cps/templates/user_edit.html:40
msgid "Show books with language"
msgstr "Показувати книги на мовах"
-#: cps/templates/user_edit.html:41
+#: cps/templates/user_edit.html:42
msgid "Show all"
msgstr "Показати всі"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:52
msgid "OAuth Settings"
msgstr ""
+#: cps/templates/user_edit.html:54
+msgid "Link"
+msgstr ""
+
#: cps/templates/user_edit.html:56
msgid "Unlink"
msgstr ""
-#: cps/templates/user_edit.html:119
+#: cps/templates/user_edit.html:120
msgid "Delete this user"
msgstr "Видалити цього користувача"
-#: cps/templates/user_edit.html:134
+#: cps/templates/user_edit.html:135
msgid "Recent Downloads"
msgstr "Нещодавно переглянуті"
@@ -2308,3 +2302,39 @@ msgstr "Нещодавно переглянуті"
#~ msgid "Show sorted books"
#~ msgstr "Показувати відсортовані книги"
+#~ msgid "Public registration is not enabled"
+#~ msgstr ""
+
+#~ msgid "Newest Books"
+#~ msgstr "Найновіші книги"
+
+#~ msgid "Oldest Books"
+#~ msgstr "Найстаріші книги"
+
+#~ msgid "Books (A-Z)"
+#~ msgstr "Книги (А-Я)"
+
+#~ msgid "Books (Z-A)"
+#~ msgstr "Книги (Я-А)"
+
+#~ msgid "Ratings: %(serie)s"
+#~ msgstr ""
+
+#~ msgid "Sorted Books"
+#~ msgstr "Відсортовані книги"
+
+#~ msgid "Sort By"
+#~ msgstr "Сортувати за"
+
+#~ msgid "Newest"
+#~ msgstr "Найновіші"
+
+#~ msgid "Oldest"
+#~ msgstr "Найстаріші"
+
+#~ msgid "Ascending"
+#~ msgstr "За зростанням"
+
+#~ msgid "Descending"
+#~ msgstr "За спаданням"
+
diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo
index 229896f3..881d7af8 100644
Binary files a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo and b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo differ
diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
index f442c149..083e6e45 100644
--- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
+++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2019-03-10 08:24+0100\n"
+"POT-Creation-Date: 2019-03-24 08:25+0100\n"
"PO-Revision-Date: 2017-01-06 17:00+0000\n"
"Last-Translator: dalin \n"
"Language: zh_Hans_CN\n"
@@ -22,185 +22,194 @@ msgstr ""
msgid "Statistics"
msgstr "统计"
-#: cps/admin.py:96
+#: cps/admin.py:97
msgid "Server restarted, please reload page"
msgstr "服务器已重启,请刷新页面"
-#: cps/admin.py:99
+#: cps/admin.py:100
msgid "Performing shutdown of server, please close window"
msgstr "正在关闭服务器,请关闭窗口"
-#: cps/admin.py:119 cps/updater.py:498
+#: cps/admin.py:120 cps/updater.py:498
msgid "Unknown"
msgstr "未知"
-#: cps/admin.py:138
+#: cps/admin.py:139
msgid "Admin page"
msgstr "管理页"
-#: cps/admin.py:203 cps/admin.py:474
+#: cps/admin.py:206 cps/admin.py:484
msgid "Calibre-Web configuration updated"
msgstr "Calibre-Web配置已更新"
-#: cps/admin.py:217 cps/templates/admin.html:100
+#: cps/admin.py:220 cps/templates/admin.html:100
msgid "UI Configuration"
msgstr "UI配置"
-#: cps/admin.py:290
+#: cps/admin.py:293
msgid "Import of optional Google Drive requirements missing"
msgstr "可选的Google Drive依赖导入缺失"
-#: cps/admin.py:293
+#: cps/admin.py:296
msgid "client_secrets.json is missing or not readable"
msgstr "client_secrets.json文件缺失或不可读"
-#: cps/admin.py:298 cps/admin.py:327
+#: cps/admin.py:301 cps/admin.py:330
msgid "client_secrets.json is not configured for web application"
msgstr "没有为web应用配置client_secrets.json"
-#: cps/admin.py:330 cps/admin.py:356 cps/admin.py:368 cps/admin.py:393
-#: cps/admin.py:451 cps/admin.py:464 cps/admin.py:482 cps/admin.py:489
-#: cps/admin.py:504 cps/templates/admin.html:99
+#: cps/admin.py:333 cps/admin.py:359 cps/admin.py:371 cps/admin.py:396
+#: cps/admin.py:424 cps/admin.py:438 cps/admin.py:461 cps/admin.py:474
+#: cps/admin.py:492 cps/admin.py:499 cps/admin.py:514
+#: cps/templates/admin.html:99
msgid "Basic Configuration"
msgstr "基本配置"
-#: cps/admin.py:353
+#: cps/admin.py:356
msgid "Keyfile location is not valid, please enter correct path"
msgstr "key文件位置无效,请输入正确路径"
-#: cps/admin.py:365
+#: cps/admin.py:368
msgid "Certfile location is not valid, please enter correct path"
msgstr "证书文件位置无效,请输入正确路径"
-#: cps/admin.py:390
+#: cps/admin.py:393
msgid "Please enter a LDAP provider and a DN"
msgstr ""
-#: cps/admin.py:448
+#: cps/admin.py:421
+msgid "Please enter Github oauth credentials"
+msgstr ""
+
+#: cps/admin.py:435
+msgid "Please enter Google oauth credentials"
+msgstr ""
+
+#: cps/admin.py:458
msgid "Logfile location is not valid, please enter correct path"
msgstr "日志文件位置无效,请输入正确路径"
-#: cps/admin.py:486
+#: cps/admin.py:496
msgid "DB location is not valid, please enter correct path"
msgstr "DB位置无效,请输入正确路径"
-#: cps/admin.py:546 cps/web.py:1303
+#: cps/admin.py:556 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "请填写所有字段"
-#: cps/admin.py:548 cps/admin.py:554 cps/admin.py:570
+#: cps/admin.py:558 cps/admin.py:564 cps/admin.py:580
#: cps/templates/admin.html:33
msgid "Add new user"
msgstr "添加新用户"
-#: cps/admin.py:552 cps/web.py:1528
+#: cps/admin.py:562 cps/web.py:1261
msgid "E-mail is not from valid domain"
msgstr "邮箱不在有效域中'"
-#: cps/admin.py:560
+#: cps/admin.py:570
#, python-format
msgid "User '%(user)s' created"
msgstr "用户 '%(user)s' 已被创建"
-#: cps/admin.py:564
+#: cps/admin.py:574
msgid "Found an existing account for this e-mail address or nickname."
msgstr "此邮箱或昵称的账号已经存在。"
-#: cps/admin.py:595
+#: cps/admin.py:605
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "测试邮件已经被成功发到 %(kindlemail)s"
-#: cps/admin.py:598
+#: cps/admin.py:608
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "发送测试邮件出错了: %(res)s"
-#: cps/admin.py:600 cps/web.py:1495
+#: cps/admin.py:610 cps/web.py:1039
msgid "Please configure your kindle e-mail address first..."
msgstr "请先配置您的kindle邮箱..."
-#: cps/admin.py:602
+#: cps/admin.py:612
msgid "E-mail server settings updated"
msgstr "已更新邮件服务器设置"
-#: cps/admin.py:603
+#: cps/admin.py:613
msgid "Edit e-mail server settings"
msgstr "编辑邮箱服务器设置"
-#: cps/admin.py:628
+#: cps/admin.py:638
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "用户 '%(nick)s' 已被删除"
-#: cps/admin.py:694
+#: cps/admin.py:704
#, python-format
msgid "User '%(nick)s' updated"
msgstr "用户 '%(nick)s' 已被更新"
-#: cps/admin.py:697
+#: cps/admin.py:707
msgid "An unknown error occured."
msgstr "发生未知错误。"
-#: cps/admin.py:700
+#: cps/admin.py:710
#, python-format
msgid "Edit User %(nick)s"
msgstr "编辑用户 %(nick)s"
-#: cps/admin.py:716
+#: cps/admin.py:726
#, python-format
msgid "Password for user %(user)s reset"
msgstr "用户 %(user)s 的密码已重置"
-#: cps/admin.py:719 cps/web.py:1328
+#: cps/admin.py:729 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "发生一个未知错误,请稍后再试。"
-#: cps/admin.py:738
+#: cps/admin.py:748
msgid "Requesting update package"
msgstr "正在请求更新包"
-#: cps/admin.py:739
+#: cps/admin.py:749
msgid "Downloading update package"
msgstr "正在下载更新包"
-#: cps/admin.py:740
+#: cps/admin.py:750
msgid "Unzipping update package"
msgstr "正在解压更新包"
-#: cps/admin.py:741
+#: cps/admin.py:751
msgid "Replacing files"
msgstr "正在替换文件"
-#: cps/admin.py:742
+#: cps/admin.py:752
msgid "Database connections are closed"
msgstr "数据库连接已关闭"
-#: cps/admin.py:743
+#: cps/admin.py:753
msgid "Stopping server"
msgstr "正在停止服务器"
-#: cps/admin.py:744
+#: cps/admin.py:754
msgid "Update finished, please press okay and reload page"
msgstr "更新完成,请按确定并刷新页面"
-#: cps/admin.py:745 cps/admin.py:746 cps/admin.py:747 cps/admin.py:748
+#: cps/admin.py:755 cps/admin.py:756 cps/admin.py:757 cps/admin.py:758
msgid "Update failed:"
msgstr "更新失败:"
-#: cps/admin.py:745 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
+#: cps/admin.py:755 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
msgid "HTTP Error"
msgstr "HTTP错误"
-#: cps/admin.py:746 cps/updater.py:277 cps/updater.py:513
+#: cps/admin.py:756 cps/updater.py:277 cps/updater.py:513
msgid "Connection error"
msgstr "连接错误"
-#: cps/admin.py:747 cps/updater.py:279 cps/updater.py:515
+#: cps/admin.py:757 cps/updater.py:279 cps/updater.py:515
msgid "Timeout while establishing connection"
msgstr "建立连接超时"
-#: cps/admin.py:748 cps/updater.py:281 cps/updater.py:517
+#: cps/admin.py:758 cps/updater.py:281 cps/updater.py:517
msgid "General error"
msgstr "一般错误"
@@ -217,98 +226,98 @@ msgstr "可执行权限缺失"
msgid "not configured"
msgstr "未配置"
-#: cps/editbooks.py:219 cps/editbooks.py:425
+#: cps/editbooks.py:218 cps/editbooks.py:410
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "打开电子书出错。文件不存在或不可访问"
-#: cps/editbooks.py:247
+#: cps/editbooks.py:246
msgid "edit metadata"
msgstr "编辑元数据"
-#: cps/editbooks.py:340 cps/editbooks.py:587
+#: cps/editbooks.py:325 cps/editbooks.py:572
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "不能上传后缀为 '%(ext)s' 的文件到此服务器"
-#: cps/editbooks.py:344 cps/editbooks.py:591
+#: cps/editbooks.py:329 cps/editbooks.py:576
msgid "File to be uploaded must have an extension"
msgstr "要上传的文件必须有一个后缀"
-#: cps/editbooks.py:356 cps/editbooks.py:611
+#: cps/editbooks.py:341 cps/editbooks.py:596
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "创建路径 %(path)s 失败(权限拒绝)。"
-#: cps/editbooks.py:361
+#: cps/editbooks.py:346
#, python-format
msgid "Failed to store file %(file)s."
msgstr "保存文件 %(file)s 失败。"
-#: cps/editbooks.py:378
+#: cps/editbooks.py:363
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "已添加 %(ext)s 格式到 %(book)s"
-#: cps/editbooks.py:396
+#: cps/editbooks.py:381
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr "为封面 %(path)s 创建路径失败(权限拒绝)。"
-#: cps/editbooks.py:404
+#: cps/editbooks.py:389
+msgid "Cover-file is not a valid image file"
+msgstr "封面文件不是一个有效的图片文件"
+
+#: cps/editbooks.py:392
#, python-format
msgid "Failed to store cover-file %(cover)s."
msgstr "保存封面文件 %(cover)s 失败。"
-#: cps/editbooks.py:407
-msgid "Cover-file is not a valid image file"
-msgstr "封面文件不是一个有效的图片文件"
-
-#: cps/editbooks.py:437 cps/editbooks.py:446
+#: cps/editbooks.py:422 cps/editbooks.py:431
msgid "unknown"
msgstr "未知"
-#: cps/editbooks.py:478
+#: cps/editbooks.py:463
msgid "Cover is not a jpg file, can't save"
msgstr "封面不是一个jpg文件,无法保存"
-#: cps/editbooks.py:526
+#: cps/editbooks.py:511
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "%(langname)s 不是一种有效语言"
-#: cps/editbooks.py:557
+#: cps/editbooks.py:542
msgid "Metadata successfully updated"
msgstr "已成功更新元数据"
-#: cps/editbooks.py:566
+#: cps/editbooks.py:551
msgid "Error editing book, please check logfile for details"
msgstr "编辑书籍出错,详情请检查日志文件"
-#: cps/editbooks.py:616
+#: cps/editbooks.py:601
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr "存储文件 %(file)s 失败(权限拒绝)。"
-#: cps/editbooks.py:621
+#: cps/editbooks.py:606
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr "删除文件 %(file)s 失败(权限拒绝)。"
-#: cps/editbooks.py:704
+#: cps/editbooks.py:689
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:733
+#: cps/editbooks.py:718
msgid "Source or destination format for conversion missing"
msgstr "转换的源或目的格式缺失"
-#: cps/editbooks.py:743
+#: cps/editbooks.py:728
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "书籍已经被成功加入 %(book_format)s 的转换队列"
-#: cps/editbooks.py:747
+#: cps/editbooks.py:732
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "转换此书时出现错误: %(res)s"
@@ -321,133 +330,133 @@ msgstr ""
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "回调域名尚未被校验,请在google开发者控制台按步骤校验域名"
-#: cps/helper.py:66
+#: cps/helper.py:84
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "找不到id为 %(book)d 的书的 %(format)s 格式"
-#: cps/helper.py:78
+#: cps/helper.py:96
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "Google Drive %(fn)s 上找不到 %(format)s"
-#: cps/helper.py:85 cps/helper.py:193 cps/templates/detail.html:45
+#: cps/helper.py:103 cps/helper.py:211 cps/templates/detail.html:45
#: cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr "发送到Kindle"
-#: cps/helper.py:86 cps/helper.py:104 cps/helper.py:195
+#: cps/helper.py:104 cps/helper.py:122 cps/helper.py:213
msgid "This e-mail has been sent via Calibre-Web."
msgstr "此邮件已经通过Calibre-Web发送"
-#: cps/helper.py:97
+#: cps/helper.py:115
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "找不到 %(format)s: %(fn)s"
-#: cps/helper.py:102
+#: cps/helper.py:120
msgid "Calibre-Web test e-mail"
msgstr "Calibre-Web测试邮件"
-#: cps/helper.py:103
+#: cps/helper.py:121
msgid "Test e-mail"
msgstr "测试邮件"
-#: cps/helper.py:119
+#: cps/helper.py:137
msgid "Get Started with Calibre-Web"
msgstr "开启Calibre-Web之旅"
-#: cps/helper.py:120
+#: cps/helper.py:138
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "用户 %(name)s 的注册邮箱"
-#: cps/helper.py:133 cps/helper.py:135 cps/helper.py:137 cps/helper.py:139
-#: cps/helper.py:145 cps/helper.py:147 cps/helper.py:149 cps/helper.py:151
+#: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
+#: cps/helper.py:163 cps/helper.py:165 cps/helper.py:167 cps/helper.py:169
#, python-format
msgid "Send %(format)s to Kindle"
msgstr ""
-#: cps/helper.py:155 cps/helper.py:159
+#: cps/helper.py:173 cps/helper.py:177
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr ""
-#: cps/helper.py:194
+#: cps/helper.py:212
#, python-format
msgid "E-mail: %(book)s"
msgstr ""
-#: cps/helper.py:197
+#: cps/helper.py:215
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "无法读取请求的文件。 可能有错误的权限设置?"
-#: cps/helper.py:305
+#: cps/helper.py:323
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "将标题从'%(src)s'改为'%(dest)s'时失败,出错信息: %(error)s"
-#: cps/helper.py:315
+#: cps/helper.py:333
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "将作者从'%(src)s'改为'%(dest)s'时失败,出错信息: %(error)s"
-#: cps/helper.py:329
+#: cps/helper.py:347
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:355 cps/helper.py:365 cps/helper.py:373
+#: cps/helper.py:373 cps/helper.py:383 cps/helper.py:391
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Google Drive上找不到文件 %(file)s"
-#: cps/helper.py:394
+#: cps/helper.py:412
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "Google Drive上找不到书籍路径 %(path)s"
-#: cps/helper.py:502
+#: cps/helper.py:520
msgid "Error excecuting UnRar"
msgstr "执行UnRar时出错"
-#: cps/helper.py:504
+#: cps/helper.py:522
msgid "Unrar binary file not found"
msgstr "找不到Unrar二进制文件"
-#: cps/helper.py:535
+#: cps/helper.py:553
msgid "Waiting"
msgstr "等待中"
-#: cps/helper.py:537
+#: cps/helper.py:555
msgid "Failed"
msgstr "失败"
-#: cps/helper.py:539
+#: cps/helper.py:557
msgid "Started"
msgstr "已开始"
-#: cps/helper.py:541
+#: cps/helper.py:559
msgid "Finished"
msgstr "已完成"
-#: cps/helper.py:543
+#: cps/helper.py:561
msgid "Unknown Status"
msgstr "未知状态"
-#: cps/helper.py:548
+#: cps/helper.py:566
msgid "E-mail: "
msgstr ""
-#: cps/helper.py:550 cps/helper.py:554
+#: cps/helper.py:568 cps/helper.py:572
msgid "Convert: "
msgstr "转换:"
-#: cps/helper.py:552
+#: cps/helper.py:570
msgid "Upload: "
msgstr "上传:"
-#: cps/helper.py:556
+#: cps/helper.py:574
msgid "Unknown Task: "
msgstr "未知任务:"
@@ -472,30 +481,26 @@ msgstr ""
msgid "Failed to fetch user info from Google."
msgstr ""
-#: cps/oauth_bb.py:229
-msgid "Public registration is not enabled"
-msgstr ""
-
-#: cps/oauth_bb.py:264
+#: cps/oauth_bb.py:265
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr ""
-#: cps/oauth_bb.py:268
+#: cps/oauth_bb.py:269
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr ""
-#: cps/oauth_bb.py:271
+#: cps/oauth_bb.py:272
#, python-format
msgid "Not linked to %(oauth)s."
msgstr ""
-#: cps/oauth_bb.py:299
+#: cps/oauth_bb.py:300
msgid "GitHub Oauth error, please retry later."
msgstr ""
-#: cps/oauth_bb.py:318
+#: cps/oauth_bb.py:319
msgid "Google Oauth error, please retry later."
msgstr ""
@@ -588,119 +593,127 @@ msgstr "编辑书架"
msgid "successfully deleted shelf %(name)s"
msgstr "成功删除书架 %(name)s"
-#: cps/shelf.py:286 cps/shelf.py:316
+#: cps/shelf.py:289
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "书架: '%(name)s'"
-#: cps/shelf.py:289 cps/shelf.py:319
+#: cps/shelf.py:292
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "打开书架出错。书架不存在或不可访问"
-#: cps/shelf.py:349
+#: cps/shelf.py:324
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "修改书架 '%(name)s' 顺序"
-#: cps/ub.py:106
+#: cps/ub.py:107
msgid "Recently Added"
msgstr "最近添加"
-#: cps/ub.py:108
+#: cps/ub.py:109
msgid "Show recent books"
msgstr "显示最近书籍"
-#: cps/templates/index.xml:17 cps/ub.py:109
+#: cps/templates/index.xml:17 cps/ub.py:110
msgid "Hot Books"
msgstr "热门书籍"
-#: cps/ub.py:110
+#: cps/ub.py:111
msgid "Show hot books"
msgstr "显示热门书籍"
-#: cps/templates/index.xml:24 cps/ub.py:113
+#: cps/templates/index.xml:24 cps/ub.py:114
msgid "Best rated Books"
msgstr "最高评分书籍"
-#: cps/ub.py:115
+#: cps/ub.py:116
msgid "Show best rated books"
msgstr "显示最高评分书籍"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:116
-#: cps/web.py:1193
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:117
+#: cps/web.py:975
msgid "Read Books"
msgstr "已读书籍"
-#: cps/ub.py:118
+#: cps/ub.py:119
msgid "Show read and unread"
msgstr "显示已读和未读"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:120
-#: cps/web.py:1196
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:121
+#: cps/web.py:979
msgid "Unread Books"
msgstr "未读书籍"
-#: cps/ub.py:122
+#: cps/ub.py:123
msgid "Show unread"
msgstr ""
-#: cps/ub.py:123
+#: cps/ub.py:124
msgid "Discover"
msgstr "发现"
-#: cps/ub.py:125
+#: cps/ub.py:126
msgid "Show random books"
msgstr "显示随机书籍"
-#: cps/ub.py:126
+#: cps/ub.py:127
msgid "Categories"
msgstr "分类"
-#: cps/ub.py:128
+#: cps/ub.py:129
msgid "Show category selection"
msgstr "显示分类选择"
#: cps/templates/book_edit.html:75 cps/templates/search_form.html:53
-#: cps/ub.py:129
+#: cps/ub.py:130
msgid "Series"
msgstr "丛书"
-#: cps/ub.py:131
+#: cps/ub.py:132
msgid "Show series selection"
msgstr "显示丛书选择"
-#: cps/templates/index.xml:61 cps/ub.py:132
+#: cps/templates/index.xml:61 cps/ub.py:133
msgid "Authors"
msgstr "作者"
-#: cps/ub.py:134
+#: cps/ub.py:135
msgid "Show author selection"
msgstr "显示作者选择"
-#: cps/templates/index.xml:68 cps/ub.py:136
+#: cps/templates/index.xml:68 cps/ub.py:137
msgid "Publishers"
msgstr "出版社"
-#: cps/ub.py:138
+#: cps/ub.py:139
msgid "Show publisher selection"
msgstr "显示出版社选择"
-#: cps/templates/search_form.html:74 cps/ub.py:139
+#: cps/templates/search_form.html:74 cps/ub.py:140
msgid "Languages"
msgstr "语言"
-#: cps/ub.py:142
+#: cps/ub.py:143
msgid "Show language selection"
msgstr "显示语言选择"
-#: cps/ub.py:143
+#: cps/ub.py:144
msgid "Ratings"
msgstr ""
-#: cps/ub.py:145
+#: cps/ub.py:146
msgid "Show ratings selection"
msgstr ""
+#: cps/ub.py:147
+msgid "File formats"
+msgstr ""
+
+#: cps/ub.py:149
+msgid "Show file formats selection"
+msgstr ""
+
#: cps/updater.py:255 cps/updater.py:417 cps/updater.py:430
msgid "Unexpected data while reading update information"
msgstr "读取更新信息时出现异常数据"
@@ -726,196 +739,193 @@ msgstr ""
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
-#: cps/web.py:497
+#: cps/web.py:464
msgid "Recently Added Books"
msgstr "最近添加的书籍"
-#: cps/web.py:506
-msgid "Newest Books"
-msgstr "最新书籍"
-
-#: cps/web.py:515
-msgid "Oldest Books"
-msgstr "最旧书籍"
-
-#: cps/web.py:524
-msgid "Books (A-Z)"
-msgstr "书籍 (A-Z)"
-
-#: cps/web.py:533
-msgid "Books (Z-A)"
-msgstr "书籍 (Z-A)"
-
-#: cps/web.py:562
-msgid "Hot Books (most downloaded)"
-msgstr "热门书籍(最多下载)"
-
-#: cps/web.py:575
+#: cps/web.py:491
msgid "Best rated books"
msgstr "最高评分书籍"
-#: cps/templates/index.xml:38 cps/web.py:588
+#: cps/templates/index.xml:38 cps/web.py:499
msgid "Random Books"
msgstr "随机书籍"
-#: cps/web.py:618 cps/web.py:925 cps/web.py:1206
+#: cps/web.py:513
+msgid "Books"
+msgstr ""
+
+#: cps/web.py:540
+msgid "Hot Books (most downloaded)"
+msgstr "热门书籍(最多下载)"
+
+#: cps/web.py:568 cps/web.py:1306 cps/web.py:1409
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "无法打开电子书。 文件不存在或者文件不可访问:"
-#: cps/web.py:650
+#: cps/web.py:599
msgid "Publisher list"
msgstr "出版社列表"
-#: cps/web.py:666
+#: cps/web.py:614
#, python-format
msgid "Publisher: %(name)s"
msgstr "出版社: %(name)s"
-#: cps/templates/index.xml:82 cps/web.py:704
+#: cps/templates/index.xml:82 cps/web.py:630
msgid "Series list"
msgstr "丛书列表"
-#: cps/web.py:718
+#: cps/web.py:644
#, python-format
msgid "Series: %(serie)s"
msgstr "丛书: %(serie)s"
-#: cps/web.py:734
+#: cps/web.py:658
msgid "Ratings list"
msgstr ""
-#: cps/web.py:748
+#: cps/web.py:672
#, python-format
-msgid "Ratings: %(serie)s"
+msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:776
+#: cps/web.py:685
+msgid "File formats list"
+msgstr ""
+
+#: cps/web.py:699
+#, python-format
+msgid "File format: %(format)s"
+msgstr ""
+
+#: cps/web.py:727
msgid "Available languages"
msgstr "可用语言"
-#: cps/web.py:796
+#: cps/web.py:747
#, python-format
msgid "Language: %(name)s"
msgstr "语言: %(name)s"
-#: cps/templates/index.xml:75 cps/web.py:810
+#: cps/templates/index.xml:75 cps/web.py:761
msgid "Category list"
msgstr "分类列表"
-#: cps/web.py:825
+#: cps/web.py:776
#, python-format
msgid "Category: %(name)s"
msgstr "分类: %(name)s"
-#: cps/templates/layout.html:73 cps/web.py:957
+#: cps/templates/layout.html:73 cps/web.py:787
msgid "Tasks"
msgstr "任务"
-#: cps/web.py:1028
+#: cps/web.py:851
msgid "Published after "
msgstr "出版时晚于 "
-#: cps/web.py:1035
+#: cps/web.py:858
msgid "Published before "
msgstr "出版时早于 "
-#: cps/web.py:1049
+#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "评分 <= %(rating)s"
-#: cps/web.py:1051
+#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "评分 >= %(rating)s"
-#: cps/web.py:1112 cps/web.py:1121
+#: cps/web.py:935 cps/web.py:944
msgid "search"
msgstr "搜索"
-#: cps/web.py:1216 cps/web.py:1218 cps/web.py:1220 cps/web.py:1224
-#: cps/web.py:1228 cps/web.py:1232 cps/web.py:1244
-msgid "Read a Book"
-msgstr "阅读一本书"
+#: cps/web.py:1028
+msgid "Please configure the SMTP mail settings first..."
+msgstr "请先配置SMTP邮箱..."
+
+#: cps/web.py:1033
+#, python-format
+msgid "Book successfully queued for sending to %(kindlemail)s"
+msgstr "书籍已经被成功加入 %(kindlemail)s 的发送队列"
-#: cps/web.py:1304 cps/web.py:1329 cps/web.py:1334 cps/web.py:1339
-#: cps/web.py:1343
+#: cps/web.py:1037
+#, python-format
+msgid "There was an error sending this book: %(res)s"
+msgstr "发送这本书的时候出现错误: %(res)s"
+
+#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1086 cps/web.py:1091
+#: cps/web.py:1095
msgid "register"
msgstr "注册"
-#: cps/web.py:1331
+#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "您的邮箱不能用来注册"
-#: cps/web.py:1335
+#: cps/web.py:1087
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "确认邮件已经发送到您的邮箱。"
-#: cps/web.py:1338
+#: cps/web.py:1090
msgid "This username or e-mail address is already in use."
msgstr "这个用户名或者邮箱已经被使用。"
-#: cps/web.py:1361 cps/web.py:1373
+#: cps/web.py:1113 cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1366 cps/web.py:1378
+#: cps/web.py:1118 cps/web.py:1130
msgid "Wrong Username or Password"
msgstr "用户名或密码错误"
-#: cps/web.py:1369
+#: cps/web.py:1121
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
-#: cps/web.py:1384 cps/web.py:1406
+#: cps/web.py:1136 cps/web.py:1158
msgid "login"
msgstr "登录"
-#: cps/web.py:1418 cps/web.py:1449
+#: cps/web.py:1170 cps/web.py:1201
msgid "Token not found"
msgstr "找不到Token"
-#: cps/web.py:1426 cps/web.py:1457
+#: cps/web.py:1178 cps/web.py:1209
msgid "Token has expired"
msgstr "Token已过期"
-#: cps/web.py:1434
+#: cps/web.py:1186
msgid "Success! Please return to your device"
msgstr "成功!请返回您的设备"
-#: cps/web.py:1470
+#: cps/web.py:1222
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "您现在已以'%(nickname)s'身份登录"
-#: cps/web.py:1484
-msgid "Please configure the SMTP mail settings first..."
-msgstr "请先配置SMTP邮箱..."
-
-#: cps/web.py:1489
-#, python-format
-msgid "Book successfully queued for sending to %(kindlemail)s"
-msgstr "书籍已经被成功加入 %(kindlemail)s 的发送队列"
-
-#: cps/web.py:1493
-#, python-format
-msgid "There was an error sending this book: %(res)s"
-msgstr "发送这本书的时候出现错误: %(res)s"
-
-#: cps/web.py:1530 cps/web.py:1555 cps/web.py:1559
+#: cps/web.py:1263 cps/web.py:1290 cps/web.py:1294
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s 的资料"
-#: cps/web.py:1553
+#: cps/web.py:1287
msgid "Found an existing account for this e-mail address."
msgstr "找到一个已有账号使用这个邮箱。"
-#: cps/web.py:1557
+#: cps/web.py:1292
msgid "Profile updated"
msgstr "资料已更新"
+#: cps/web.py:1316 cps/web.py:1318 cps/web.py:1320 cps/web.py:1324
+#: cps/web.py:1328 cps/web.py:1332 cps/web.py:1344
+msgid "Read a Book"
+msgstr "阅读一本书"
+
#: cps/worker.py:308
#, python-format
msgid "Ebook-converter failed: %(error)s"
@@ -1083,7 +1093,7 @@ msgstr "确定"
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:77
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
-#: cps/templates/user_edit.html:127
+#: cps/templates/user_edit.html:128
msgid "Back"
msgstr "后退"
@@ -1103,14 +1113,19 @@ msgstr ""
msgid "In Library"
msgstr ""
-#: cps/templates/author.html:50 cps/templates/author.html:97
-#: cps/templates/discover.html:28 cps/templates/index.html:30
-#: cps/templates/index.html:97 cps/templates/search.html:55
+#: cps/templates/author.html:34 cps/templates/list.html:9
+#: cps/templates/search.html:41
+msgid "All"
+msgstr ""
+
+#: cps/templates/author.html:62 cps/templates/author.html:109
+#: cps/templates/discover.html:27 cps/templates/index.html:30
+#: cps/templates/index.html:97 cps/templates/search.html:67
#: cps/templates/shelf.html:40
msgid "reduce"
msgstr ""
-#: cps/templates/author.html:81
+#: cps/templates/author.html:93
msgid "More by"
msgstr ""
@@ -1218,7 +1233,7 @@ msgstr "获取元数据"
#: cps/templates/book_edit.html:177 cps/templates/config_edit.html:279
#: cps/templates/config_view_edit.html:140 cps/templates/login.html:20
#: cps/templates/search_form.html:150 cps/templates/shelf_edit.html:17
-#: cps/templates/user_edit.html:125
+#: cps/templates/user_edit.html:126
msgid "Submit"
msgstr "提交"
@@ -1254,8 +1269,8 @@ msgstr "点击封面加载元数据到表单"
msgid "Loading..."
msgstr "加载中..."
-#: cps/templates/book_edit.html:239 cps/templates/layout.html:199
-#: cps/templates/layout.html:231
+#: cps/templates/book_edit.html:239 cps/templates/layout.html:187
+#: cps/templates/layout.html:219
msgid "Close"
msgstr "关闭"
@@ -1484,8 +1499,7 @@ msgstr "登录"
msgid "View Configuration"
msgstr "查看配置"
-#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:132
-#: cps/templates/layout.html:133 cps/templates/shelf_edit.html:7
+#: cps/templates/config_view_edit.html:19 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "标题"
@@ -1529,31 +1543,31 @@ msgstr "成人内容标签"
msgid "Default settings for new users"
msgstr "新用户默认设置"
-#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:82
+#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr "管理用户"
-#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:91
+#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:92
msgid "Allow Downloads"
msgstr "允许下载"
-#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:95
+#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:96
msgid "Allow Uploads"
msgstr "允许上传"
-#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:99
+#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:100
msgid "Allow Edit"
msgstr "允许编辑"
-#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:103
+#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:104
msgid "Allow Delete books"
msgstr "允许删除书籍"
-#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:108
+#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:109
msgid "Allow Changing Password"
msgstr "允许修改密码"
-#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:112
+#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:113
msgid "Allow Editing Public Shelfs"
msgstr "允许编辑公共书架"
@@ -1561,11 +1575,11 @@ msgstr "允许编辑公共书架"
msgid "Default visibilities for new users"
msgstr "新用户的默认显示权限"
-#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:74
+#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr "在详情页显示随机书籍"
-#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:87
+#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:88
msgid "Show mature content"
msgstr "显示成人内容"
@@ -1669,7 +1683,7 @@ msgstr "添加"
msgid "Do you really want to delete this domain rule?"
msgstr "您确定要删除这条域名规则吗?"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:183
+#: cps/templates/feed.xml:21 cps/templates/layout.html:171
msgid "Next"
msgstr "下一个"
@@ -1686,8 +1700,8 @@ msgstr ""
msgid "Discover (Random Books)"
msgstr "发现(随机书籍)"
-#: cps/templates/index.html:69 cps/templates/list.html:8
-msgid "All"
+#: cps/templates/index.html:69
+msgid "Group by series"
msgstr ""
#: cps/templates/index.xml:6
@@ -1730,7 +1744,7 @@ msgstr "书籍按分类排序"
msgid "Books ordered by series"
msgstr "书籍按丛书排序"
-#: cps/templates/index.xml:89 cps/templates/layout.html:144
+#: cps/templates/index.xml:89 cps/templates/layout.html:132
msgid "Public Shelves"
msgstr "公开书架"
@@ -1738,7 +1752,7 @@ msgstr "公开书架"
msgid "Books organized in public shelfs, visible to everyone"
msgstr "公开书架中的书籍,对所有人都可见"
-#: cps/templates/index.xml:97 cps/templates/layout.html:148
+#: cps/templates/index.xml:97 cps/templates/layout.html:136
msgid "Your Shelves"
msgstr "您的书架"
@@ -1775,7 +1789,7 @@ msgstr "注销"
msgid "Register"
msgstr "注册"
-#: cps/templates/layout.html:111 cps/templates/layout.html:230
+#: cps/templates/layout.html:111 cps/templates/layout.html:218
msgid "Uploading..."
msgstr "上传中..."
@@ -1787,52 +1801,27 @@ msgstr "请不要刷新页面"
msgid "Browse"
msgstr "浏览"
-#: cps/templates/layout.html:126
-msgid "Sorted Books"
-msgstr "已排序书籍"
-
-#: cps/templates/layout.html:130 cps/templates/layout.html:131
-#: cps/templates/layout.html:132 cps/templates/layout.html:133
-msgid "Sort By"
-msgstr "排序"
-
-#: cps/templates/layout.html:130
-msgid "Newest"
-msgstr "最新"
-
-#: cps/templates/layout.html:131
-msgid "Oldest"
-msgstr "最旧"
-
-#: cps/templates/layout.html:132
-msgid "Ascending"
-msgstr "升序"
-
-#: cps/templates/layout.html:133
-msgid "Descending"
-msgstr "降序"
-
-#: cps/templates/layout.html:153
+#: cps/templates/layout.html:141
msgid "Create a Shelf"
msgstr "创建书架"
-#: cps/templates/layout.html:154 cps/templates/stats.html:3
+#: cps/templates/layout.html:142 cps/templates/stats.html:3
msgid "About"
msgstr "关于"
-#: cps/templates/layout.html:168
+#: cps/templates/layout.html:156
msgid "Previous"
msgstr "上一个"
-#: cps/templates/layout.html:195
+#: cps/templates/layout.html:183
msgid "Book Details"
msgstr "书籍详情"
-#: cps/templates/layout.html:229
+#: cps/templates/layout.html:217
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:232
+#: cps/templates/layout.html:220
msgid "Error"
msgstr ""
@@ -2130,27 +2119,31 @@ msgstr "重置用户密码"
msgid "Kindle E-Mail"
msgstr ""
-#: cps/templates/user_edit.html:39
+#: cps/templates/user_edit.html:40
msgid "Show books with language"
msgstr "按语言显示书籍"
-#: cps/templates/user_edit.html:41
+#: cps/templates/user_edit.html:42
msgid "Show all"
msgstr "显示全部"
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:52
msgid "OAuth Settings"
msgstr ""
+#: cps/templates/user_edit.html:54
+msgid "Link"
+msgstr ""
+
#: cps/templates/user_edit.html:56
msgid "Unlink"
msgstr ""
-#: cps/templates/user_edit.html:119
+#: cps/templates/user_edit.html:120
msgid "Delete this user"
msgstr "删除此用户"
-#: cps/templates/user_edit.html:134
+#: cps/templates/user_edit.html:135
msgid "Recent Downloads"
msgstr "最近下载"
@@ -3414,3 +3407,39 @@ msgstr "最近下载"
#~ msgid "Show sorted books"
#~ msgstr "显示已排序书籍"
+#~ msgid "Public registration is not enabled"
+#~ msgstr ""
+
+#~ msgid "Newest Books"
+#~ msgstr "最新书籍"
+
+#~ msgid "Oldest Books"
+#~ msgstr "最旧书籍"
+
+#~ msgid "Books (A-Z)"
+#~ msgstr "书籍 (A-Z)"
+
+#~ msgid "Books (Z-A)"
+#~ msgstr "书籍 (Z-A)"
+
+#~ msgid "Ratings: %(serie)s"
+#~ msgstr ""
+
+#~ msgid "Sorted Books"
+#~ msgstr "已排序书籍"
+
+#~ msgid "Sort By"
+#~ msgstr "排序"
+
+#~ msgid "Newest"
+#~ msgstr "最新"
+
+#~ msgid "Oldest"
+#~ msgstr "最旧"
+
+#~ msgid "Ascending"
+#~ msgstr "升序"
+
+#~ msgid "Descending"
+#~ msgstr "降序"
+
diff --git a/cps/updater.py b/cps/updater.py
index c0c21e9c..be851e9e 100644
--- a/cps/updater.py
+++ b/cps/updater.py
@@ -230,6 +230,7 @@ class Updater(threading.Thread):
app.logger.debug("Could not remove:" + item_path)
shutil.rmtree(source, ignore_errors=True)
+ @classmethod
def _nightly_version_info(self):
content = {}
content[0] = '$Format:%H$'
@@ -240,6 +241,7 @@ class Updater(threading.Thread):
return {'version': content[0], 'datetime': content[1]}
return False
+ @classmethod
def _stable_version_info(self):
return {'version': '0.6.1'} # Current version
@@ -341,58 +343,6 @@ class Updater(threading.Thread):
status['message'] = _(u'Could not fetch update information')
# a new update is available
- status['update'] = True
- if 'body' in commit:
- status['success'] = True
- status['message'] = _(
- u'A new update is available. Click on the button below to update to the latest version.')
-
- new_commit_date = datetime.datetime.strptime(
- commit['committer']['date'], '%Y-%m-%dT%H:%M:%SZ') - tz
- parents.append(
- [
- format_datetime(new_commit_date, format='short', locale=get_locale()),
- commit['message'],
- commit['sha']
- ]
- )
-
- # it only makes sense to analyze the parents if we know the current commit hash
- if status['current_commit_hash'] != '':
- try:
- parent_commit = commit['parents'][0]
- # limit the maximum search depth
- remaining_parents_cnt = 10
- except IndexError:
- remaining_parents_cnt = None
-
- if remaining_parents_cnt is not None:
- while True:
- if remaining_parents_cnt == 0:
- break
-
- # check if we are more than one update behind if so, go up the tree
- if commit['sha'] != status['current_commit_hash']:
- try:
- headers = {'Accept': 'application/vnd.github.v3+json'}
- r = requests.get(parent_commit['url'], headers=headers)
- r.raise_for_status()
- parent_data = r.json()
-
- parent_commit_date = datetime.datetime.strptime(
- parent_data['committer']['date'], '%Y-%m-%dT%H:%M:%SZ') - tz
- parent_commit_date = format_datetime(
- parent_commit_date, format='short', locale=get_locale())
-
- parents.append([parent_commit_date, parent_data['message'], parent_data['sha']])
- parent_commit = parent_data['parents'][0]
- remaining_parents_cnt -= 1
- except Exception:
- # it isn't crucial if we can't get information about the parent
- break
- else:
- # parent is our current version
- break
status['history'] = parents[::-1]
return json.dumps(status)
return ''
diff --git a/cps/web.py b/cps/web.py
index 69d1fcd4..4436be6c 100644
--- a/cps/web.py
+++ b/cps/web.py
@@ -563,7 +563,7 @@ def author_list():
# ToDo wrong order function
def render_author_books(page, book_id, order):
entries, __, pagination = fill_indexpage(page, db.Books, db.Books.authors.any(db.Authors.id == book_id),
- [order[0], db.Series.name, db.Books.series_index], db.books_series_link, db.Series)
+ [db.Series.name, db.Books.series_index, order[0]], db.books_series_link, db.Series)
if entries is None:
flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error")
return redirect(url_for("web.index"))
@@ -609,8 +609,7 @@ def publisher(book_id, page):
if publisher:
entries, random, pagination = fill_indexpage(page, db.Books,
db.Books.publishers.any(db.Publishers.id == book_id),
- (db.Series.name, db.Books.series_index), db.books_series_link,
- db.Series)
+ [db.Books.series_index])
return render_title_template('index.html', random=random, entries=entries, pagination=pagination,
title=_(u"Publisher: %(name)s", name=publisher.name), page="publisher")
else:
diff --git a/messages.pot b/messages.pot
index e9b0c08f..c2c95e7e 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: 2019-03-10 08:24+0100\n"
+"POT-Creation-Date: 2019-03-24 08:25+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -21,185 +21,194 @@ msgstr ""
msgid "Statistics"
msgstr ""
-#: cps/admin.py:96
+#: cps/admin.py:97
msgid "Server restarted, please reload page"
msgstr ""
-#: cps/admin.py:99
+#: cps/admin.py:100
msgid "Performing shutdown of server, please close window"
msgstr ""
-#: cps/admin.py:119 cps/updater.py:498
+#: cps/admin.py:120 cps/updater.py:498
msgid "Unknown"
msgstr ""
-#: cps/admin.py:138
+#: cps/admin.py:139
msgid "Admin page"
msgstr ""
-#: cps/admin.py:203 cps/admin.py:474
+#: cps/admin.py:206 cps/admin.py:484
msgid "Calibre-Web configuration updated"
msgstr ""
-#: cps/admin.py:217 cps/templates/admin.html:100
+#: cps/admin.py:220 cps/templates/admin.html:100
msgid "UI Configuration"
msgstr ""
-#: cps/admin.py:290
+#: cps/admin.py:293
msgid "Import of optional Google Drive requirements missing"
msgstr ""
-#: cps/admin.py:293
+#: cps/admin.py:296
msgid "client_secrets.json is missing or not readable"
msgstr ""
-#: cps/admin.py:298 cps/admin.py:327
+#: cps/admin.py:301 cps/admin.py:330
msgid "client_secrets.json is not configured for web application"
msgstr ""
-#: cps/admin.py:330 cps/admin.py:356 cps/admin.py:368 cps/admin.py:393
-#: cps/admin.py:451 cps/admin.py:464 cps/admin.py:482 cps/admin.py:489
-#: cps/admin.py:504 cps/templates/admin.html:99
+#: cps/admin.py:333 cps/admin.py:359 cps/admin.py:371 cps/admin.py:396
+#: cps/admin.py:424 cps/admin.py:438 cps/admin.py:461 cps/admin.py:474
+#: cps/admin.py:492 cps/admin.py:499 cps/admin.py:514
+#: cps/templates/admin.html:99
msgid "Basic Configuration"
msgstr ""
-#: cps/admin.py:353
+#: cps/admin.py:356
msgid "Keyfile location is not valid, please enter correct path"
msgstr ""
-#: cps/admin.py:365
+#: cps/admin.py:368
msgid "Certfile location is not valid, please enter correct path"
msgstr ""
-#: cps/admin.py:390
+#: cps/admin.py:393
msgid "Please enter a LDAP provider and a DN"
msgstr ""
-#: cps/admin.py:448
+#: cps/admin.py:421
+msgid "Please enter Github oauth credentials"
+msgstr ""
+
+#: cps/admin.py:435
+msgid "Please enter Google oauth credentials"
+msgstr ""
+
+#: cps/admin.py:458
msgid "Logfile location is not valid, please enter correct path"
msgstr ""
-#: cps/admin.py:486
+#: cps/admin.py:496
msgid "DB location is not valid, please enter correct path"
msgstr ""
-#: cps/admin.py:546 cps/web.py:1303
+#: cps/admin.py:556 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr ""
-#: cps/admin.py:548 cps/admin.py:554 cps/admin.py:570
+#: cps/admin.py:558 cps/admin.py:564 cps/admin.py:580
#: cps/templates/admin.html:33
msgid "Add new user"
msgstr ""
-#: cps/admin.py:552 cps/web.py:1528
+#: cps/admin.py:562 cps/web.py:1261
msgid "E-mail is not from valid domain"
msgstr ""
-#: cps/admin.py:560
+#: cps/admin.py:570
#, python-format
msgid "User '%(user)s' created"
msgstr ""
-#: cps/admin.py:564
+#: cps/admin.py:574
msgid "Found an existing account for this e-mail address or nickname."
msgstr ""
-#: cps/admin.py:595
+#: cps/admin.py:605
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr ""
-#: cps/admin.py:598
+#: cps/admin.py:608
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr ""
-#: cps/admin.py:600 cps/web.py:1495
+#: cps/admin.py:610 cps/web.py:1039
msgid "Please configure your kindle e-mail address first..."
msgstr ""
-#: cps/admin.py:602
+#: cps/admin.py:612
msgid "E-mail server settings updated"
msgstr ""
-#: cps/admin.py:603
+#: cps/admin.py:613
msgid "Edit e-mail server settings"
msgstr ""
-#: cps/admin.py:628
+#: cps/admin.py:638
#, python-format
msgid "User '%(nick)s' deleted"
msgstr ""
-#: cps/admin.py:694
+#: cps/admin.py:704
#, python-format
msgid "User '%(nick)s' updated"
msgstr ""
-#: cps/admin.py:697
+#: cps/admin.py:707
msgid "An unknown error occured."
msgstr ""
-#: cps/admin.py:700
+#: cps/admin.py:710
#, python-format
msgid "Edit User %(nick)s"
msgstr ""
-#: cps/admin.py:716
+#: cps/admin.py:726
#, python-format
msgid "Password for user %(user)s reset"
msgstr ""
-#: cps/admin.py:719 cps/web.py:1328
+#: cps/admin.py:729 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr ""
-#: cps/admin.py:738
+#: cps/admin.py:748
msgid "Requesting update package"
msgstr ""
-#: cps/admin.py:739
+#: cps/admin.py:749
msgid "Downloading update package"
msgstr ""
-#: cps/admin.py:740
+#: cps/admin.py:750
msgid "Unzipping update package"
msgstr ""
-#: cps/admin.py:741
+#: cps/admin.py:751
msgid "Replacing files"
msgstr ""
-#: cps/admin.py:742
+#: cps/admin.py:752
msgid "Database connections are closed"
msgstr ""
-#: cps/admin.py:743
+#: cps/admin.py:753
msgid "Stopping server"
msgstr ""
-#: cps/admin.py:744
+#: cps/admin.py:754
msgid "Update finished, please press okay and reload page"
msgstr ""
-#: cps/admin.py:745 cps/admin.py:746 cps/admin.py:747 cps/admin.py:748
+#: cps/admin.py:755 cps/admin.py:756 cps/admin.py:757 cps/admin.py:758
msgid "Update failed:"
msgstr ""
-#: cps/admin.py:745 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
+#: cps/admin.py:755 cps/updater.py:275 cps/updater.py:509 cps/updater.py:511
msgid "HTTP Error"
msgstr ""
-#: cps/admin.py:746 cps/updater.py:277 cps/updater.py:513
+#: cps/admin.py:756 cps/updater.py:277 cps/updater.py:513
msgid "Connection error"
msgstr ""
-#: cps/admin.py:747 cps/updater.py:279 cps/updater.py:515
+#: cps/admin.py:757 cps/updater.py:279 cps/updater.py:515
msgid "Timeout while establishing connection"
msgstr ""
-#: cps/admin.py:748 cps/updater.py:281 cps/updater.py:517
+#: cps/admin.py:758 cps/updater.py:281 cps/updater.py:517
msgid "General error"
msgstr ""
@@ -216,98 +225,98 @@ msgstr ""
msgid "not configured"
msgstr ""
-#: cps/editbooks.py:219 cps/editbooks.py:425
+#: cps/editbooks.py:218 cps/editbooks.py:410
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr ""
-#: cps/editbooks.py:247
+#: cps/editbooks.py:246
msgid "edit metadata"
msgstr ""
-#: cps/editbooks.py:340 cps/editbooks.py:587
+#: cps/editbooks.py:325 cps/editbooks.py:572
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr ""
-#: cps/editbooks.py:344 cps/editbooks.py:591
+#: cps/editbooks.py:329 cps/editbooks.py:576
msgid "File to be uploaded must have an extension"
msgstr ""
-#: cps/editbooks.py:356 cps/editbooks.py:611
+#: cps/editbooks.py:341 cps/editbooks.py:596
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:361
+#: cps/editbooks.py:346
#, python-format
msgid "Failed to store file %(file)s."
msgstr ""
-#: cps/editbooks.py:378
+#: cps/editbooks.py:363
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr ""
-#: cps/editbooks.py:396
+#: cps/editbooks.py:381
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:404
-#, python-format
-msgid "Failed to store cover-file %(cover)s."
+#: cps/editbooks.py:389
+msgid "Cover-file is not a valid image file"
msgstr ""
-#: cps/editbooks.py:407
-msgid "Cover-file is not a valid image file"
+#: cps/editbooks.py:392
+#, python-format
+msgid "Failed to store cover-file %(cover)s."
msgstr ""
-#: cps/editbooks.py:437 cps/editbooks.py:446
+#: cps/editbooks.py:422 cps/editbooks.py:431
msgid "unknown"
msgstr ""
-#: cps/editbooks.py:478
+#: cps/editbooks.py:463
msgid "Cover is not a jpg file, can't save"
msgstr ""
-#: cps/editbooks.py:526
+#: cps/editbooks.py:511
#, python-format
msgid "%(langname)s is not a valid language"
msgstr ""
-#: cps/editbooks.py:557
+#: cps/editbooks.py:542
msgid "Metadata successfully updated"
msgstr ""
-#: cps/editbooks.py:566
+#: cps/editbooks.py:551
msgid "Error editing book, please check logfile for details"
msgstr ""
-#: cps/editbooks.py:616
+#: cps/editbooks.py:601
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:621
+#: cps/editbooks.py:606
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr ""
-#: cps/editbooks.py:704
+#: cps/editbooks.py:689
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:733
+#: cps/editbooks.py:718
msgid "Source or destination format for conversion missing"
msgstr ""
-#: cps/editbooks.py:743
+#: cps/editbooks.py:728
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr ""
-#: cps/editbooks.py:747
+#: cps/editbooks.py:732
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr ""
@@ -320,133 +329,133 @@ msgstr ""
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr ""
-#: cps/helper.py:66
+#: cps/helper.py:84
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr ""
-#: cps/helper.py:78
+#: cps/helper.py:96
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr ""
-#: cps/helper.py:85 cps/helper.py:193 cps/templates/detail.html:45
+#: cps/helper.py:103 cps/helper.py:211 cps/templates/detail.html:45
#: cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr ""
-#: cps/helper.py:86 cps/helper.py:104 cps/helper.py:195
+#: cps/helper.py:104 cps/helper.py:122 cps/helper.py:213
msgid "This e-mail has been sent via Calibre-Web."
msgstr ""
-#: cps/helper.py:97
+#: cps/helper.py:115
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr ""
-#: cps/helper.py:102
+#: cps/helper.py:120
msgid "Calibre-Web test e-mail"
msgstr ""
-#: cps/helper.py:103
+#: cps/helper.py:121
msgid "Test e-mail"
msgstr ""
-#: cps/helper.py:119
+#: cps/helper.py:137
msgid "Get Started with Calibre-Web"
msgstr ""
-#: cps/helper.py:120
+#: cps/helper.py:138
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr ""
-#: cps/helper.py:133 cps/helper.py:135 cps/helper.py:137 cps/helper.py:139
-#: cps/helper.py:145 cps/helper.py:147 cps/helper.py:149 cps/helper.py:151
+#: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
+#: cps/helper.py:163 cps/helper.py:165 cps/helper.py:167 cps/helper.py:169
#, python-format
msgid "Send %(format)s to Kindle"
msgstr ""
-#: cps/helper.py:155 cps/helper.py:159
+#: cps/helper.py:173 cps/helper.py:177
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr ""
-#: cps/helper.py:194
+#: cps/helper.py:212
#, python-format
msgid "E-mail: %(book)s"
msgstr ""
-#: cps/helper.py:197
+#: cps/helper.py:215
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr ""
-#: cps/helper.py:305
+#: cps/helper.py:323
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:315
+#: cps/helper.py:333
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:329
+#: cps/helper.py:347
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
-#: cps/helper.py:355 cps/helper.py:365 cps/helper.py:373
+#: cps/helper.py:373 cps/helper.py:383 cps/helper.py:391
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:394
+#: cps/helper.py:412
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr ""
-#: cps/helper.py:502
+#: cps/helper.py:520
msgid "Error excecuting UnRar"
msgstr ""
-#: cps/helper.py:504
+#: cps/helper.py:522
msgid "Unrar binary file not found"
msgstr ""
-#: cps/helper.py:535
+#: cps/helper.py:553
msgid "Waiting"
msgstr ""
-#: cps/helper.py:537
+#: cps/helper.py:555
msgid "Failed"
msgstr ""
-#: cps/helper.py:539
+#: cps/helper.py:557
msgid "Started"
msgstr ""
-#: cps/helper.py:541
+#: cps/helper.py:559
msgid "Finished"
msgstr ""
-#: cps/helper.py:543
+#: cps/helper.py:561
msgid "Unknown Status"
msgstr ""
-#: cps/helper.py:548
+#: cps/helper.py:566
msgid "E-mail: "
msgstr ""
-#: cps/helper.py:550 cps/helper.py:554
+#: cps/helper.py:568 cps/helper.py:572
msgid "Convert: "
msgstr ""
-#: cps/helper.py:552
+#: cps/helper.py:570
msgid "Upload: "
msgstr ""
-#: cps/helper.py:556
+#: cps/helper.py:574
msgid "Unknown Task: "
msgstr ""
@@ -471,30 +480,26 @@ msgstr ""
msgid "Failed to fetch user info from Google."
msgstr ""
-#: cps/oauth_bb.py:229
-msgid "Public registration is not enabled"
-msgstr ""
-
-#: cps/oauth_bb.py:264
+#: cps/oauth_bb.py:265
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr ""
-#: cps/oauth_bb.py:268
+#: cps/oauth_bb.py:269
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr ""
-#: cps/oauth_bb.py:271
+#: cps/oauth_bb.py:272
#, python-format
msgid "Not linked to %(oauth)s."
msgstr ""
-#: cps/oauth_bb.py:299
+#: cps/oauth_bb.py:300
msgid "GitHub Oauth error, please retry later."
msgstr ""
-#: cps/oauth_bb.py:318
+#: cps/oauth_bb.py:319
msgid "Google Oauth error, please retry later."
msgstr ""
@@ -587,119 +592,127 @@ msgstr ""
msgid "successfully deleted shelf %(name)s"
msgstr ""
-#: cps/shelf.py:286 cps/shelf.py:316
+#: cps/shelf.py:289
#, python-format
msgid "Shelf: '%(name)s'"
msgstr ""
-#: cps/shelf.py:289 cps/shelf.py:319
+#: cps/shelf.py:292
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr ""
-#: cps/shelf.py:349
+#: cps/shelf.py:324
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr ""
-#: cps/ub.py:106
+#: cps/ub.py:107
msgid "Recently Added"
msgstr ""
-#: cps/ub.py:108
+#: cps/ub.py:109
msgid "Show recent books"
msgstr ""
-#: cps/templates/index.xml:17 cps/ub.py:109
+#: cps/templates/index.xml:17 cps/ub.py:110
msgid "Hot Books"
msgstr ""
-#: cps/ub.py:110
+#: cps/ub.py:111
msgid "Show hot books"
msgstr ""
-#: cps/templates/index.xml:24 cps/ub.py:113
+#: cps/templates/index.xml:24 cps/ub.py:114
msgid "Best rated Books"
msgstr ""
-#: cps/ub.py:115
+#: cps/ub.py:116
msgid "Show best rated books"
msgstr ""
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:116
-#: cps/web.py:1193
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:117
+#: cps/web.py:975
msgid "Read Books"
msgstr ""
-#: cps/ub.py:118
+#: cps/ub.py:119
msgid "Show read and unread"
msgstr ""
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:120
-#: cps/web.py:1196
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:121
+#: cps/web.py:979
msgid "Unread Books"
msgstr ""
-#: cps/ub.py:122
+#: cps/ub.py:123
msgid "Show unread"
msgstr ""
-#: cps/ub.py:123
+#: cps/ub.py:124
msgid "Discover"
msgstr ""
-#: cps/ub.py:125
+#: cps/ub.py:126
msgid "Show random books"
msgstr ""
-#: cps/ub.py:126
+#: cps/ub.py:127
msgid "Categories"
msgstr ""
-#: cps/ub.py:128
+#: cps/ub.py:129
msgid "Show category selection"
msgstr ""
#: cps/templates/book_edit.html:75 cps/templates/search_form.html:53
-#: cps/ub.py:129
+#: cps/ub.py:130
msgid "Series"
msgstr ""
-#: cps/ub.py:131
+#: cps/ub.py:132
msgid "Show series selection"
msgstr ""
-#: cps/templates/index.xml:61 cps/ub.py:132
+#: cps/templates/index.xml:61 cps/ub.py:133
msgid "Authors"
msgstr ""
-#: cps/ub.py:134
+#: cps/ub.py:135
msgid "Show author selection"
msgstr ""
-#: cps/templates/index.xml:68 cps/ub.py:136
+#: cps/templates/index.xml:68 cps/ub.py:137
msgid "Publishers"
msgstr ""
-#: cps/ub.py:138
+#: cps/ub.py:139
msgid "Show publisher selection"
msgstr ""
-#: cps/templates/search_form.html:74 cps/ub.py:139
+#: cps/templates/search_form.html:74 cps/ub.py:140
msgid "Languages"
msgstr ""
-#: cps/ub.py:142
+#: cps/ub.py:143
msgid "Show language selection"
msgstr ""
-#: cps/ub.py:143
+#: cps/ub.py:144
msgid "Ratings"
msgstr ""
-#: cps/ub.py:145
+#: cps/ub.py:146
msgid "Show ratings selection"
msgstr ""
+#: cps/ub.py:147
+msgid "File formats"
+msgstr ""
+
+#: cps/ub.py:149
+msgid "Show file formats selection"
+msgstr ""
+
#: cps/updater.py:255 cps/updater.py:417 cps/updater.py:430
msgid "Unexpected data while reading update information"
msgstr ""
@@ -725,196 +738,193 @@ msgstr ""
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
-#: cps/web.py:497
+#: cps/web.py:464
msgid "Recently Added Books"
msgstr ""
-#: cps/web.py:506
-msgid "Newest Books"
-msgstr ""
-
-#: cps/web.py:515
-msgid "Oldest Books"
+#: cps/web.py:491
+msgid "Best rated books"
msgstr ""
-#: cps/web.py:524
-msgid "Books (A-Z)"
+#: cps/templates/index.xml:38 cps/web.py:499
+msgid "Random Books"
msgstr ""
-#: cps/web.py:533
-msgid "Books (Z-A)"
+#: cps/web.py:513
+msgid "Books"
msgstr ""
-#: cps/web.py:562
+#: cps/web.py:540
msgid "Hot Books (most downloaded)"
msgstr ""
-#: cps/web.py:575
-msgid "Best rated books"
-msgstr ""
-
-#: cps/templates/index.xml:38 cps/web.py:588
-msgid "Random Books"
-msgstr ""
-
-#: cps/web.py:618 cps/web.py:925 cps/web.py:1206
+#: cps/web.py:568 cps/web.py:1306 cps/web.py:1409
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr ""
-#: cps/web.py:650
+#: cps/web.py:599
msgid "Publisher list"
msgstr ""
-#: cps/web.py:666
+#: cps/web.py:614
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
-#: cps/templates/index.xml:82 cps/web.py:704
+#: cps/templates/index.xml:82 cps/web.py:630
msgid "Series list"
msgstr ""
-#: cps/web.py:718
+#: cps/web.py:644
#, python-format
msgid "Series: %(serie)s"
msgstr ""
-#: cps/web.py:734
+#: cps/web.py:658
msgid "Ratings list"
msgstr ""
-#: cps/web.py:748
+#: cps/web.py:672
#, python-format
-msgid "Ratings: %(serie)s"
+msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:776
+#: cps/web.py:685
+msgid "File formats list"
+msgstr ""
+
+#: cps/web.py:699
+#, python-format
+msgid "File format: %(format)s"
+msgstr ""
+
+#: cps/web.py:727
msgid "Available languages"
msgstr ""
-#: cps/web.py:796
+#: cps/web.py:747
#, python-format
msgid "Language: %(name)s"
msgstr ""
-#: cps/templates/index.xml:75 cps/web.py:810
+#: cps/templates/index.xml:75 cps/web.py:761
msgid "Category list"
msgstr ""
-#: cps/web.py:825
+#: cps/web.py:776
#, python-format
msgid "Category: %(name)s"
msgstr ""
-#: cps/templates/layout.html:73 cps/web.py:957
+#: cps/templates/layout.html:73 cps/web.py:787
msgid "Tasks"
msgstr ""
-#: cps/web.py:1028
+#: cps/web.py:851
msgid "Published after "
msgstr ""
-#: cps/web.py:1035
+#: cps/web.py:858
msgid "Published before "
msgstr ""
-#: cps/web.py:1049
+#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr ""
-#: cps/web.py:1051
+#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr ""
-#: cps/web.py:1112 cps/web.py:1121
+#: cps/web.py:935 cps/web.py:944
msgid "search"
msgstr ""
-#: cps/web.py:1216 cps/web.py:1218 cps/web.py:1220 cps/web.py:1224
-#: cps/web.py:1228 cps/web.py:1232 cps/web.py:1244
-msgid "Read a Book"
+#: cps/web.py:1028
+msgid "Please configure the SMTP mail settings first..."
+msgstr ""
+
+#: cps/web.py:1033
+#, python-format
+msgid "Book successfully queued for sending to %(kindlemail)s"
+msgstr ""
+
+#: cps/web.py:1037
+#, python-format
+msgid "There was an error sending this book: %(res)s"
msgstr ""
-#: cps/web.py:1304 cps/web.py:1329 cps/web.py:1334 cps/web.py:1339
-#: cps/web.py:1343
+#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1086 cps/web.py:1091
+#: cps/web.py:1095
msgid "register"
msgstr ""
-#: cps/web.py:1331
+#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr ""
-#: cps/web.py:1335
+#: cps/web.py:1087
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
-#: cps/web.py:1338
+#: cps/web.py:1090
msgid "This username or e-mail address is already in use."
msgstr ""
-#: cps/web.py:1361 cps/web.py:1373
+#: cps/web.py:1113 cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1366 cps/web.py:1378
+#: cps/web.py:1118 cps/web.py:1130
msgid "Wrong Username or Password"
msgstr ""
-#: cps/web.py:1369
+#: cps/web.py:1121
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
-#: cps/web.py:1384 cps/web.py:1406
+#: cps/web.py:1136 cps/web.py:1158
msgid "login"
msgstr ""
-#: cps/web.py:1418 cps/web.py:1449
+#: cps/web.py:1170 cps/web.py:1201
msgid "Token not found"
msgstr ""
-#: cps/web.py:1426 cps/web.py:1457
+#: cps/web.py:1178 cps/web.py:1209
msgid "Token has expired"
msgstr ""
-#: cps/web.py:1434
+#: cps/web.py:1186
msgid "Success! Please return to your device"
msgstr ""
-#: cps/web.py:1470
+#: cps/web.py:1222
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1484
-msgid "Please configure the SMTP mail settings first..."
-msgstr ""
-
-#: cps/web.py:1489
-#, python-format
-msgid "Book successfully queued for sending to %(kindlemail)s"
-msgstr ""
-
-#: cps/web.py:1493
-#, python-format
-msgid "There was an error sending this book: %(res)s"
-msgstr ""
-
-#: cps/web.py:1530 cps/web.py:1555 cps/web.py:1559
+#: cps/web.py:1263 cps/web.py:1290 cps/web.py:1294
#, python-format
msgid "%(name)s's profile"
msgstr ""
-#: cps/web.py:1553
+#: cps/web.py:1287
msgid "Found an existing account for this e-mail address."
msgstr ""
-#: cps/web.py:1557
+#: cps/web.py:1292
msgid "Profile updated"
msgstr ""
+#: cps/web.py:1316 cps/web.py:1318 cps/web.py:1320 cps/web.py:1324
+#: cps/web.py:1328 cps/web.py:1332 cps/web.py:1344
+msgid "Read a Book"
+msgstr ""
+
#: cps/worker.py:308
#, python-format
msgid "Ebook-converter failed: %(error)s"
@@ -1082,7 +1092,7 @@ msgstr ""
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:77
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
-#: cps/templates/user_edit.html:127
+#: cps/templates/user_edit.html:128
msgid "Back"
msgstr ""
@@ -1102,14 +1112,19 @@ msgstr ""
msgid "In Library"
msgstr ""
-#: cps/templates/author.html:50 cps/templates/author.html:97
-#: cps/templates/discover.html:28 cps/templates/index.html:30
-#: cps/templates/index.html:97 cps/templates/search.html:55
+#: cps/templates/author.html:34 cps/templates/list.html:9
+#: cps/templates/search.html:41
+msgid "All"
+msgstr ""
+
+#: cps/templates/author.html:62 cps/templates/author.html:109
+#: cps/templates/discover.html:27 cps/templates/index.html:30
+#: cps/templates/index.html:97 cps/templates/search.html:67
#: cps/templates/shelf.html:40
msgid "reduce"
msgstr ""
-#: cps/templates/author.html:81
+#: cps/templates/author.html:93
msgid "More by"
msgstr ""
@@ -1217,7 +1232,7 @@ msgstr ""
#: cps/templates/book_edit.html:177 cps/templates/config_edit.html:279
#: cps/templates/config_view_edit.html:140 cps/templates/login.html:20
#: cps/templates/search_form.html:150 cps/templates/shelf_edit.html:17
-#: cps/templates/user_edit.html:125
+#: cps/templates/user_edit.html:126
msgid "Submit"
msgstr ""
@@ -1253,8 +1268,8 @@ msgstr ""
msgid "Loading..."
msgstr ""
-#: cps/templates/book_edit.html:239 cps/templates/layout.html:199
-#: cps/templates/layout.html:231
+#: cps/templates/book_edit.html:239 cps/templates/layout.html:187
+#: cps/templates/layout.html:219
msgid "Close"
msgstr ""
@@ -1483,8 +1498,7 @@ msgstr ""
msgid "View Configuration"
msgstr ""
-#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:132
-#: cps/templates/layout.html:133 cps/templates/shelf_edit.html:7
+#: cps/templates/config_view_edit.html:19 cps/templates/shelf_edit.html:7
msgid "Title"
msgstr ""
@@ -1528,31 +1542,31 @@ msgstr ""
msgid "Default settings for new users"
msgstr ""
-#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:82
+#: cps/templates/config_view_edit.html:81 cps/templates/user_edit.html:83
msgid "Admin user"
msgstr ""
-#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:91
+#: cps/templates/config_view_edit.html:85 cps/templates/user_edit.html:92
msgid "Allow Downloads"
msgstr ""
-#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:95
+#: cps/templates/config_view_edit.html:89 cps/templates/user_edit.html:96
msgid "Allow Uploads"
msgstr ""
-#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:99
+#: cps/templates/config_view_edit.html:93 cps/templates/user_edit.html:100
msgid "Allow Edit"
msgstr ""
-#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:103
+#: cps/templates/config_view_edit.html:97 cps/templates/user_edit.html:104
msgid "Allow Delete books"
msgstr ""
-#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:108
+#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:109
msgid "Allow Changing Password"
msgstr ""
-#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:112
+#: cps/templates/config_view_edit.html:105 cps/templates/user_edit.html:113
msgid "Allow Editing Public Shelfs"
msgstr ""
@@ -1560,11 +1574,11 @@ msgstr ""
msgid "Default visibilities for new users"
msgstr ""
-#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:74
+#: cps/templates/config_view_edit.html:129 cps/templates/user_edit.html:75
msgid "Show random books in detail view"
msgstr ""
-#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:87
+#: cps/templates/config_view_edit.html:133 cps/templates/user_edit.html:88
msgid "Show mature content"
msgstr ""
@@ -1668,7 +1682,7 @@ msgstr ""
msgid "Do you really want to delete this domain rule?"
msgstr ""
-#: cps/templates/feed.xml:21 cps/templates/layout.html:183
+#: cps/templates/feed.xml:21 cps/templates/layout.html:171
msgid "Next"
msgstr ""
@@ -1685,8 +1699,8 @@ msgstr ""
msgid "Discover (Random Books)"
msgstr ""
-#: cps/templates/index.html:69 cps/templates/list.html:8
-msgid "All"
+#: cps/templates/index.html:69
+msgid "Group by series"
msgstr ""
#: cps/templates/index.xml:6
@@ -1729,7 +1743,7 @@ msgstr ""
msgid "Books ordered by series"
msgstr ""
-#: cps/templates/index.xml:89 cps/templates/layout.html:144
+#: cps/templates/index.xml:89 cps/templates/layout.html:132
msgid "Public Shelves"
msgstr ""
@@ -1737,7 +1751,7 @@ msgstr ""
msgid "Books organized in public shelfs, visible to everyone"
msgstr ""
-#: cps/templates/index.xml:97 cps/templates/layout.html:148
+#: cps/templates/index.xml:97 cps/templates/layout.html:136
msgid "Your Shelves"
msgstr ""
@@ -1774,7 +1788,7 @@ msgstr ""
msgid "Register"
msgstr ""
-#: cps/templates/layout.html:111 cps/templates/layout.html:230
+#: cps/templates/layout.html:111 cps/templates/layout.html:218
msgid "Uploading..."
msgstr ""
@@ -1786,52 +1800,27 @@ msgstr ""
msgid "Browse"
msgstr ""
-#: cps/templates/layout.html:126
-msgid "Sorted Books"
-msgstr ""
-
-#: cps/templates/layout.html:130 cps/templates/layout.html:131
-#: cps/templates/layout.html:132 cps/templates/layout.html:133
-msgid "Sort By"
-msgstr ""
-
-#: cps/templates/layout.html:130
-msgid "Newest"
-msgstr ""
-
-#: cps/templates/layout.html:131
-msgid "Oldest"
-msgstr ""
-
-#: cps/templates/layout.html:132
-msgid "Ascending"
-msgstr ""
-
-#: cps/templates/layout.html:133
-msgid "Descending"
-msgstr ""
-
-#: cps/templates/layout.html:153
+#: cps/templates/layout.html:141
msgid "Create a Shelf"
msgstr ""
-#: cps/templates/layout.html:154 cps/templates/stats.html:3
+#: cps/templates/layout.html:142 cps/templates/stats.html:3
msgid "About"
msgstr ""
-#: cps/templates/layout.html:168
+#: cps/templates/layout.html:156
msgid "Previous"
msgstr ""
-#: cps/templates/layout.html:195
+#: cps/templates/layout.html:183
msgid "Book Details"
msgstr ""
-#: cps/templates/layout.html:229
+#: cps/templates/layout.html:217
msgid "Upload done, processing, please wait..."
msgstr ""
-#: cps/templates/layout.html:232
+#: cps/templates/layout.html:220
msgid "Error"
msgstr ""
@@ -2129,27 +2118,31 @@ msgstr ""
msgid "Kindle E-Mail"
msgstr ""
-#: cps/templates/user_edit.html:39
+#: cps/templates/user_edit.html:40
msgid "Show books with language"
msgstr ""
-#: cps/templates/user_edit.html:41
+#: cps/templates/user_edit.html:42
msgid "Show all"
msgstr ""
-#: cps/templates/user_edit.html:49
+#: cps/templates/user_edit.html:52
msgid "OAuth Settings"
msgstr ""
+#: cps/templates/user_edit.html:54
+msgid "Link"
+msgstr ""
+
#: cps/templates/user_edit.html:56
msgid "Unlink"
msgstr ""
-#: cps/templates/user_edit.html:119
+#: cps/templates/user_edit.html:120
msgid "Delete this user"
msgstr ""
-#: cps/templates/user_edit.html:134
+#: cps/templates/user_edit.html:135
msgid "Recent Downloads"
msgstr ""