From 1e5af21000bd74574e046ca65e3fff4b58ac8bbd Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sun, 31 Jan 2021 19:01:34 +0100 Subject: [PATCH 1/9] Fix #1843 (get path to script via html file and known js file instead of randomly picking last one) --- cps/static/js/edit_books.js | 4 ++-- cps/static/js/main.js | 28 ++++++++++++---------------- cps/static/js/table.js | 14 ++++++-------- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/cps/static/js/edit_books.js b/cps/static/js/edit_books.js index 5f9154fc..b7890764 100644 --- a/cps/static/js/edit_books.js +++ b/cps/static/js/edit_books.js @@ -78,10 +78,10 @@ function prefixedSource(prefix, query, cb, bhAdapter) { }); } -function getPath() { +/*function getPath() { var jsFileLocation = $("script[src*=edit_books]").attr("src"); // the js file path return jsFileLocation.substr(0, jsFileLocation.search("/static/js/edit_books.js")); // the js folder path -} +}*/ var authors = new Bloodhound({ name: "authors", diff --git a/cps/static/js/main.js b/cps/static/js/main.js index 33881aaa..fe617763 100644 --- a/cps/static/js/main.js +++ b/cps/static/js/main.js @@ -15,6 +15,11 @@ * along with this program. If not, see . */ + +function getPath() { + var jsFileLocation = $("script[src*=jquery]").attr("src"); // the js file path + return jsFileLocation.substr(0, jsFileLocation.search("/static/js/libs/jquery.min.js")); // the js folder path +} // Generic control/related handler to show/hide fields based on a checkbox' value // e.g. // @@ -110,15 +115,13 @@ $(document).ready(function() { }); function ConfirmDialog(id, dataValue, yesFn, noFn) { - var pathname = document.getElementsByTagName("script"), src = pathname[pathname.length - 1].src; - var path = src.substring(0, src.lastIndexOf("/")); var $confirm = $("#GeneralDeleteModal"); // var dataValue= e.data('value'); // target.data('value'); $confirm.modal('show'); $.ajax({ method:"get", dataType: "json", - url: path + "/../../ajax/loaddialogtexts/" + id, + url: getPath() + "/ajax/loaddialogtexts/" + id, success: function success(data) { $("#header").html(data.header); $("#text").html(data.main); @@ -140,15 +143,13 @@ function ConfirmDialog(id, dataValue, yesFn, noFn) { $("#delete_confirm").click(function() { //get data-id attribute of the clicked element - var pathname = document.getElementsByTagName("script"), src = pathname[pathname.length - 1].src; - var path = src.substring(0, src.lastIndexOf("/")); var deleteId = $(this).data("delete-id"); var bookFormat = $(this).data("delete-format"); if (bookFormat) { - window.location.href = path + "/../../delete/" + deleteId + "/" + bookFormat; + window.location.href = getPath() + "/delete/" + deleteId + "/" + bookFormat; } else { if ($(this).data("delete-format")) { - path = path + "/../../ajax/delete/" + deleteId; + path = getPath() + "/ajax/delete/" + deleteId; $.ajax({ method:"get", url: path, @@ -168,7 +169,7 @@ $("#delete_confirm").click(function() { } }); } else { - window.location.href = path + "/../../delete/" + deleteId; + window.location.href = getPath() + "/delete/" + deleteId; } } @@ -224,7 +225,7 @@ $(function() { function updateTimer() { $.ajax({ dataType: "json", - url: window.location.pathname + "/../../get_updater_status", + url: window.location.pathname + "/get_updater_status", success: function success(data) { // console.log(data.status); $("#DialogContent").html(updateText[data.status]); @@ -484,12 +485,9 @@ $(function() { $(this).attr('id'), $(this).data('value'), function (value) { - var pathname = document.getElementsByTagName("script"); - var src = pathname[pathname.length - 1].src; - var path = src.substring(0, src.lastIndexOf("/")); $.ajax({ method: "get", - url: path + "/../../kobo_auth/deleteauthtoken/" + value, + url: getPath() + "/kobo_auth/deleteauthtoken/" + value, }); $("#config_delete_kobo_token").hide(); } @@ -582,12 +580,10 @@ $(function() { $("#DialogFinished").addClass("hidden"); $("#DialogContent").html(""); $("#spinner2").show(); - var pathname = document.getElementsByTagName("script"), src = pathname[pathname.length - 1].src; - var path = src.substring(0, src.lastIndexOf("/")); $.ajax({ method:"get", dataType: "json", - url: path + "/../../import_ldap_users", + url: getPath() + "/import_ldap_users", success: function success(data) { $("#spinner2").hide(); $("#DialogContent").html(data.text); diff --git a/cps/static/js/table.js b/cps/static/js/table.js index efe0fad4..2cf4c6a2 100644 --- a/cps/static/js/table.js +++ b/cps/static/js/table.js @@ -256,13 +256,11 @@ $(function() { $("#h4").addClass("hidden"); }); function startTable(type, user_id) { - var pathname = document.getElementsByTagName("script"), src = pathname[pathname.length - 1].src; - var path = src.substring(0, src.lastIndexOf("/")); $("#restrict-elements-table").bootstrapTable({ formatNoMatches: function () { return ""; }, - url: path + "/../../ajax/listrestriction/" + type + "/" + user_id, + url: getPath() + "/ajax/listrestriction/" + type + "/" + user_id, rowStyle: function(row) { // console.log('Reihe :' + row + " Index :" + index); if (row.id.charAt(0) === "a") { @@ -276,13 +274,13 @@ $(function() { $.ajax ({ type: "Post", data: "id=" + row.id + "&type=" + row.type + "&Element=" + encodeURIComponent(row.Element), - url: path + "/../../ajax/deleterestriction/" + type + "/" + user_id, + url: getPath() + "/ajax/deleterestriction/" + type + "/" + user_id, async: true, timeout: 900, success:function() { $.ajax({ method:"get", - url: path + "/../../ajax/listrestriction/" + type + "/" + user_id, + url: getPath() + "/ajax/listrestriction/" + type + "/" + user_id, async: true, timeout: 900, success:function(data) { @@ -298,7 +296,7 @@ $(function() { $("#restrict-elements-table").removeClass("table-hover"); $("#restrict-elements-table").on("editable-save.bs.table", function (e, field, row) { $.ajax({ - url: path + "/../../ajax/editrestriction/" + type + "/" + user_id, + url: getPath() + "/ajax/editrestriction/" + type + "/" + user_id, type: "Post", data: row }); @@ -306,13 +304,13 @@ $(function() { $("[id^=submit_]").click(function() { $(this)[0].blur(); $.ajax({ - url: path + "/../../ajax/addrestriction/" + type + "/" + user_id, + url: getPath() + "/ajax/addrestriction/" + type + "/" + user_id, type: "Post", data: $(this).closest("form").serialize() + "&" + $(this)[0].name + "=", success: function () { $.ajax ({ method:"get", - url: path + "/../../ajax/listrestriction/" + type + "/" + user_id, + url: getPath() + "/ajax/listrestriction/" + type + "/" + user_id, async: true, timeout: 900, success:function(data) { From 7efae3c125bf80260167a2723cb97f8a751c0e80 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sun, 31 Jan 2021 19:20:43 +0100 Subject: [PATCH 2/9] Renamed "Recently Added" to "Books" --- cps/render_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/render_template.py b/cps/render_template.py index 16fdab13..fdd8abb7 100644 --- a/cps/render_template.py +++ b/cps/render_template.py @@ -36,7 +36,7 @@ def get_sidebar_config(kwargs=None): else: content = 'conf' in kwargs sidebar = list() - sidebar.append({"glyph": "glyphicon-book", "text": _('Recently Added'), "link": 'web.index', "id": "new", + sidebar.append({"glyph": "glyphicon-book", "text": _('Books'), "link": 'web.index', "id": "new", "visibility": constants.SIDEBAR_RECENT, 'public': True, "page": "root", "show_text": _('Show recent books'), "config_show":False}) sidebar.append({"glyph": "glyphicon-fire", "text": _('Hot Books'), "link": 'web.books_list', "id": "hot", From 127bfba135a8ebe9a9ae3090734fc9dd502e6bfe Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Mon, 1 Feb 2021 18:59:50 +0100 Subject: [PATCH 3/9] fix wrong path in get_update_status js function --- cps/static/js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/static/js/main.js b/cps/static/js/main.js index fe617763..e0f2dfe7 100644 --- a/cps/static/js/main.js +++ b/cps/static/js/main.js @@ -225,7 +225,7 @@ $(function() { function updateTimer() { $.ajax({ dataType: "json", - url: window.location.pathname + "/get_updater_status", + url: window.location.pathname + "/../../get_updater_status", success: function success(data) { // console.log(data.status); $("#DialogContent").html(updateText[data.status]); From be26e5f1522d178b8f19b192c98a509dc80fba0f Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Tue, 2 Feb 2021 18:52:31 +0100 Subject: [PATCH 4/9] Update Teststatus Update Version --- cps/constants.py | 2 +- test/Calibre-Web TestSummary_Linux.html | 80 ++++++------------------- 2 files changed, 19 insertions(+), 63 deletions(-) diff --git a/cps/constants.py b/cps/constants.py index cecfc29c..e8fa0ecc 100644 --- a/cps/constants.py +++ b/cps/constants.py @@ -131,7 +131,7 @@ def selected_roles(dictionary): BookMeta = namedtuple('BookMeta', 'file_path, extension, title, author, cover, description, tags, series, ' 'series_id, languages') -STABLE_VERSION = {'version': '0.6.11 Beta'} +STABLE_VERSION = {'version': '0.6.11'} NIGHTLY_VERSION = {} NIGHTLY_VERSION[0] = '$Format:%H$' diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index d5732e05..365e47c8 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
-

Start Time: 2021-01-30 17:56:37

+

Start Time: 2021-02-01 19:02:39

-

Stop Time: 2021-01-30 20:23:25

+

Stop Time: 2021-02-01 21:32:03

-

Duration: 1h 59 min

+

Duration: 2h 0 min

@@ -802,11 +802,11 @@ - + TestEditBooks 33 - 30 - 1 + 31 + 0 0 2 @@ -977,33 +977,11 @@ - +
TestEditBooks - test_edit_title
- -
- FAIL -
- - - - + PASS @@ -1215,8 +1193,8 @@ AssertionError: 'Very[33 chars]e without any issue of displaying including ö ut TestEditBooksOnGdrive 20 - 18 - 2 + 19 + 1 0 0 @@ -1361,33 +1339,11 @@ AssertionError: 'Very[33 chars]e without any issue of displaying including ö ut - +
TestEditBooksOnGdrive - test_edit_title
- -
- FAIL -
- - - - + PASS @@ -1438,7 +1394,7 @@ AssertionError: 'Very[33 chars]e without any issue of displaying including ö ut
Traceback (most recent call last):
   File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 847, in test_watch_metadata
     self.assertNotIn('series', book)
-AssertionError: 'series' unexpectedly found in {'reader': ['epub'], 'title': 'testbook', 'author': ['John Döe'], 'rating': 0, 'languages': ['English'], 'identifier': [], 'cover': '/cover/5?edit=f84d9deb-4c69-48d6-9f16-94ad43b3e3fa', 'tag': [], 'publisher': ['Randomhäus'], 'comment': '\n', 'add_shelf': [], 'del_shelf': [], 'edit_enable': True, 'kindle': None, 'kindlebtn': None, 'download': ['EPUB (6.7 kB)'], 'read': False, 'archived': False, 'series_all': 'Book 1.0 of test', 'series_index': '1.0', 'series': 'test', 'cust_columns': []}
+AssertionError: 'series' unexpectedly found in {'reader': ['epub'], 'title': 'testbook', 'author': ['John Döe'], 'rating': 0, 'languages': ['English'], 'identifier': [], 'cover': '/cover/5?edit=175d2a21-2733-49b6-9fcf-3ef9aee1670b', 'tag': [], 'publisher': ['Randomhäus'], 'comment': '\n', 'add_shelf': [], 'del_shelf': [], 'edit_enable': True, 'kindle': None, 'kindlebtn': None, 'download': ['EPUB (6.7 kB)'], 'read': False, 'archived': False, 'series_all': 'Book 1.0 of test', 'series_index': '1.0', 'series': 'test', 'cust_columns': []}
@@ -3443,8 +3399,8 @@ AssertionError: 'series' unexpectedly found in {'reader': ['epub'], 'title': 'te Total 299 - 289 - 3 + 291 + 1 0 7   @@ -3528,7 +3484,7 @@ AssertionError: 'series' unexpectedly found in {'reader': ['epub'], 'title': 'te Jinja2 - 2.11.2 + 2.11.3 Basic @@ -3540,7 +3496,7 @@ AssertionError: 'series' unexpectedly found in {'reader': ['epub'], 'title': 'te pytz - 2020.5 + 2021.1 Basic @@ -3804,7 +3760,7 @@ AssertionError: 'series' unexpectedly found in {'reader': ['epub'], 'title': 'te From 4a4d02ea6a91ba3e77337cfce65e756e2e806599 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Tue, 2 Feb 2021 19:03:34 +0100 Subject: [PATCH 5/9] Added translations --- cps/translations/cs/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/de/LC_MESSAGES/messages.mo | Bin 48831 -> 52348 bytes cps/translations/de/LC_MESSAGES/messages.po | 276 +++++++++--------- cps/translations/el/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/es/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/fi/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/fr/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/hu/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/it/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/ja/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/km/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/nl/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/pl/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/ru/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/sv/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/tr/LC_MESSAGES/messages.po | 266 ++++++++--------- cps/translations/uk/LC_MESSAGES/messages.po | 266 ++++++++--------- .../zh_Hans_CN/LC_MESSAGES/messages.po | 266 ++++++++--------- messages.pot | 264 ++++++++--------- 19 files changed, 2398 insertions(+), 2398 deletions(-) diff --git a/cps/translations/cs/LC_MESSAGES/messages.po b/cps/translations/cs/LC_MESSAGES/messages.po index 7066cc5c..0aafd7b9 100644 --- a/cps/translations/cs/LC_MESSAGES/messages.po +++ b/cps/translations/cs/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-06-09 21:11+0100\n" "Last-Translator: Lukas Heroudek \n" "Language: cs_CZ\n" @@ -163,7 +163,7 @@ msgstr "Databáze není zapisovatelná" msgid "Basic Configuration" msgstr "Základní konfigurace" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Vyplňte všechna pole!" @@ -171,7 +171,7 @@ msgstr "Vyplňte všechna pole!" msgid "Add new user" msgstr "Přidat nového uživatele" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "E-mail není z platné domény" @@ -197,16 +197,16 @@ msgstr "Nezbývá žádný správce, nemůžete jej odstranit" msgid "No admin user remaining, can't remove admin role" msgstr "Nezbývá žádný správce, nelze odebrat roli správce" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Byl nalezen existující účet pro tuto e-mailovou adresu." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Upravit uživatele %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Zadané uživatelské jméno je již použito" @@ -250,11 +250,11 @@ msgstr "Uživatel nenalezen" msgid "Password for user %(user)s reset" msgstr "Heslo pro uživatele %(user)s resetováno" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Neznámá chyba. Opakujte prosím později." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Nejprve nakonfigurujte nastavení pošty SMTP..." @@ -352,8 +352,8 @@ msgstr "Formát knihy úspěšně smazán" msgid "Book Successfully Deleted" msgstr "Kniha úspěšně smazána" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Chyba otevírání eknihy. Soubor neexistuje nebo není přístupný" @@ -385,7 +385,7 @@ msgstr "Nepodařilo se vytvořit cestu %(path)s (oprávnění odepřeno)." msgid "Failed to store file %(file)s." msgstr "Uložení souboru %(file)s se nezdařilo." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "Chyba databáze: %(error)s." @@ -448,151 +448,151 @@ msgstr "Google Drive nastavení nebylo dokončeno, zkuste znovu deaktivovat a a msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Doména zpětného volání není ověřena, postupujte podle pokynů k ověření domény v konzole pro vývojáře google" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formát pro knihu: %(book)d nenalezen" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s nenalezen na Google Drive: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nenalezen: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Poslat do Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Tento e-mail byl odeslán přes Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web zkušební e-mail" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Zkušební e-mail" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Začínáme s Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Registrační e-mail pro uživatele: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Poslat %(format)s do Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Převést %(orig)s do %(format)s a poslat do Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "E-mail: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Požadovaný soubor nelze přečíst. Možná nesprávná oprávnění?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Mazání knihy selhalo %(id)s failed: %(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "Mazání knihy %(id)s, cesta ke knize není platná %(path)s" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Přejmenování názvu z: '%(src)s' na '%(dest)s' selhalo chybou: %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Přejmenování souboru v cestě '%(src)s' na '%(dest)s' selhalo chybou: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Soubor %(file)s nenalezen na Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Cesta ke knize %(path)s nebyla nalezena na Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "Chyba stahování obalu" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "Chyba formátu obalu" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Vytvoření cesty obalu selhalo" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Soubor obalu není platný, nebo nelze uložit" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Pouze jpg/jpeg jsou podporované soubory pro obal" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "Unrar binární soubor nenalezen" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "Chyba provádění UnRar" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Čekám" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Selhalo" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Spuštěno" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Dokončeno" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Neznámý stav" @@ -600,7 +600,7 @@ msgstr "Neznámý stav" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Pro získání platného api_endpoint pro zařízení Kobo, přístupte na calibre-web bez localhost" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Kobo nastavení" @@ -625,7 +625,7 @@ msgstr "Přihlášení pomocí Google selhalo." msgid "Failed to fetch user info from Google." msgstr "Nepodařilo se načíst informace o uživateli z Google." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "nyní jste přihlášen jako: '%(nickname)s'" @@ -662,7 +662,7 @@ msgstr "GitHub Oauth chyba, prosím opakujte později." msgid "Google Oauth error, please retry later." msgstr "Google Oauth chyba, prosím opakujte později." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "přihlásit se" @@ -678,9 +678,9 @@ msgstr "Token vypršel" msgid "Success! Please return to your device" msgstr "Úspěch! Vraťte se prosím do zařízení" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Nedávno přidáné" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Knihy" #: cps/render_template.py:41 msgid "Show recent books" @@ -702,7 +702,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Nejlépe hodnocené knihy" @@ -711,7 +711,7 @@ msgid "Show Top Rated Books" msgstr "Zobrazit nejlépe hodnocené knihy" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Přečtené knihy" @@ -720,7 +720,7 @@ msgid "Show read and unread" msgstr "Zobrazit prečtené a nepřečtené" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Nepřečtené knihy" @@ -737,7 +737,7 @@ msgid "Show random books" msgstr "Zobrazit náhodné knihy" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Kategorie" @@ -747,7 +747,7 @@ msgstr "Zobrazit výběr kategorie" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Série" @@ -765,7 +765,7 @@ msgid "Show author selection" msgstr "Zobrazit výběr autora" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Vydavatelé" @@ -774,7 +774,7 @@ msgid "Show publisher selection" msgstr "Zobrazit výběr vydavatele" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Jazyky" @@ -798,7 +798,7 @@ msgstr "Formáty souborů" msgid "Show file formats selection" msgstr "Zobrazit výběr formátů" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "Archivované knihy" @@ -806,7 +806,7 @@ msgstr "Archivované knihy" msgid "Show archived books" msgstr "Zobrazit archivované knihy" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -938,189 +938,189 @@ msgstr "Nová aktualizace k dispozici. Klepnutím na tlačítko níže aktualizu msgid "Click on the button below to update to the latest stable version." msgstr "Klepnutím na tlačítko níže aktualizujte na nejnovější stabilní verzi." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Objevte (Náhodné knihy)" -#: cps/web.py:423 -msgid "Books" -msgstr "Knihy" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Žhavé knihy (Nejstahovanější)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Jejda! Vybraná kniha není k dispozici. Soubor neexistuje nebo není přístupný" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Autoři: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Vydavatel: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Série: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Hodnocení: %(rating)s stars" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Soubor formátů: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Kategorie: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Jazyky: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Vlastní sloupec %(column)d neexistuje v databázi" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Rozšířené hledání" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Hledat" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Seznam hodnocení" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Seznam formátů" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Úlohy" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Vydáno po " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Vydáno před " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Hodnocení <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Hodnocení >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Kniha byla úspěšně zařazena do fronty pro odeslání na %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Při odesílání této knihy došlo k chybě: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Nejprve nakonfigurujte vaši kindle e-mailovou adresu.." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-mailový server není nakonfigurován, kontaktujte svého správce!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "registrovat" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Váš e-mail nemá povolení k registraci" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Potvrzovací e-mail byl odeslán na váš účet." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Toto uživatelské jméno nebo e-mailová adresa jsou již používány." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Nelze aktivovat ověření LDAP" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Záložní přihlášení jako: ‘%(nickname)s’, server LDAP není dosažitelný nebo neznámý uživatel" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Nelze se přihlásit: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Špatné uživatelské jméno nebo heslo" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Nové heslo bylo zasláno na vaši emailovou adresu" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Zadejte platné uživatelské jméno pro obnovení hesla" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Nyní jste přihlášeni jako: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s profil" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profil aktualizován" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Číst knihu" @@ -1691,7 +1691,7 @@ msgid "Location of Calibre Database" msgstr "Umístění Calibre databáze" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2007,7 +2007,7 @@ msgstr "Počet náhodných knih k zobrazení" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Počet autorů k zobrazení před skrytím (0 = Zakázat skrytí)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Motiv" @@ -2308,7 +2308,7 @@ msgid "Search Library" msgstr "Hledat v knihovně" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Nastavení" @@ -2468,99 +2468,99 @@ msgstr "Calibre-Web katalog eknih" msgid "Reflow text when sidebars are open." msgstr "Po otevření postranních panelů přeformátujte text." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Klávesové zkratky" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Předchozí strana" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Následujicí strana" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Změnit měřítko na nejlepší" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Změnit měřítko na šířku" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Změnit měřítko na výšku" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Změnit měřítko na nativní" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Otočit doprava" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Otočit doleva" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Převrátit obrázek" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Světlý" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Tmavý" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Měřítko" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Nejlepší" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Šířka" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Výška" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Nativní" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Otočit" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Převrátit" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Vodorovně" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Svisle" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Směr" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Zleva doprava" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Zprava doleva" diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo index 3c60122a0bc95848bc3a988cfe85eee9f51a2b62..acf955fed3816aa6ae3920e4b8a8c71877935e43 100644 GIT binary patch delta 14318 zcmZwN2UOS9|HttUC|gv(2`FDDf`W((5Kt7vor&T$x8mMgzwT{nj@;%bEoWNpnO5cs z+iH$7M_QIy*|L7m7x#LO|8xGI)Ae!J=YHZ!9DNODWRzuI)j#Cb6U=?hK;Wz`!<3In z9N$F8?Rb$%qqZ()q7TkO=H)EJ;3O-6#HUHoaQDIPi8IpVJ_;1E2t3uhypADjYnt*zjuk3c5nPe2=4OjtpqeArs>V|8mQ2&9IFf`5V{stIC zxi6}H9O}*2pdPRfyWvIDcyaa3X{wESv5pwZ^PS#gwB}PV5tm{ayod_<NcXkZ># z3>nj@gj(xX# zaD0fGXg~(v3@nWrup=sheNhn^jT&zb>Xa-)R>gT8^}O3y9Uo_K{UzMw(_ zUPZmpUG%|UQOEKh)Dn0%GRHCuwZ`R9OOTA(oH-bYOVAe&qh9bdmcXx2$Mg|uX?)#G zN1-i=no%wE!xvEx=!ja9;iwSrM-A`+DpJ=_5qgRmFuaMGNDOKZwMD()Skwe2VHm!O zS_=1GG78;E>zAlC{t*=kr>O~LAZm9fglW^9EQ3f(wboF8>1KXZ7?rVs9irC6``%j!EufwpAg5h zxmm(AjHjH9!93rYLq;=PgPQqHEPzK*AC9xAH@Sy__!!mSqlMXwA*eME#TcxQ+H6Bm zOSBm);%Vyx)VRSfAkTN=$S8y@kpG;4{G%l~iag8t6boXRmgYfms5fkfdf;H>L^*4* z0^UMJ#P3D(B4tn$j>TxKhrZY!-P#-@$mk8nq6VCfg>ermbf-`u^K507q$UPZPD4%P z1=J?)jf%uH48m=wQ*#ux={~VO#4O7GS;SvAbfKgP%tUWoj9U8@s5jq?n&@6szXRxp zr%(f5z(V*vYT|#Q?)PtPUZ5CiLT!+P;`Bj{^LA_EuZAO3DC8GWYx5l{gr058w>}hu zDc42)=F$p%a2{%)C8!CkLrrL>^(=-^zJu&<=PzuF4YSQe*15?jboWpLc+skJS`<}| zwdGWdr`#6x?VpQU^Yd67gWH+&9*xx~H^X{33CrPeRAg>p3H%jxpF6OpIT#g@WYl==P!a2gDLVfn$<(1@ zFDep0p=Ma1qj_Kj)F!KndSF9Lz)q;Wu?+R#%~%!RLOtLLYA@YJeF=X+y>Y=#=2TR~ zf;#`z$!LK3SOgnkN$iZ;3!_nMy$m(rTC9wlQJXRs6`9Xb{cfNq-bGF5J}UH~oz3y9 zjB%8+(WUc0i;TWhTQLbApuPtcyO;-Lpl03#^~T*%4;YH&aRh3OSE9x_im~XtWFlJ? zIdM*Ztd7S}r{EWKD^$r{&F|-#sF|)q?SWnB!UNXJs8Ifenn-vzvneZM8s#piH+v2B z9l3<1@jqKG-QDbkW>|&#zTJtxK8?$$XoyEp5y;oWacW~KD#W8u6B>`&eA7{<;}z>h z+r9@Ck;ABCcN6s~{}r`F9zD&(15oXuJ>6zk#!{g-uZP;DFQRVfVLJ{)MQRG_!ShiA zuR-mJH&J_MxAlG7e#Lqh^Nt;Aj|BEI_ZM}O$xlUD)B_?>U#@u64XL)=7WLpBs0R(l zP@HYco3I?^1E@%SZR>BN`u&B9bkW}C6P=9ZDZ6`;(F5n8H!ed(U=23HotTMFP!p)z z$DEEAP$A4gADoDq*bG!;R-yLD7Sw6lhw7he%ip25&i}t;w5DEt%>+VF6ADEQR1tl# zI;vkXDpE~sxeewm73QOUASU8a)Lz<#K6nRx@gXYWPq3uU|375Bs3?|W9uSUt(`aiF z>P?y;Gj`hBa#z#@2csr7!M4xEXv&LGpX?*3CHM);qJKXVkr*t<^PNmGr7#=yfD!12 z<53Tof%*czf?Aq4QK3GJ)iDhDsEGW5nuzZJ^C^x%MW!a|{&aLzd7B3i|kYoPA0i-oYE zn@kxp*;oO`phCG0wVQXNcI!LVgQy1_Lq*^;R>fQ_jLuN=8&43bUrW@F?`(|29Mr^D zp(5EFe+XT85)0zD z7>$oG0>ekDp7l>Aqc?1dTH{Hm0k)uy&rS@)a~O%2u{C;(G7rv1O}qyxr2SF-r=lXU z2(`&KqK@?;)WlC?ex3iDw!>}fQ)|)DX67-dU7n0u(+t!Do7(y;)Pp*qmSPYF<5<)K z=c6|Ba@2h%P~)6Iw?cZ6j5gc%n2bN7A`v~t{Lsik4LA<Vbct z9^g6FY+hf~5(J{|4@Xao9!vZc>KH2YhBZ)|BL%hVTUfJD6Ksc?SSQpTn1SOw_#Y}z z1D76e{x_s5=%U;M^)p~P>XaQvE#Wt)i1|$*{#xU(3Fd|b)IjaAFZRKHn2VWMXCl8^ z<22M8=3*oK0u|bbN#roNij2eH3^*m}K4=@DX|B}&zgD0ENrlC6Y!%{dA z6|&W+H#&tnMt89Z22U}kr88#-Sg`Xi4b34D0DM>|s0mC)z4WVd*b}?r1oXjc7>~D6Yg=NDnNT^@8aKfD*cPkdD%2i2kJ`L9 zP~-oNEwR{K6PZ49iN6M1Lxpzr7Hoj;qTcLJRA>X{nKe&GO|XqE4@C8wge`CprsECN ziTo?VH1qT5$KESF%Y++Cce*2M!WwE>cQWl26&9xJcSmTFIYNuqU=Tu{5ATa z_ad{|3Zn)tg<7)8w!S*LDAz+xpd02LZ;Ykvo=Bz&neA8=FQYp8EjAGe#XS=8~miW(qji5V~f zgDKZXEkPU91Baj{FavdJwxLeP1=Q}oZ_6G_&C--cEmyBXnVf z<>v48hS-JjN-TPFXKu5ak=F2|q%&j+e8- z{0{|*m`rgb*1$cOgm%YX!>IAjVJJGQ%}>#= z)xcYO;l)xM^KyZ5o%MFSZ6|=ggOP;I2y;I`ai+|thnC%aEV9ljRe%V zjWIuVM}O>N+lOH!!JZ?*^X;UR2-$FL;&y=FpO4)w;fu?Q|lz0o#|z+gVEMP3DeJYp@%@1iE~18P$R zZ7~n1fSHtIP;WF6%iuxO8(&2|@OM;%{Th^bYJmM;8m=IU!xa#Z8sASKt(VbJuwxdFl{^W*Npm8 zk&2s9$Lbbpz!E#mm#{O&Q{Ii8)sFs{wv+HMP(y4n+p(kF7p?&0YvY9oOop@tR;TW}_mK zgBoX;t)Gg1l-g&MCj2I5HD zJ`E!%FGY?24zgL@&IK}YRNTb^SmIs#QxLVA8=@l96)WQc)FwNKIwjwt-sF4KL>^;n z%)ig8^e1!GzH%!A?2TX{^pdK(8^`>*M8ZJQ%_&#ca zxu`Y&4i(8Kwm$zsa~w-xaq3H>+H0Y^D47Oiw3h8L2D@P$T!>}y9BPRkqBdv5Arq-2 z)Dkqcwn9y?J!%v7Kt*;iDzfvi2(H1p`1T>`SR7qD9YVY=XgG9 z?RH`UUceIQeZ<@sfuWRRP?2ebicA)|un+3~*;ov>93lQ1;20Hp^Dk`&ucKz|%cEwT ziV9s8s(*jfz|&C?Tw&{XqWXP^n(z(Om(t^y=^u%TL>*gh<|d=icg1$t7n|cr)GjY{ z+(aS)HNhSji;K~PCv5o}OrTu&ggIu7QKu#cYvFR#QeD8R_?a!c^Pe=kHURa_4z*<$ zYAvgxmM9T5Kn7}wnxU4g16IVDsLi(nwV6+#zJRAuFZdB^6JJ7&cLfu5{_l`ch+XfQ zKecM2CNc}PMhh?*H)AS(gW>2pW$IHflJYpzn{7lFeu7E(7!}Fb(`N14qQ)PEg>?QW zkZDQ9eAHTALrv&0YBTx1ZzfU>%TP{2o%>Fxr5J>Y)LK*owpb6LUf=?1g5RN*q`(K} zXGtOk^L(c*nL^kPy>T2Wv{O*$bO)y4A=GL32Q_fT56us+6pW@k9=-7mRKFdl&GseM zzi`bAnRV-)48s0g-450%|a|1PQCJWJcPPlr0olQMA8QkYY*gN$-=^k#x<*W!R0ew1m3!$=*u+LQ*SIFVZ6FUe@{7 zRe;XAf@v6N^D2+lKlbvV?fI)Ig}Sz{7rtWiJ@IGSJZ=Bh^&wly8$SN&21C zkGlU*m)noVb`&~LsD!OaNu+U<*P@P7Df<9@C2x>)#Zp&`^eOp4wmpUZx;`^FW3T|J z7HOibdx#53Pv~1l@3fx6j}-cmrZCVQ)RC(}{t@}-uP_QFsB25wNIM?=@j_s&h zX>Tfsx2U_08*HD&*qOADesP|}w43cL#@GRsKTaA#`3E{bRRvdB((idWekq|oiT2B= zYc}~OILnr6;80Q<>LW;{Nzbmi9Pe#8IycLZ%=q&MmKEiLiLCp_;eM*UQh zu7+60WSwfZZU^P%q{iGc&9(`BJ=LW-X(AbSZT{&&A&QQpNykaL5>VgrPP88&zaX!c zI`aJd$s1*d?aL1~=WkMejcl(^XzM}ROZjEnPffwLj~{iLwf_EO&e@xUex&N!M*UZ$ z{G?5!AE?vs0cS`>8Ke(&6G&f^%2O9e($A1dw2h+f1bKaOpIxt#sY9E7@C4C5E3bj| zpGV=+vtF2HXE=rW@uV`O@}ybRzy4gmtmpDqX&*xQGc0cJ55aSk3zBp#!KS1c)R)8V zxYSK%IGKW^736hgU{z8!b+;);lK&&Gh0iPb2P9qNXm3C|Mt%TwmB>#f@w3JGQXROO z*uGcE|3n%^yRPBX^V_`Ro~#nrT-(u<%)j>_p7gT4Nwu$$%05^A!rnKN`Ua$dq}rr7 z>UUuQJdFR6bUmf)kEx_)TK~Zec7w{{RQy9)L|)fMtc-W^O7_RB&3DI(v=_%(SOMQ6 zH74aFJ-d1^c9rKQtNIr7KZ_;vI+)LpzvPhrUhChC)PhDA4T0qUC3T@3MEZuh zm6Y$1=2IR z(hTZ~;~S*uyndBn1p{%Q&*8g*E z{D^dsikdX`K`+XM)r0F@(o~WMZU5iZf%?&;A>5;DKB*1)MA9+RHOlMpS5imv|6nPs zm^U8l?@;mVYCyg&g^n~X!T(5ONux+bNQZ6TE7nx{eM){BX)W!#x{%J>_II(i&F{sR z=%0^Niu?uD>-q1HsYnVVy+~PCIXbl>HBu+8zT}&e7L$IY{1Wv!q`Tz%Q1|@x4u$cg z-J~j{X0%tc;|!+!>^eop-Gs*dH0lRYb4;i5fbH=D<+n%)lxN~TlCJI65Uc7U$Y+v< zlJ_C~MBbk{t*;jvkkM!$B_n6et_TNSJQJsqeh&FiY1_#yun%PZ|oiu$)y(OxkFyX6dUb?e!4Sg+y3 zUA+en8`y2c-m0173-3MH_TRw02YRJ=FZsQHGgnNjUZZk`=L{YcliqDauOwG|Tzs{d zxOo0^RZC2YtFdI>fPNlzmi#tgWXX0hnY{+}8rE&Z;9*IwmVV2Rqtq^V{YyJJ`k?Hf(cj4nxe4GaF-(hH5i?3CSte3Mq-i zohD^Ngot#99RL1qH%cXULN}E^9q@m>UElxX@$YdzdS2J}a9yA4bA7JwZ{2^ba{u(c z+wx%B`hWj)Y++de^gCf1_Qg1yjY+rxBk>eA!Jjb@gA&a3X6T~d6}_+!2jOHaz=N29 z5s8-79`h3|+p0rjDHpP_3O(@*y5j{5!*8%T-o<*@m}vYk0qbK124fG@bHkkLb5YMN zclv8l^Hrn9*_Oom)!6Gi_z(1_e-0JEzfmt-M+I^lwPNpN^IRnA{UlUo+F>l_qc1*- zdVW4O!c`c7wHS^kY#Oa-Ttjb+Y-wI-hDu=uY6V?TD|{SDf;Apv@D zF$5c>n2FM`F8$u$0|VT&6;APZ=5p7J$J7O^X zJk*3^u`^Cb?ez{+#=b{iyoL;6-NgV*BCRCJ>V(>=r%>Znpsg1wX{adHVpn`0b&URl zDz310rn)mxfeyxwI0-f2CR7G%Q2`!AjdvFP@mtjKzKxnMjl)lptnBvee-MpnTu`ws zz{a=)wU^ZxjbESwxr$1qH)+xY0gjOvLO&igVHPTozNjr5jhb*F_QbuY@jWxizb1~Q z0ySWB)QVc8PDKvtSmvTqHUM=jCtw&(MQy=LsN&p?%G@`o=R7-@(-VLV={Lbp?1b8y ze4B&9BPjom=8xNY9;BY6=b8H&qEdCDAb;h$7FmNRcw2( zG2X&v7{Hm8?Jx>QN}EOnjc8nr{csm*OS}m`4;!Nbn~a*M0=2>os0ly8?syIL0ZXA^ zl#xNGg-k{TT#gC21XY|n(N=Nnr=b;ojvDYJYHuH)Qs>{zq^vJ$OXi?2E=2|M21epG zRDdT?6W&Fo+?(iBbkUBPIFNopck-_nHgiD%oJOVe5^AC=sFmMB4}6Gv&ZCE^5r5Rc z;iz-p1{HXB)cXaf1&l=nv<`b>4QibGJ;=Xqcs*uP9)U_-DmKAf)M=QEe0!|f=!v^f z0~|n2d<+%HMaO%nQxcrZ4;aSdV4RK$;20`np*B4Y&>D3@7am4s1Qv)P&PfTd)XK69-WfpT-pYCu#z(zNUtPFou2vYQ-I~KIWqzj=?%Q|5ItGN}oY} z;TEIL=ey{M2eB?5#Y8-fTImB+pzi(5bH3F#(5SD$YX}ZpSV<|Nl*c z-wP|ezxfX2qb8V!iu^hB!{w+6)}o4YJ!+4?z%FKS$B}i3`d=+8{oU_#`R=8&CnghrYNC{c*qJN$37$R7S305c;ty?R6|_ zi&9X5XQ1xqVgnprK>oGzDb59@LoZZ1559p))mGHRyHNulLDj@L492e=e|7GA4K~k( z;G<)Qs-+Ij^{%J|_P1$hfGbELCay%SU>$104^cn2pF91_s9Ly#%2@ai z^IRaj9SrYRBFy+E?!4IW>)%86G#Q>lq^A|awBSGyHSCC zhRV=6RKQm-9DhYU@B4)5#~}0BRtFl|+b-sU)gKkmVAMe4P%D~>daewWu?0^571Wl! zjqbP^Gw=h<#2--s#tk#$B%)HEj^R5088q}E8Hk!-C@SR>9G^w4WC1EeE1dosRDji} z_jWn=zrY0g$5E%`cZ|TK;pUIn$50uWgnl~z^JwUUQ-zw~Bh-pMMosV;hT;j-)?7uU z`X07M-w`Hbol$$5hsszfM&e9V>Q`YHRy!U-TSaq`h6c7qnp6d%`Vpvsl293Gg9@ZO zhTw2iW=c`d&p{Vfp#rQ$P5dS5`Aet(e#J)UGm8A{Li16k>a$S;4M9yb2{q6h=lTlN zKz~Qo$UannM^KqNgDTd4p?)P}N1Gp`V#il7h3k79Z;ZChe;`DTF?-V;wRgqX0;|x4 zdodorMor{7)}-DK)$fAJL{C&L4M7#@NL2Anbox)Dp07YQc^Zs+=WOru}F$OM{&nxGK1(n;7AXP_3a%kd~`rI#FUq5{2d`nKga-b5CSN>x8p zDhH!p9FKMJ8PqYFg;BT)RYW^br{pv?#BZ=J-a{8YM2+W~U>25wjp;vuemei-C zs6F0;8sG=i@wtII-`>UM(;0^O^s`YDzlxr?4wcgPP|xp2W#Txh$ShoVt_P zf2FiO4R>sg9WfE(u^5|SC2GKrQ7b!&I+o{ApW2_D>+vOK!nUXha?k^Npcc{__5Ks+ zhQ%f1U#TwPf>v0HDvp_`7ne9zq5@oj3T!p11`guFzwt*ZYT%N|=Kn(~Ll^xIF%wUr zPFejaW(!-QGFC8!{A-Vkx!}V2=!+Y%7;BNmSy4}!56er~hyF>_3Ztf)U&%OBYM(?O zoQ`og8(ZQAR0hwWA6`Xe{*FyU$1LD!^I!_<#z<5#m7$7dIcmacRDj!16YWP0cnkyZ z0xEMiP#L|A8vhT+@KO^yF-pf?^hcq# za5JhVKEir<7=!Q>Dlvi!MEgO8Ix# z80(gq0h(b``dv{OnTUxv6IBzNFa&E*$M;K2#aoz!G3BPV`l78HMKrYX6&Qve;b{C4 zwRZ_K%@?v2YHy2B0ZqjqT#nkh4VZ@iMx{Qy!W3^3YW!U6kK<68sjVRY8t@tyRMo#> zS9F_YR@MXC(;tG`^GZ~J>z)2?R0fV>U%Z6fFzI=-;-|5Ro=0Wm3w%t^p=zwD&Hn2~ zI!0kH)I`OOW%xM#MW_{A#7=k@qp{6wQ~mkanEo(qgfmf}+?AMs2T;fH25O;qP=UMK zb4>Mzpe9a14UmIM(QwSfN*s>IPy@Gk!4&C0RI!af4Lk|8WzRX+XQPY$Qd9sRptfcw z>e$;yXs9TD#}sTf*F0E&%E%~;#aS4RZ(~E;jVi)3sAKm#>eTpA+A6w+*dMb|--qR> zjIG30xC4`!-?~OaD-WA*j#oTtfRU&H=c6KChT4Mls0sICQ#_3^cn>2n;zd*4?NI%` zsI4hM1+W<7a5J{h`9DrW1KmRn9KFB<)EYHmH>W=eRqa!q{yfz4uc3-*Giob#IsL<^ zOr1qN_p@`|{Uwu;Ky1SNRyd8;n1wDZ#Q|7_Bk?M#NV_jI#WxI9Bd=p9ZbwaU43(*G zo%_F`Y9e5fF&b5LNvMFc(AM$FqtO9h#E$qGrsG3Y@ue>|K7}s&n;nm03;H*(5JQ)k zKxZN!MXM71(QBz0uOTXJWq z;tte+hfrJ8V43+7tto0@<)}b*pfYqAHSYOkJ+?# ze73E_sOPgP%_nyn)}e1>0M18^y8=CME7rqW=l-YIoc>9@P?yF%)XE;BJ9@rieqMc0 z$F2aC;;E<=pGEEY_ZW!xPyzZ>nObUzTJc!yjHT#xp9@qfKqV{+?s+N{vS3HKjFkpq*;$cXJZEG5h;oNu) zHNh{~1anrJR2E@8{bw)?*P=ebJFy$yL1iv;m3glVDv$}N8Yy%7FJMFZucF4;f*v~m zpF0WZ+${Tk-EQOYN0+R&<{d=v9d4(N1!5~hT7Z3*a+XiaNLPHj;B!L{fVk2k2lS) zs2A#bXY|8fXlrFdX?Wlm)LxHAMOuwLaWCq4d9E>E%6!!Ia?}s;T8-t<31y>B0L8dtC(7yfekAsbB;RWsvJ zH8KVDL9tN-E<$~v);sqnDPZ?tWV`!*|5>Ny5Kt((l6~Gi! z>R)pDZ=zPb1NEUffL?e8b*wI;CcN%k{}YuFkIm-2KvX{py_w%iq~VTjFb6ZRGnS(# z?m#0|Y_rAeZD&+! zCSwB5#1^;_WAG$u?|wmjKpK2tim4a+(jSKk@M%)i z+iF(c2=zcu)ZQ1PB7Omtx|OKsx1t9A2P%UXo$J4#p7Z(81RRG=>32sxUxEQ>JN@Nq zDD@j~2v%br*7?X(`9M@ADli#0VM{!VF7()D`b|+8$;ZaH6q9fZw#9#;wyHsm`7^&E zs&D7g@T1WWRU{*wej#cvr=hlJ7V3qCs8lbxXd1+StDLwA@zTH9ef z{ZiD{zJVHlH~Q=R@2Am^3nwuIT{}%cZBfP48$)qCst9Lc16+&RijPp4x{S)ePmcFd z?*)8p0&I@jl76V)lnM-Ferq)if82sf@m^GF4`F@0g`M#}>NI5UG6PRU{ff;-)yO{7 z``1v<-NFEj*lm6l6EU0qXwC4`NVz*$uUl zJal0RM&c3-!}m}V9YEF0aa1i_M7@9I6Y{SCZgN2x@Y!Rwpb=`~G;D|6P%l=XRyYsi za51{!R_u-2P<#9U+hf#Tvy}ztqF;gvYzZn88}^d_AR1S=psKuwDh`i*rh4n40`W&> zCKgrQ>8KA(d(?YfQP1^51v(b>+$6^-s4Xc)W$;b3Tmy^7)ZA%%H>#%IpwfUkoeK+# z3TsM>y!>j)re)Qw+EJF*EI+wxY0;SJ6Q7!r+-=PCqD)t-)K+Q9scFe+?ObVTnXS_k zQ`1sYUnvi-_kWktT2;lBPpW#kd`3;w%q>l8etLU= %(rating)s" msgstr "Bewertung >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "Lesestatus = %(status)s" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Beim Senden des Buchs trat ein Fehler auf: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Der E-Mail Server ist nicht konfigurierte, bitte den Administrator kontaktieren!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "Registieren" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "Ungültiges E-Mail Adressformat" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Eine Bestätigungs-E-Mail wurde an deinen E-Mail Account versendet." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Benutzername oder E-Mailadresse ist bereits in Verwendung." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "LDAP-Authentifizierung kann nicht aktiviert werden" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Rückfall Login als: '%(nickname)s', LDAP Server ist nicht erreichbar, oder der Nutzer ist unbekannt" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Login nicht erfolgreich: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Falscher Benutzername oder Passwort" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Das neue Passwort wurde an die E-Mail Adresse verschickt" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Bitte einen gültigen Benutzernamen zum Zurücksetzen des Passworts angeben" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Eingeloggt als: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's Profil" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profil aktualisiert" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Lese ein Buch" @@ -1692,8 +1693,8 @@ msgid "Location of Calibre Database" msgstr "Speicherort der Calibre-Datenbank" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" -msgstr "Calibre-Wb mit -f option starten um die serverseiten Dateiauswahl zu aktivieren" +msgid "To activate serverside filepicker start Calibre-Web with -f option" +msgstr "Calibre-Web mit -f option starten um die serverseiten Dateiauswahl zu aktivieren" #: cps/templates/config_edit.html:35 msgid "Use Google Drive?" @@ -2008,7 +2009,7 @@ msgstr "Anzahl anzuzeigender zufälliger Bücher" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Anzahl in Übersicht anzuzeigender Autoren (0=alle werden angezeigt)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Theme" @@ -2309,7 +2310,7 @@ msgid "Search Library" msgstr "Bibiliothek durchsuchen" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Einstellungen" @@ -2469,99 +2470,99 @@ msgstr "Calibre-Web E-Book-Katalog" msgid "Reflow text when sidebars are open." msgstr "Text umbrechen, wenn Seitenleiste geöffnet ist." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Tastaturkürzel" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Vorherige Seite" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Nächste Seite" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Optimale Skalierung" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Skaliere auf Breite" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Skaliere auf Höhe" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Skaliere 1:1" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Rechts rotieren" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Links rotieren" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Bild umdrehen" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Hell" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Dunkel" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Skalierung" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Beste" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Breite" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Höhe" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "1:1" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Rotieren" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Umdrehen" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Horizontal" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Vertikal" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Leserichtung" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Links nach rechts" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Rechts nach links" @@ -2796,4 +2797,3 @@ msgstr "Benutzer löschen" #: cps/templates/user_edit.html:146 msgid "Generate Kobo Auth URL" msgstr "Kobo Auth URL erzeugen" - diff --git a/cps/translations/el/LC_MESSAGES/messages.po b/cps/translations/el/LC_MESSAGES/messages.po index 655bbd41..4b755d1e 100644 --- a/cps/translations/el/LC_MESSAGES/messages.po +++ b/cps/translations/el/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Depountis Georgios\n" "Language: el\n" @@ -163,7 +163,7 @@ msgstr "Η DB δεν μπορεί να Γραφτεί" msgid "Basic Configuration" msgstr "Βασική Διαμόρφωση" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Παρακαλούμε συμπλήρωσε όλα τα πεδία!" @@ -171,7 +171,7 @@ msgstr "Παρακαλούμε συμπλήρωσε όλα τα πεδία!" msgid "Add new user" msgstr "Προσθήκη νέου χρήστη" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "Το E-mail δεν είναι από έγκυρο domain" @@ -197,16 +197,16 @@ msgstr "Δεν έχει απομείνει χρήστης διαχειριστή msgid "No admin user remaining, can't remove admin role" msgstr "Δεν έχει απομείνει χρήστης διαχειριστής, δεν μπορεί να αφαιρεθεί ο ρόλος διαχειριστή" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Βρέθηκε ένας ήδη υπάρχον λογαριασμός για αυτή τη διεύθυνση e-mail." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Επεξεργασία χρήστη %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Αυτό το όνομα χρήστη έχει ήδη παρθεί" @@ -250,11 +250,11 @@ msgstr "Δεν βρέθηκε χρήστης" msgid "Password for user %(user)s reset" msgstr "Κωδικός για επαναφορά %(user) χρήστη/ών" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Προέκυψε ένα άγνωστο σφάλμα. Παρακαλούμε δοκίμασε ξανά αργότερα." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Παρακαλούμε διαμόρφωσε πρώτα τις ρυθμίσεις ταχυδρομείου SMTP..." @@ -352,8 +352,8 @@ msgstr "Η μορφή βιβλίου Διαγράφηκε Επιτυχώς" msgid "Book Successfully Deleted" msgstr "Το Βιβλίο Διαγράφηκε Επιτυχώς" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Σφάλμα ανοίγματος eBook. Το αρχείο δεν υπάρχει ή το αρχείο δεν είναι προσβάσιμο" @@ -385,7 +385,7 @@ msgstr "Αποτυχεία δημιουργίας πορείας %(path)s (Η ά msgid "Failed to store file %(file)s." msgstr "Αποτυχία αποθήκευσης αρχείου %(file)s." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "Σφάλμα βάσης δεδομένων: %(error)s." @@ -448,151 +448,151 @@ msgstr "Η ρύθμιση του Google Drive δεν ολοκληρώθηκε, msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Η ανάκληση ονόματος δεν έχει επαληθευτεί, παρακαλούμε ακολούθησε τα βήματα για την επαλήθευση ονόματος στην κονσόλα προγραμματιστή google" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s η δομή δεν βρέθηκε για την ταυτότητα βιβλίου: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s δεν βρέθηκε στο Google Drive: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s δεν βρέθηκε: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Αποστολή στο Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Αυτό το e-mail έχει σταλεί μέσω Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web δοκιμαστικό e-mail" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Δοκιμαστικό e-mail" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Ξεκινήστε με το Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "e-mail εγγραφής για χρήστη: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Αποστολή %(format)s στο Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Μετατροπή %(orig)s σε %(format)s και αποστολή στο Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "E-mail: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Το αρχείου που χητήθηκε δεν μπορεί να διαβαστεί. Μπορεί να υπάρχουν λαθασμένες άδειες;" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Η διαγραφή φακέλου βιβλίου για το βιβλίο %(id)s απέτυχε, η πορεία έχει υπό-φακέλους: %(path)s" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Η διαγραφή βιβλίου %(id)s απέτυχε: %(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "Διαγραφή βιβλίου %(id)s, η πορεία βιβλίου δεν είναι έγκυρη: %(path)s" -#: cps/helper.py:400 +#: cps/helper.py:401 #, 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:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Η μετονομασία αρχείου σε πορεία '%(src)s' σε '%(dest)s' απέτυχε με σφάλμα: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Το αρχείο %(file)s δεν βρέθηκε στο Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Η πορεία βιβλίου %(path)s δεν βρέθηκε στο Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "Σφάλμα Κατεβάσματος Φόντου" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "Σφάλμα Μορφής Φόντου" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Αποτυχία δημιουργίας πορείας για φόντο" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Το αρχείο φόντου δεν είναι ένα έγκυρο αρχείο εικόνας, ή δεν μπόρεσε να αποθηκευτεί" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Μόνο jpg/jpeg αρχεία υποστηρίζονται ως αρχεία φόντου" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "Δεν βρέθηκε δυαδικό αρχείο Unrar" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "Σφάλμα εκτέλεσης UnRar" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Αναμονή" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Απέτυχε" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Ξεκίνησε" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Τελείωσε" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "ʼΑγνωστη κατάσταση" @@ -600,7 +600,7 @@ msgstr "ʼΑγνωστη κατάσταση" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Παρακαλούμε λάβε πρόσβαση στο calibre-web από ένα μη τοπικό εξηπηρετητή για να λάβεις μια έγκυρη api_endpoint για συσκευή kobo" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Καθορισμός Kobo" @@ -625,7 +625,7 @@ msgstr "Αποτυχία σύνδεσης με το Google." msgid "Failed to fetch user info from Google." msgstr "Αποτυχία συγκέντρωσης πληροφοριών χρήστη από το Google." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "τώρα έχεις συνδεθεί ως: '%(nickname)s'" @@ -662,7 +662,7 @@ msgstr "GitHub Oauth σφάλμα, παρακαλούμε δοκίμασε ξα msgid "Google Oauth error, please retry later." msgstr "Google Oauth σφάλμα, παρακαλούμε δοκίμασε ξανά αργότερα." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "σύνδεση" @@ -678,9 +678,9 @@ msgstr "Η μάρκα έχει λήξει" msgid "Success! Please return to your device" msgstr "Επιτυχία! Παρακαλούμε επέστρεψε στη συσκευή σου" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Προστέθηκε Πρόσφατα" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Βιβλία" #: cps/render_template.py:41 msgid "Show recent books" @@ -702,7 +702,7 @@ msgstr "Κατεβασμένα Βιβλία" msgid "Show Downloaded Books" msgstr "Προβολή Κατεβασμένων Βιβλίων" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Βιβλία με Κορυφαία Αξιολόγηση" @@ -711,7 +711,7 @@ msgid "Show Top Rated Books" msgstr "Προβολή Βιβλίων με Κορυφαία Αξιολόγηση" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Βιβλία που Διαβάστηκαν" @@ -720,7 +720,7 @@ msgid "Show read and unread" msgstr "Προβολή διαβασμένων και αδιάβαστων" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Βιβλία που δεν Διαβάστηκαν" @@ -737,7 +737,7 @@ msgid "Show random books" msgstr "Προβολή τυχαίων βιβλίων" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Κατηγορίες" @@ -747,7 +747,7 @@ msgstr "Προβολή επιλογών κατηγορίας" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Σειρές" @@ -765,7 +765,7 @@ msgid "Show author selection" msgstr "Προβολή επιλογών συγγραφέα" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Εκδότες" @@ -774,7 +774,7 @@ msgid "Show publisher selection" msgstr "Προβολή επιλογών εκδότη" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Γλώσσες" @@ -798,7 +798,7 @@ msgstr "Μορφές αρχείου" msgid "Show file formats selection" msgstr "Προβολή επιλογών μορφής αρχείου" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "Αρχειοθετημένα Βιβλία" @@ -806,7 +806,7 @@ msgstr "Αρχειοθετημένα Βιβλία" msgid "Show archived books" msgstr "Προβολή αρχειοθετημένων βιβλίων" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "Λίστα Βιβλίων" @@ -938,189 +938,189 @@ msgstr "Μια νέα ενημέρωση είναι διαθέσιμη. Κάνε msgid "Click on the button below to update to the latest stable version." msgstr "Κάνε κλικ στο κουμπί πιο κάτω για να ενημερώσεις με την τελευταία σταθερή έκδοση." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Ανακάλυψε (Τυχαία Βιβλία)" -#: cps/web.py:423 -msgid "Books" -msgstr "Βιβλία" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Βιβλία στη Μόδα (Με τα περισσότερα κατεβάσματα)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "Κατεβασμένα βιβλία από %(user)s" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Oυπς! Ο επιλεγμένος τίτλος βιβλίου δεν είναι διαθέσιμος. Το αρχείο δεν υπάρχει ή δεν είναι προσβάσιμο" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Συγγραφέας: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Εκδότης: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Σειρές: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Αξιολόγηση: %(rating)s stars" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Μορφή αρχείου: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Κατηγορία: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Γλώσσα: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Η ειδικά προσαρμοσμένη στήλη No.%(column)d δεν υπάρχει στο επίπεδο βάσης δεδομένων" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Προχωρημένη Αναζήτηση" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Αναζήτηση" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Λίστα αξιολογήσεων" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Λίστα μορφών αρχείου" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Εργασίες" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Εκδόθηκε μετά" -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Εκδόθηκε πριν" -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Αξιολόγηση <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Αξιολόγηση >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Το βιβλίο έχει επιτυχώς μπει σε σειρά για αποστολή στο %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Oυπς! Υπήρξε ένα σφάλμα κατά την αποστολή αυτού του βιβλίου: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Παρακαλούμε ενημέρωσε το προφίλ σου με μια έγκυρη Διεύθυνση E-mail Αποστολής στο Kindle." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Ο διακομιστής E-Mail δεν έχει διαμορφωθεί, παρακαλούμε επικοινώνησε με το διαχειριστή σου!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "εγγραφή" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Η διεύθυνση e-mail σου δεν επιτρέπεται να εγγραφεί" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Το e-mail επιβεβαίωσης έχει σταλεί στον e-mail λογαριασμό σου." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Αυτό το όνομα χρήστη ή η διεύθυνση e-mail είναι ήδη σε χρήση." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Δεν μπόρεσε να ενεργοποιηθεί η επαλήθευση LDAP" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Εναλλακτική Σύνδεση ως: '%(nickname)s', Ο Διακομιστής LDAP δεν είναι προσβάσιμος, ή ο χρήστης δεν είναι γνωστός" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Δεν μπόρεσε να συνδεθεί: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Λανθασμένο Όνομα Χρήστη ή Κωδικός" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Ο Νέος Κωδικός έχει σταλεί στη διεύθυνση email σου" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Παρακαλούμε συμπλήρωσε ένα έγκυρο όνομα χρήστη για επαναφορά του κωδικού" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Έχεις συνδεθεί ως: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's προφίλ" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Το προφίλ ενημερώθηκε" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Διάβασε ένα Βιβλίο" @@ -1691,7 +1691,7 @@ msgid "Location of Calibre Database" msgstr "Τοποθεσία Βάσης Δεδομένων Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2007,7 +2007,7 @@ msgstr "Αριθμός Τυχαίων Βιβλίων για Εμφάνιση" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Αριθμός Συγγραφέων για Εμφάνιση Πριν την Απόκρυψη (0=Απενεργοποίηση Απόκρυψης)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Θέμα" @@ -2308,7 +2308,7 @@ msgid "Search Library" msgstr "Αναζήτηση Βιβλιοθήκης" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ρυθμίσεις" @@ -2468,99 +2468,99 @@ msgstr "Calibre-Web Κατάλογος eBook" msgid "Reflow text when sidebars are open." msgstr "Επανάληψη ροής κειμένου όταν οι μπάρες στο πλάι είναι ανοιχτές." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Συντομεύσεις Πληκτρολογίου" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Προηγούμενη Σελίδα" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Επόμενη Σελίδα" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Κλιμάκωση στο Καλυτερο" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Κλιμάκωση σε Πλάτος" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Κλιμάκωση σε Ύψος" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Κλιμάκωση σε Τοπικό" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Περιστροφή Δεξιά" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Περιστροφή Αριστερά" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Γύρισμα Σελίδας" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Φωτεινό" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Σκοτεινό" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Κλίμακα" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Καλύτερο" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Πλάτος" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Ύψος" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Ντόπιο" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Περιστροφή" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Γύρισμα" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Οριζόντιο" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Κάθετο" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Κατεύθυνση" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Αριστερά προς Δεξιά" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Δεξιά προς Αριστερά" diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po index b8a84c3b..85861e65 100644 --- a/cps/translations/es/LC_MESSAGES/messages.po +++ b/cps/translations/es/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-05-25 17:22+0200\n" "Last-Translator: minakmostoles \n" "Language: es\n" @@ -167,7 +167,7 @@ msgstr "La base de datos no es modificable" msgid "Basic Configuration" msgstr "Configuración básica" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "¡Por favor, completa todos los campos!" @@ -175,7 +175,7 @@ msgstr "¡Por favor, completa todos los campos!" msgid "Add new user" msgstr "Añadir un nuevo usuario" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "El correo electrónico no tiene un dominio válido" @@ -201,16 +201,16 @@ msgstr "No queda ningún usuario administrador, no se puede eliminar al usuario" msgid "No admin user remaining, can't remove admin role" msgstr "No queda ningún usuario administrador, no se puede eliminar al usuario" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Encontrada una cuenta existente para esa dirección de correo electrónico." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Editar Usuario %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Este nombre de usuario ya está en uso" @@ -254,11 +254,11 @@ msgstr "Usuario no encontrado" msgid "Password for user %(user)s reset" msgstr "Contraseña para el usuario %(user)s reinicializada" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Ha ocurrido un error desconocido. Por favor vuelva a intentarlo más tarde." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Configura primero los parámetros del servidor SMTP..." @@ -356,8 +356,8 @@ msgstr "Formato de libro borrado correctamente" msgid "Book Successfully Deleted" msgstr "Libro borrado correctamente" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Error abriendo un eBook. El archivo no existe o no es accesible" @@ -389,7 +389,7 @@ msgstr "Fallo al crear la ruta %(path)s (permiso denegado)" msgid "Failed to store file %(file)s." msgstr "Fallo al guardar el archivo %(file)s." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "Error en la base de datos: %(error)s." @@ -452,151 +452,151 @@ msgstr "La configuración de Google Drive no se ha completado, intente desactiva msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "El dominio Callback no se ha verificado, siga los pasos para verificarlo en la consola de desarrollador de Google" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formato no encontrado para el id del libro: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s no encontrado en Google Drive: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s no encontrado: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Enviar al Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Este correo electrónico ha sido enviado usando Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Correo de prueba de Calibre-Web" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Comprobar correo electrónico" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Primeros pasos con Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Correo electrónico de registro para el usuario: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Enviado %(format)s al Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Convertir %(orig)s a %(format)s y enviar al Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "Correo electrónico: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "El archivo solicitado no puede ser leído. ¿Quizás existen problemas con los permisos?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Fallo al intentar borrar la carpeta del libro %(id)s, la ruta tiene subcarpetas: %(path)s" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "El borrado del libro %(id)s falló: %(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "Borrando el libro %(id)s, la ruta del libro es inválida: %(path)s" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "El renombrado del título de: '%(src)s' a '%(dest)s' falló con el error: %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Ha fallado el cambio de nombre del archivo '%(src)s' a '%(dest)s' con el error: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Fichero %(file)s no encontrado en Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "La ruta %(path)s del libro no fue encontrada en Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "Error al descargar la cubierta" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "Error en el formato de la cubierta" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Error al crear una ruta para la cubierta" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "El archivo de cubierta no es una imágen válida" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Siki kis archivos jpg/jpeg están soportados como cubierta" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "No se ha encontrado el binario del comando UnRar" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "Error ejecutando UnRar" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Esperando" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Fallido" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Comenzado" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Finalizado" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Estado desconocido" @@ -604,7 +604,7 @@ msgstr "Estado desconocido" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Por favor, accede a calibre-web desde una ubicación que no sea localhost para obtener una api_endpoint válida para tu dispositivo Kobo" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Configuración de Kobo" @@ -629,7 +629,7 @@ msgstr "Error al iniciar sesión con Google." msgid "Failed to fetch user info from Google." msgstr "Error al obtener información del usuario de Google." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "has iniciado sesión como : '%(nickname)s'" @@ -666,7 +666,7 @@ msgstr "Error en GitHub Oauth, por favor, vuelva a intentarlo más tarde." msgid "Google Oauth error, please retry later." msgstr "Error en Google Oauth, por favor vuelva a intentarlo más tarde." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "iniciar sesión" @@ -682,9 +682,9 @@ msgstr "El token ha expirado" msgid "Success! Please return to your device" msgstr "¡Correcto! Por favor regrese a su dispositivo" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Añadido recientemente" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Libros" #: cps/render_template.py:41 msgid "Show recent books" @@ -706,7 +706,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Libros mejor valorados" @@ -715,7 +715,7 @@ msgid "Show Top Rated Books" msgstr "Mostrar libros mejor valorados" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Libros leídos" @@ -724,7 +724,7 @@ msgid "Show read and unread" msgstr "Mostrar leídos y no leídos" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Libros no leídos" @@ -741,7 +741,7 @@ msgid "Show random books" msgstr "Mostrar libros al azar" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Categorías" @@ -751,7 +751,7 @@ msgstr "Mostrar selección de categorías" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Series" @@ -769,7 +769,7 @@ msgid "Show author selection" msgstr "Mostrar selección de autores" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Editores" @@ -778,7 +778,7 @@ msgid "Show publisher selection" msgstr "Mostrar selección de editores" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Idiomas" @@ -802,7 +802,7 @@ msgstr "Formatos de archivo" msgid "Show file formats selection" msgstr "Mostrar selección de formatos de archivo" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "Libros archivados" @@ -810,7 +810,7 @@ msgstr "Libros archivados" msgid "Show archived books" msgstr "Mostrar libros archivados" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -942,189 +942,189 @@ msgstr "Hay una nueva actualización disponible. Haz clic en el botón de abajo msgid "Click on the button below to update to the latest stable version." msgstr "Haz clic en el botón de abajo para actualizar a la última versión estable." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Descubrir (Libros al azar)" -#: cps/web.py:423 -msgid "Books" -msgstr "Libros" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Libros populares (los más descargados)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "oh, oh, el libro seleccionado no está disponible. El archivo no existe o no es accesible" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Autor/es: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Editor/es: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Series: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Calificación: %(rating)s estrellas" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Formato del archivo: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Categoría : %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Idioma: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Búsqueda avanzada" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Buscar" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Lista de calificaciones" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Lista de formatos" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Tareas" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Publicado después de " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Publicado antes de " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Calificación <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Calificación >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Libro puesto en la cola de envío a %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Ha sucedido un error en el envío del libro: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Por favor actualiza tu perfil con la dirección de correo de su kindle..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "El servidor de E-Mail no está configurado, por favor, ¡avisa a tu administrador!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "registrarse" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Su correo electrónico no está permitido para registrarse" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Se ha enviado un correo electrónico de verificación a su cuenta de correo." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Este nombre de usuario o correo electrónico ya están en uso." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "No se puede activar la autenticación LDAP" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Fallback login como: '%(nickname)s', no se puede acceder al servidor LDAP o usuario desconocido" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "No se pudo entrar: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Usuario o contraseña inválido" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Una nueva contraseña se ha enviado a su cuenta de correo electrónico" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Por favor, introduce un usuario válido para restablecer la contraseña" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Ahora estás conectado como: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Perfil actualizado" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Leer un libro" @@ -1695,7 +1695,7 @@ msgid "Location of Calibre Database" msgstr "Ubicación de la base de datos de Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2011,7 +2011,7 @@ msgstr "Número de libros aleatorios a mostrar" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Número de autores para mostrar antes de ocultar (0 = desactivar la ocultación)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Tema" @@ -2312,7 +2312,7 @@ msgid "Search Library" msgstr "Buscar en la librería" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ajustes" @@ -2472,99 +2472,99 @@ msgstr "Cátalogo de ebook de Calibre-Web" msgid "Reflow text when sidebars are open." msgstr "Redimensionar el texto cuando las barras laterales están abiertas." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Atajos de teclado" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Página previa" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Página siguiente" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Escalar a mejor" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Escalar a la ancho" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Escalar a lo alto" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Escalado nativo" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Rotar hacia la derecha" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Rotar hacia la izquierda" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Voltear imagen" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Claro" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Oscuro" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Escalar" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Mejor" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Ancho" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Alto" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Nativo" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Rotar" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Voltear" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Horizontal" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Vertical" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Dirección" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "De izquierda a derecha" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "De derecha a izquierda" diff --git a/cps/translations/fi/LC_MESSAGES/messages.po b/cps/translations/fi/LC_MESSAGES/messages.po index dce50ebe..3975048f 100644 --- a/cps/translations/fi/LC_MESSAGES/messages.po +++ b/cps/translations/fi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-01-12 13:56+0100\n" "Last-Translator: Samuli Valavuo \n" "Language: fi\n" @@ -164,7 +164,7 @@ msgstr "" msgid "Basic Configuration" msgstr "Perusasetukset" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Ole hyvä ja täytä kaikki kentät!" @@ -172,7 +172,7 @@ msgstr "Ole hyvä ja täytä kaikki kentät!" msgid "Add new user" msgstr "Lisää uusi käyttäjä" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "Sähköpostiosoite ei ole toimivasta domainista" @@ -198,16 +198,16 @@ msgstr "Pääkäyttäjiä ei jää jäljelle, käyttäjää ei voi poistaa" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Tälle sähköpostiosoitteelle läytyi jo käyttäjätunnus." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Muokkaa käyttäjää %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "" @@ -251,11 +251,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "Käyttäjän %(user)s salasana palautettu" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Tapahtui tuntematon virhe. Yritä myöhemmin uudelleen." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Ole hyvä ja aseta SMTP postiasetukset ensin..." @@ -353,8 +353,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Virhe e-kirjaa avatessa. Tiedostoa ei löydy tai se ei ole saatavilla" @@ -386,7 +386,7 @@ msgstr "Polun %(path)s luonti epäonnistui (Ei oikeutta)." msgid "Failed to store file %(file)s." msgstr "Tiedoston %(file)s tallennus epäonnistui." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -449,151 +449,151 @@ msgstr "Google Drive asetukset ei ole valmiit. Koita poistaa Google Drive käyt msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Paluuosoitteen domain ei ole varmistettu, seuraa ohjeita vamistaaksesi sen googlen kehittäjäkonsolissa" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s tiedostomuotoa ei löytynyt kirjalle: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s ei löytynyt Google Drivesta: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s ei löydy: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Lähetä Kindleen" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Tämä sähköposti on lähetetty Calibre-Web:sta." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web testisähköposti" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Testi sähköposti" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Aloita Calibre-Web:in käyttö" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Rekiströintisähköposti käyttäjälle: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Lähetä %(format)s Kindleen" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Muunna %(orig)s muotoon %(format)s ja lähetä Kindleen" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "Sähköposti: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Haettua tiedostoa ei pystytty lukemaan. Ehkä vaäärät oikeudet?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Tiedon muuttaminen arvosta: '%(src)s' arvoon '%(dest)s' epäonnistui virheeseen: %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Tiedoston nimeäminen polusta '%(src)s' polkuun '%(dest)s' epäonnistui virheeseen: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Tiedostoa %(file)s ei löytynyt Google Drivesta" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Kirjan polkua %(path)s ei löytynyt Google Drivesta" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Odottaa" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Epäonnistui" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Aloitettu" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Valmistui" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Tuntematon tila" @@ -601,7 +601,7 @@ msgstr "Tuntematon tila" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "" @@ -626,7 +626,7 @@ msgstr "Googleen kirjautuminen epäonnistui." msgid "Failed to fetch user info from Google." msgstr "Käyttäjätietojen haku Googlesta epäonnistui." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "olet nyt kirjautunut tunnuksella: \"%(nickname)s\"" @@ -663,7 +663,7 @@ msgstr "GitHub Oauth virhe, yritä myöhemmin uudelleen." msgid "Google Oauth error, please retry later." msgstr "Google Oauth virhe, yritä myöhemmin uudelleen." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "kirjaudu" @@ -679,9 +679,9 @@ msgstr "Valtuutus vanhentunut" msgid "Success! Please return to your device" msgstr "Onnistui! Ole hyvä ja palaa laitteellesi" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Viimeksi lisätty" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Kirjat" #: cps/render_template.py:41 msgid "Show recent books" @@ -703,7 +703,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Parhaiten arvioidut kirjat" @@ -712,7 +712,7 @@ msgid "Show Top Rated Books" msgstr "Näytä parhaiten arvioidut kirjat" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Luetut kirjat" @@ -721,7 +721,7 @@ msgid "Show read and unread" msgstr "Näytä luetut ja lukemattomat" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Lukemattomat kirjat" @@ -738,7 +738,7 @@ msgid "Show random books" msgstr "Näytä satunnaisia kirjoja" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Kategoriat" @@ -748,7 +748,7 @@ msgstr "Näytä kategoriavalinta" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Sarjat" @@ -766,7 +766,7 @@ msgid "Show author selection" msgstr "Näytä kirjailijavalinta" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Julkaisijat" @@ -775,7 +775,7 @@ msgid "Show publisher selection" msgstr "Näytä julkaisijavalinta" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Kielet" @@ -799,7 +799,7 @@ msgstr "Tiedotomuodot" msgid "Show file formats selection" msgstr "Näytä tiedostomuotovalinta" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -807,7 +807,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -939,189 +939,189 @@ msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi ve msgid "Click on the button below to update to the latest stable version." msgstr "Paina alla olevaa nappia päivittääksesi uusimpaan vakaaseen versioon." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Löydä (satunnaiset kirjat)" -#: cps/web.py:423 -msgid "Books" -msgstr "Kirjat" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Kuumat kirjat (ladatuimmat)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Virhe eKirjan avaamisessa. Tiedostoa ei ole tai se ei ole saatavilla:" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Kirjailija: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Julkaisija: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Sarja: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Arvostelu: %(rating)s tähteä" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Tiedostomuoto: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Kieli: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Edistynyt haku" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Hae" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Arvostelulistaus" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Tiedostomuotolistaus" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Tehtävät" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Julkaistu alkaen " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Julkaisut ennen " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Arvostelu <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Arvostelu >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Kirja lisätty onnistuneeksi lähetettäväksi osoitteeseen %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Kirjan: %(res)s lähettämisessa tapahtui virhe" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Ole hyvä ja aseta Kindle sähköpostiosoite ensin..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "rekisteröidy" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Sähköpostiosoitteellasi ei ole sallittua rekisteröityä" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Vahvistusviesti on lähetetty sähköpostiosoitteeseesi." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Käyttäjätunnus tai sähköpostiosoite on jo käytössä." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "LDAP autnetikoinnin aktivointi ei onnistu" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Väärä käyttäjätunnus tai salasana" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "olet kirjautunut tunnuksella: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)sn profiili" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profiili päivitetty" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Lue kirja" @@ -1692,7 +1692,7 @@ msgid "Location of Calibre Database" msgstr "Calibre -tietokannan paikka" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2008,7 +2008,7 @@ msgstr "Satunnaisten kirjojen näytön lukumäärä" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Kirjailijoiden lukumäärä ennen piilotusta (0=poista piilotus)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Teema" @@ -2309,7 +2309,7 @@ msgid "Search Library" msgstr "" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Asetukset" @@ -2469,99 +2469,99 @@ msgstr "Calibre-Web e-kirjaluettelo" msgid "Reflow text when sidebars are open." msgstr "Uudelleenjärjestä teksti kun sivut on auki." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Näppäimistöpikakomennot" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Edellinen sivu" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Seuraava sivu" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Skaalaa parhaaseen" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Skaalaa leveyteen" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Skaalaa korkeuteen" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Skaalaa alkuperäiseen" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Käännä oikealle" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Käännä vasemmalle" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Käännä kuva" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Vaalea" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Tumma" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Skaalaa" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Paras" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Leveys" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Korkeus" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Alkuperäinen" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Pyöritä" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Käännä" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Vaakasuunta" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Pystysuunta" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Suunta" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Vasemmalta oikealle" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Oikealta vasemmalle" diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index 4cd4beb1..61b0152d 100644 --- a/cps/translations/fr/LC_MESSAGES/messages.po +++ b/cps/translations/fr/LC_MESSAGES/messages.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-06-07 06:47+0200\n" "Last-Translator: Dekani \n" "Language: fr\n" @@ -178,7 +178,7 @@ msgstr "La DB n'est pas accessible en écriture" msgid "Basic Configuration" msgstr "Configuration principale" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Veuillez compléter tous les champs !" @@ -186,7 +186,7 @@ msgstr "Veuillez compléter tous les champs !" msgid "Add new user" msgstr "Ajouter un nouvel utilisateur" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "Cette adresse de courriel n’appartient pas à un domaine valide" @@ -212,16 +212,16 @@ msgstr "Aucun utilisateur admin restant, impossible de supprimer l’utilisateur msgid "No admin user remaining, can't remove admin role" msgstr "Aucun utilisateur admin restant, impossible de supprimer le rôle admin" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Un compte existant a été trouvé pour cette adresse de courriel." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Éditer l'utilisateur %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Cet utilisateur est déjà pris" @@ -265,11 +265,11 @@ msgstr "L'utilisateur n'a pas été trouvé" msgid "Password for user %(user)s reset" msgstr "Le mot de passe de l’utilisateur %(user)s a été réinitialisé" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Une erreur inconnue est survenue. Veuillez réessayer plus tard." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Veuillez configurer les paramètres SMTP au préalable..." @@ -367,8 +367,8 @@ msgstr "Le format du livre a été supprimé avec succès" msgid "Book Successfully Deleted" msgstr "Le livre a été supprimé avec succès" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Erreur à l’ouverture du livre. Le fichier n’existe pas ou n’est pas accessible" @@ -400,7 +400,7 @@ msgstr "Impossible de créer le chemin %(path)s (Permission refusée)." msgid "Failed to store file %(file)s." msgstr "Échec de la sauvegarde du fichier %(file)s." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "Erreur de la base de données: %(error)s." @@ -463,151 +463,151 @@ msgstr "La configuration de Google Drive n’est pas terminée, essayez de désa msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Le domaine de retour d’appel (Callback domain) est non vérifié, veuillez suivre les étapes nécessaires pour vérifier le domaine dans la console de développement de Google" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "le format %(format)s est introuvable pour le livre : %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "le %(format)s est introuvable sur Google Drive : %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s introuvable : %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Envoyer vers Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Ce courriel a été envoyé depuis Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Courriel de test de Calibre-Web" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Courriel de test" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Bien démarrer avec Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Courriel d’inscription pour l’utilisateur : %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Envoyer %(format)s vers le Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Convertir de %(orig)s vers %(format)s et envoyer au Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "Courriel : %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Le fichier demandé n’a pu être lu. Problème de permission d’accès ?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "La suppression du livre %(id)s a échoué: %(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "Suppression du livre %(id)s, le chemin du livre est invalide : %(path)s" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Renommer le titre de : '%(src)s' à '%(dest)s' a échoué avec l’erreur : %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modification du nom de fichier du chemin : '%(src)s' vers '%(dest)s' a échoué avec l’erreur : %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Le fichier %(file)s n'a pas été trouvé dans Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Le chemin du livre %(path)s n'a pas été trouvé dans Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "Erreur lors du téléchargement de la couverture" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "Erreur de format de couverture" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Impossible de créer le chemin pour la couverture" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Le fichier couverture n'est pas un fichier image valide, ou ne peut pas être stocké" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Seuls les fichiers jpg/jpeg sont supportés comme fichier de couverture" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "Fichier binaire Unrar non trouvé" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "Une erreur est survenue lors de l'exécution d'UnRar" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "En attente" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Echoué" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Débuté" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Terminé" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Statut inconnu" @@ -615,7 +615,7 @@ msgstr "Statut inconnu" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Veuilllez ne pas accéder à calibre-web par localhost pour obtenir un api_endpoint valide pour un appareil kobo" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Configuration Kobo" @@ -640,7 +640,7 @@ msgstr "Échec de la connexion avec Google." msgid "Failed to fetch user info from Google." msgstr "Impossible d’obtenir les informations d’utilisateur avec Google." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "vous êtes maintenant connecté comme : '%(nickname)s'" @@ -677,7 +677,7 @@ msgstr "Erreur Oauth GitHub, veuillez réessayer plus tard." msgid "Google Oauth error, please retry later." msgstr "Erreur Oauth Google, veuillez réessayer plus tard." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "connexion" @@ -693,9 +693,9 @@ msgstr "Jeton expiré" msgid "Success! Please return to your device" msgstr "Réussite! Merci de vous tourner vers votre appareil" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Ajouts récents" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Livres" #: cps/render_template.py:41 msgid "Show recent books" @@ -717,7 +717,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Livres les mieux notés" @@ -726,7 +726,7 @@ msgid "Show Top Rated Books" msgstr "Montrer les livres les mieux notés" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Livres lus" @@ -735,7 +735,7 @@ msgid "Show read and unread" msgstr "Montrer lus et non-lus" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Livres non-lus" @@ -752,7 +752,7 @@ msgid "Show random books" msgstr "Montrer des livres au hasard" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Catégories" @@ -762,7 +762,7 @@ msgstr "Montrer la sélection par catégories" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Séries" @@ -780,7 +780,7 @@ msgid "Show author selection" msgstr "Montrer la sélection par auteur" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Éditeurs" @@ -789,7 +789,7 @@ msgid "Show publisher selection" msgstr "Montrer la sélection par éditeur" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Langues" @@ -813,7 +813,7 @@ msgstr "Formats de fichier" msgid "Show file formats selection" msgstr "Afficher la sélection des formats de fichiers" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "Livres archivés" @@ -821,7 +821,7 @@ msgstr "Livres archivés" msgid "Show archived books" msgstr "Afficher les livres archivés" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -953,189 +953,189 @@ msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-desso msgid "Click on the button below to update to the latest stable version." msgstr "Téléchargez la dernière version en cliquant sur le bouton ci-dessous." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Découvrir (Livres au hasard)" -#: cps/web.py:423 -msgid "Books" -msgstr "Livres" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Livres populaires (les plus téléchargés)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est pas accessible" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Auteur : %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Éditeur : '%(name)s'" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Séries : %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Évaluation : %(rating)s étoiles" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Format de fichier : %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Catégorie : %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Langue : %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "La colonne personnalisée No.%(column)d n'existe pas dans la base de données calibre" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Recherche avancée" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Chercher" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Liste des évaluations" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Liste de formats de fichiers" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Tâches" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Publié après le " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Publié avant le " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Évaluation <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Évaluation >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Le livre a été mis en file de traitement avec succès pour un envoi vers %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Veuillez mettre à jour votre profil avec une adresse de courriel Kindle valide." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Le serveur de courriel n'est pas configuré, veuillez contacter votre administrateur!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "s’enregistrer" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Votre adresse de courriel n’est pas autorisé pour une inscription" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Le courriel de confirmation a été envoyé à votre adresse." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Ce nom d’utilisateur ou cette adresse de courriel sont déjà utilisés." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Impossible d’activer l’authentification LDAP" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Connexion de secours comme: '%(nickname)s', le serveur LDAP est indisponible, ou l'utilisateur est inconnu" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Impossible de se connecter: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Mauvais nom d'utilisateur ou mot de passe" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Le nouveau mot de passe a été envoyé vers votre adresse de courriel" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Veuillez entrer un nom d'utilisateur valide pour réinitialiser le mot de passe" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Vous êtes maintenant connecté en tant que : ‘%(nickname)s’" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "Profil de %(name)s" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profil mis à jour" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Lire un livre" @@ -1706,7 +1706,7 @@ msgid "Location of Calibre Database" msgstr "Emplacement de la base de données Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2022,7 +2022,7 @@ msgstr "Nombre de livres choisis au hasard à afficher" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Nombre d’auteurs à afficher avant de masquer (0=désactiver le masquage)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Thème" @@ -2323,7 +2323,7 @@ msgid "Search Library" msgstr "Chercher dans librairie" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Paramètres" @@ -2483,99 +2483,99 @@ msgstr "Catalogue de livres électroniques Calibre-Web" msgid "Reflow text when sidebars are open." msgstr "Mettre à jour la mise en page du texte quand les bandeaux latéraux sont ouverts." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Raccourcis clavier" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Page précédente" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Page suivante" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Mise à l’échelle optimale" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Mise à l’échelle sur la largeur" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Mise à l’échelle sur la hauteur" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Mise à l’échelle d’origine" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Rotation droite" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Rotation gauche" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Inverser l’image" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Clair" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Sombre" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Échelle" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Optimal" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Largeur" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Hauteur" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Origine" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Rotation" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Inverser" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Horizontal" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Vertical" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Direction" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "De gauche à droite" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "De droite à gauche" diff --git a/cps/translations/hu/LC_MESSAGES/messages.po b/cps/translations/hu/LC_MESSAGES/messages.po index ad369cee..b46f0df0 100644 --- a/cps/translations/hu/LC_MESSAGES/messages.po +++ b/cps/translations/hu/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2019-04-06 23:36+0200\n" "Last-Translator: \n" "Language: hu\n" @@ -164,7 +164,7 @@ msgstr "" msgid "Basic Configuration" msgstr "Alapvető beállítások" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Az összes mezőt ki kell tölteni!" @@ -172,7 +172,7 @@ msgstr "Az összes mezőt ki kell tölteni!" msgid "Add new user" msgstr "Új felhasználó hozzáadása" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "Az e-mail tartománya nem érvényes." @@ -198,16 +198,16 @@ msgstr "" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Már létezik felhasználó ehhez az e-mail címhez." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr " A felhasználó szerkesztése: %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "" @@ -251,11 +251,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "A(z) %(user)s felhasználó jelszavának alaphelyzetbe állítása" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Ismeretlen hiba történt. Próbáld újra később!" -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Először be kell állítani az SMTP levelező beállításokat..." @@ -353,8 +353,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Hiba az ekönyv megnyitásakor. A fájl nem létezik vagy nem elérhető." @@ -386,7 +386,7 @@ msgstr "Nem sikerült létrehozni az elérési utat (engedély megtagadva): %(pa msgid "Failed to store file %(file)s." msgstr "Nem sikerült elmenteni a %(file)s fájlt." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -449,151 +449,151 @@ msgstr "A Google Drive beállítása nem fejeződött be, próbáld kikapcsolni msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "A visszahívási tartomány nem ellenőrzött, kövesd az alábbi lépéseket a tartomány ellenőrzéséhez a Google Developer Console-ban:" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "A(z) %(format)s formátum nem található a következő könyvhöz: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s nem található a Google Drive-on: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nem található: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Küldés Kindle-re" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Ez az e-mail a Calibre-Web-en keresztül lett küldve." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web teszt e-mail" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Teszt e-mail" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Kezdő lépések a Calibre-Web-bel" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Regisztrációs e-mail a következő felhasználóhoz: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "%(format)s küldése Kindle-re" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s konvertálása %(format)s-ra és küldés Kindle-re" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "E-mail: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "A kért fájl nem olvasható. Esetleg jogosultsági probléma lenne?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "A cím átnevezése \"%(src)s\"-ról \"%(dest)s\"-ra nem sikerült a következő hiba miatt: %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "\"%(src)s\" fájl átnevezése \"%(dest)s\"-re nem sikerült a következő hiba miatt: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "A \"%(file)s\" fájl nem található a Google Drive-on" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "A könyv elérési útja (\"%(path)s\") nem található a Google Drive-on" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Várakozás" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Nem sikerült" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Elindítva" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Végrehajtva" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Ismeretlen állapot" @@ -601,7 +601,7 @@ msgstr "Ismeretlen állapot" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "" @@ -626,7 +626,7 @@ msgstr "" msgid "Failed to fetch user info from Google." msgstr "" -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Be vagy jelentkezve mint: %(nickname)s" @@ -663,7 +663,7 @@ msgstr "" msgid "Google Oauth error, please retry later." msgstr "" -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "belépés" @@ -679,9 +679,9 @@ msgstr "A token érvényessége lejárt." msgid "Success! Please return to your device" msgstr "Sikerült! Újra használható az eszköz." -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Legutóbb hozzáadott" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "" #: cps/render_template.py:41 msgid "Show recent books" @@ -703,7 +703,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Legjobb könyvek" @@ -712,7 +712,7 @@ msgid "Show Top Rated Books" msgstr "Legjobbra értékelt könyvek mutatása" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Olvasott könyvek" @@ -721,7 +721,7 @@ msgid "Show read and unread" msgstr "Mutassa az olvasva/olvasatlan állapotot" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Olvasatlan könyvek" @@ -738,7 +738,7 @@ msgid "Show random books" msgstr "Könyvek találomra mutatása" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Címkék" @@ -748,7 +748,7 @@ msgstr "Címke választó mutatása" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Sorozatok" @@ -766,7 +766,7 @@ msgid "Show author selection" msgstr "Szerző választó mutatása" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Kiadók" @@ -775,7 +775,7 @@ msgid "Show publisher selection" msgstr "Kiadó választó mutatása" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Nyelvek" @@ -799,7 +799,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -807,7 +807,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -939,189 +939,189 @@ msgstr "Új frissítés érhető el. Kattints az alábbi gombra a frissítéshez msgid "Click on the button below to update to the latest stable version." msgstr "" -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Felfedezés (könyvek találomra)" -#: cps/web.py:423 -msgid "Books" -msgstr "" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Kelendő könyvek (legtöbbet letöltöttek)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Hiba történt az e-könyv megnyitásakor. A fájl nem létezik vagy nem érhető el:" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Kiadó: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Sorozat: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Címke: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Nyelv: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Részletes keresés" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Keresés" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Feladatok" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Kiadva ezután: " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Kiadva ezelőtt: " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Értékelés <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Értékelés <= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "A könyv sikeresen küldésre lett jelölve a következő címre: %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Hiba történt a könyv küldésekor: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Először be kell állítani a kindle e-mail címet..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "regisztrálás" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Nem engedélyezett a megadott e-mail cím bejegyzése" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Jóváhagyó levél elküldve az email címedre." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Ez a felhasználónév vagy e-mail cím már használatban van." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Rossz felhasználó név vagy jelszó!" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s profilja" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "A profil frissítve." -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Egy olvasott könyv" @@ -1692,7 +1692,7 @@ msgid "Location of Calibre Database" msgstr "Calibra adatbázis helye" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2008,7 +2008,7 @@ msgstr "Találomra mutatott könyvek száma" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Mutatott szerzők száma (0=elrejtés kikapcsolása)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Téma" @@ -2309,7 +2309,7 @@ msgid "Search Library" msgstr "" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Beállítások" @@ -2469,99 +2469,99 @@ msgstr "Calibre-Web e-könyv katalógus" msgid "Reflow text when sidebars are open." msgstr "Szöveg újratördelése amikor az oldalsávok nyitva vannak" -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Gyorsbillentyűk" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Előző oldal" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Következő oldal" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Méretezés a legjobbra" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Méretezés a szélességre" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Méretezés a magasságra" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Méretezés a natívra" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Forgatás balra" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Forgatás jobbra" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Kép tükrözése" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Világos" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Sötét" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Méretezés" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Legjobb" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Szélesség" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Magasság" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Natív" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Forgatás" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Tökrözés" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Vízszintes" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Függőleges" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "" diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 80cb224a..57eb71f6 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: ElQuimm \n" "Language: it\n" @@ -163,7 +163,7 @@ msgstr "Il DB non è scrivibile" msgid "Basic Configuration" msgstr "Configurazione di base" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Per favore compila tutti i campi!" @@ -171,7 +171,7 @@ msgstr "Per favore compila tutti i campi!" msgid "Add new user" msgstr "Aggiungi un nuovo utente" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "L'e-mail non proviene da un dominio valido" @@ -197,16 +197,16 @@ msgstr "Non rimarrebbe nessun utente amministratore, non posso eliminare l'utent msgid "No admin user remaining, can't remove admin role" msgstr "Non rimarrebbe nessun utente amministratore, non posso rimuovere il ruolo di amministratore" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Ho trovato un account creato in precedenza con questa e-mail." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Modifica l'utente %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Questo nome di utente è già utilizzato" @@ -250,11 +250,11 @@ msgstr "Utente non trovato" msgid "Password for user %(user)s reset" msgstr "La password dell'utente %(user)s è stata resettata" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Si è verificato un errore sconosciuto: per favore riprova." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Configura dapprima le impostazioni del server SMTP..." @@ -352,8 +352,8 @@ msgstr "Il formato del libro è stato eliminato con successo" msgid "Book Successfully Deleted" msgstr "Il libro é stato eliminato con successo" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Errore durante l'apertura del libro. Il file non esiste o il file non è accessibile" @@ -385,7 +385,7 @@ msgstr "Impossibile creare la cartella %(path)s (autorizzazione negata)." msgid "Failed to store file %(file)s." msgstr "Il salvataggio del file %(file)s non è riuscito." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "Errore nel database: %(error)s." @@ -448,151 +448,151 @@ msgstr "La configurazione di Google Drive non è stata completata correttamente. msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Callback domain non è stato verificato. Per favore intraprendi il necessario per verificare il dominio nella developer console di Google" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "Formato %(format)s non trovato per il libro: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s non trovato su Google Drive: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s non trovato: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Invia a Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Questo e-mail è stato spedito tramite Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "E-mail di test da Calibre-Web" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "E-mail di test" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Inizia con Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "E-mail di registrazione dell'utente: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Invia %(format)s a Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Converti %(orig)s in %(format)s e spedisci a Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "E-mail: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Il file richiesto non può essere letto. I permessi sono corretti?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "L'eliminazione della cartella del libro %(id)s non è riuscita, il percorso ha sottocartelle: %(path)s" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "L'eliminazione del libro %(id)s non è riuscita: %(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "Eliminazione del libro %(id)s. Il percorso del libro non è valido: %(path)s" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modifica del titolo da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modifica del file nella cartella da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "File %(file)s non trovato su Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Non ho trovato la cartella %(path)s del libro su Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "Errore nello scaricare la copertina" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "Errore di formato della copertina" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Errore nel creare la cartella per la copertina" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Il file della copertina non è in un formato immagine valido o non può essere salvato" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Solamente i file nei formati jpg/jpeg sono supportati per le copertine" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "Non ho trovato il file binario di UnRar" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "Errore nell'eseguire UnRar" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Attendi" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Non riuscito" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Avviato" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Terminato" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Stato sconosciuto" @@ -600,7 +600,7 @@ msgstr "Stato sconosciuto" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Configurazione di Kobo" @@ -625,7 +625,7 @@ msgstr "L'accesso con Google non è riuscito." msgid "Failed to fetch user info from Google." msgstr "Il recupero delle informazioni dell'utente da Google non è riuscito." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "ora sei connesso come: '%(nickname)s'" @@ -662,7 +662,7 @@ msgstr "GitHub, errore Oauth: per favore riprova più tardi." msgid "Google Oauth error, please retry later." msgstr "Google, errore Oauth: per favore riprova più tardi." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "accedi" @@ -678,9 +678,9 @@ msgstr "Il token è scaduto" msgid "Success! Please return to your device" msgstr "Riuscito! Torna al tuo dispositivo" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Aggiunti recentemente" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Libri" #: cps/render_template.py:41 msgid "Show recent books" @@ -702,7 +702,7 @@ msgstr "Libri scaricati" msgid "Show Downloaded Books" msgstr "Mostra l'opzione per la visualizzazione dei libri scaricati" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Libri meglio valutati" @@ -711,7 +711,7 @@ msgid "Show Top Rated Books" msgstr "Mostra l'opzione per la selezione dei libri meglio valutati" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Libri da leggere" @@ -720,7 +720,7 @@ msgid "Show read and unread" msgstr "Mostra l'opzione per la selezione letto e non letto" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Libri non letti" @@ -737,7 +737,7 @@ msgid "Show random books" msgstr "Mostra l'opzione per presentare libri aleatoriamente" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Categorie" @@ -747,7 +747,7 @@ msgstr "Mostra l'opzione per la selezione delle categorie" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Serie" @@ -765,7 +765,7 @@ msgid "Show author selection" msgstr "Mostra l'opzione per la selezione degli autori" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Editori" @@ -774,7 +774,7 @@ msgid "Show publisher selection" msgstr "Mostra l'opzione per la selezione degli editori" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Lingue" @@ -798,7 +798,7 @@ msgstr "Formati file" msgid "Show file formats selection" msgstr "Mostra la selezione del formato dei file" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "Libri archiviati" @@ -806,7 +806,7 @@ msgstr "Libri archiviati" msgid "Show archived books" msgstr "Mostra l'opzione per la selezione dei libri archiviati" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "Elenco libri" @@ -938,189 +938,189 @@ msgstr "Nuovo aggiornamento disponibile. Clicca sul pulsante sottostante per agg msgid "Click on the button below to update to the latest stable version." msgstr "Clicca sul pulsante per aggiornare all'ultima versione stabile." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Scopri (libri casuali)" -#: cps/web.py:423 -msgid "Books" -msgstr "Libri" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "I libri più richiesti" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "I libri scaricati da %(user)s" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Errore durante l'apertura del libro selezionato. Il file non esiste o il file non è accessibile" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Autore: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Editore: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Valutazione: %(rating)s stelle" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Formato del file: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Categoria: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Lingua: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "La colonna personale no.%(column)d non esiste nel database di Calibre" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Ricerca avanzata" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Cerca" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Elenco delle valutazioni" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Elenco dei formati" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Compito" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Pubblicato dopo il " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Pubblicato prima del " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Valutazione <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Valutazione >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Libro accodato con successo per essere spedito a %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Si è verificato un errore durante l'invio di questo libro: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Per favore aggiorna il tuo profilo con un indirizzo e-mail Kindle a cui inviare i libri." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "registra" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Il tuo e-mail non è autorizzato alla registrazione" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Un messaggio di conferma è stato inviato al tuo recapito e-mail." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Questo nome di utente o questo e-mail sono già utilizzati." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Non posso attivare l'autenticazione LDAP" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Fallback login come: '%(nickname)s', il server LDAP non è raggiungibile o l'utente è sconosciuto" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Non posso accedere: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Nome utente o password errati" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Una nuova password è stata inviata al tuo recapito e-mail" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Per favore digita un nome di utente valido per resettare la password" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Ora sei connesso come '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "Profilo di %(name)s" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profilo aggiornato" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Leggi un libro" @@ -1691,7 +1691,7 @@ msgid "Location of Calibre Database" msgstr "Posizione del database di Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2007,7 +2007,7 @@ msgstr "Numero di libri casuali da mostrare" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Numero di autori da mostrare prima di nascondere (0=disabilita mascheramento)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Tema" @@ -2308,7 +2308,7 @@ msgid "Search Library" msgstr "Ricerca nella libreria" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Configurazione" @@ -2468,99 +2468,99 @@ msgstr "Catalogo Calibre-Web" msgid "Reflow text when sidebars are open." msgstr "Adatta il testo quando le barre laterali sono aperte." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Scorciatoie della tastiera" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Pagina precedente" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Pagina successiva" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Adatta al meglio" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Adatta alla larghezza" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Adatta all'altezza" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Scala alla dimensione originale" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Ruota a destra" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Ruota a sinistra" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Capovolgi immagine" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Chiaro" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Scuro" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Scala" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Migliore" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Larghezza" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Altezza" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Originale" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Ruota" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Capovolgi" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Orizzontale" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Verticale" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Orientamento" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Da sinistra a destra" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Da destra a sinistra" diff --git a/cps/translations/ja/LC_MESSAGES/messages.po b/cps/translations/ja/LC_MESSAGES/messages.po index b9ff8b97..a821a302 100644 --- a/cps/translations/ja/LC_MESSAGES/messages.po +++ b/cps/translations/ja/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2018-02-07 02:20-0500\n" "Last-Translator: white \n" "Language: ja\n" @@ -164,7 +164,7 @@ msgstr "" msgid "Basic Configuration" msgstr "基本設定" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "全ての項目を入力してください" @@ -172,7 +172,7 @@ msgstr "全ての項目を入力してください" msgid "Add new user" msgstr "新規ユーザ追加" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "このメールは有効なドメインからのものではありません" @@ -198,16 +198,16 @@ msgstr "" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "このメールアドレスで登録されたアカウントがあります" -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "%(nick)s を編集" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "" @@ -251,11 +251,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "%(user)s 用のパスワードをリセット" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "不明なエラーが発生しました。あとで再試行してください。" -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "初めにSMTPメールの設定をしてください" @@ -353,8 +353,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "電子書籍を開けません。ファイルが存在しないかアクセスできません" @@ -386,7 +386,7 @@ msgstr "%(path)s の作成に失敗しました (Permission denied)。" msgid "Failed to store file %(file)s." msgstr "%(file)s を保存できません。" -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -449,151 +449,151 @@ msgstr "Googleドライブの設定が完了していません。Googleドライ msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "コールバックドメインが認証されていません。Google Developer Consoleでドメインを認証してください" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "ID: %(book)d の本に %(format)s フォーマットはありません" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Googleドライブ: %(fn)s に %(format)s はありません" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s がありません: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Kindleに送信" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "このメールはCalibre-Web経由で送信されました。" -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web テストメール" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "テストメール" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Calibre-Webを始める" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "ユーザ: %(name)s 用の登録メール" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Kindleに %(format)s を送信" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s を %(format)s に変換してからKindleに送信" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "メール: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "要求されたファイルを読み込めませんでした。権限設定が正しいか確認してください。" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "エラー: %(error)s により、タイトルを %(src)s から %(dest)s に変更できませんでした。" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "エラー: %(error)s により、ファイルパスを %(src)s から %(dest)s に変更できませんでした。" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "ファイル %(file)s はGoogleドライブ上にありません" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "本のパス %(path)s はGoogleドライブ上にありません" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "待機中" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "失敗" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "開始" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "終了" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "不明" @@ -601,7 +601,7 @@ msgstr "不明" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "" @@ -626,7 +626,7 @@ msgstr "" msgid "Failed to fetch user info from Google." msgstr "" -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "%(nickname)s としてログイン中" @@ -663,7 +663,7 @@ msgstr "" msgid "Google Oauth error, please retry later." msgstr "" -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "ログイン" @@ -679,9 +679,9 @@ msgstr "トークンが無効です" msgid "Success! Please return to your device" msgstr "成功です!端末に戻ってください" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "最近追加した本" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "" #: cps/render_template.py:41 msgid "Show recent books" @@ -703,7 +703,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "" @@ -712,7 +712,7 @@ msgid "Show Top Rated Books" msgstr "" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "読んだ本" @@ -721,7 +721,7 @@ msgid "Show read and unread" msgstr "既読の本と未読の本を表示" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "未読の本" @@ -738,7 +738,7 @@ msgid "Show random books" msgstr "ランダムで本を表示" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "カテゴリ" @@ -748,7 +748,7 @@ msgstr "カテゴリ選択を表示" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "シリーズ" @@ -766,7 +766,7 @@ msgid "Show author selection" msgstr "著者選択を表示" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "出版社" @@ -775,7 +775,7 @@ msgid "Show publisher selection" msgstr "出版社選択を表示" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "言語" @@ -799,7 +799,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -807,7 +807,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -939,189 +939,189 @@ msgstr "アップデートが利用可能です。下のボタンをクリック msgid "Click on the button below to update to the latest stable version." msgstr "" -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "本を見つける (ランダムで表示)" -#: cps/web.py:423 -msgid "Books" -msgstr "" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "出版社: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "シリーズ: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "カテゴリ: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "言語: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "詳細検索" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "検索" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "タスク" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "これ以降に出版 " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "これ以前に出版 " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "評価 <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "評価 >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "本の %(kindlemail)s への送信がキューに追加されました" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "%(res)s を送信中にエラーが発生しました" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "初めにKindleのメールアドレスを設定してください" -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "登録" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "このメールアドレスは登録が許可されていません" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "確認メールがこのメールアドレスに送信されました。" -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "このユーザ名またはメールアドレスはすでに使われています。" -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "ユーザ名またはパスワードが違います" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s のプロフィール" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "プロフィールを更新しました" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "本を読む" @@ -1692,7 +1692,7 @@ msgid "Location of Calibre Database" msgstr "" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2008,7 +2008,7 @@ msgstr "" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "テーマ" @@ -2309,7 +2309,7 @@ msgid "Search Library" msgstr "" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "設定" @@ -2469,99 +2469,99 @@ msgstr "" msgid "Reflow text when sidebars are open." msgstr "" -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "キーボードショートカット" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "前のページ" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "次のページ" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "最適なサイズにする" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "横に合わせる" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "縦に合わせる" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "オリジナルのサイズにする" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "右に回転する" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "左に回転する" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "画像を反転する" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "ライト" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "ダーク" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "サイズ" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "最適" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "横に合わせる" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "縦に合わせる" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "オリジナル" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "回転" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "反転" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "水平方向" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "垂直方向" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "読む方向" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "左から右" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "右から左" diff --git a/cps/translations/km/LC_MESSAGES/messages.po b/cps/translations/km/LC_MESSAGES/messages.po index aa183f25..658902d1 100644 --- a/cps/translations/km/LC_MESSAGES/messages.po +++ b/cps/translations/km/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2018-08-27 17:06+0700\n" "Last-Translator: \n" "Language: km_KH\n" @@ -165,7 +165,7 @@ msgstr "" msgid "Basic Configuration" msgstr "ការកំណត់សាមញ្ញ" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "សូមបំពេញចន្លោះទាំងអស់!" @@ -173,7 +173,7 @@ msgstr "សូមបំពេញចន្លោះទាំងអស់!" msgid "Add new user" msgstr "បន្ថែមអ្នកប្រើប្រាស់ថ្មី" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "" @@ -199,16 +199,16 @@ msgstr "" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "" -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "កែប្រែអ្នកប្រើប្រាស់ %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "" @@ -252,11 +252,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "សូមកំណត់អ៊ីមែល SMTP ជាមុនសិន" @@ -354,8 +354,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "មានបញ្ហាពេលបើកឯកសារ eBook ។ ពុំមានឯកសារ ឬឯកសារនេះមិនអាចបើកបាន" @@ -387,7 +387,7 @@ msgstr "មិនអាចបង្កើតទីតាំង %(path)s (ពុ msgid "Failed to store file %(file)s." msgstr "មិនអាចរក្សាទុកឯកសារ %(file)s ។" -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -450,151 +450,151 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Callback domain មិនទាន់បានផ្ទៀងផ្ទាត់ឲប្រើទេ សូមធ្វើតាមជំហានដើម្បីផ្ទៀងផ្ទាត់ domain នៅក្នុង Google Developer Console" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "ផ្ញើទៅ Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "អ៊ីមែល៖ %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "ឯកសារដែលបានស្នើសុំមិនអាចបើកបានទេ។ អាចនឹងខុសសិទ្ធិប្រើប្រាស់ទេដឹង?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, 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:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "ឯកសារ %(file)s រកមិនឃើញក្នុង Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "ទីតាំងសៀវភៅ %(path)s រកមិនឃើញក្នុង Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "កំពុងរង់ចាំ" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "បានបរាជ័យ" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "បានចាប់ផ្តើម" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "បានបញ្ចប់" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "" @@ -602,7 +602,7 @@ msgstr "" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "" @@ -627,7 +627,7 @@ msgstr "" msgid "Failed to fetch user info from Google." msgstr "" -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "ឥឡូវអ្នកបានចូលដោយមានឈ្មោះថា៖ ‘%(nickname)s’" @@ -664,7 +664,7 @@ msgstr "" msgid "Google Oauth error, please retry later." msgstr "" -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "ចូលប្រើ" @@ -680,9 +680,9 @@ msgstr "វត្ថុតាងហួសពេលកំណត់" msgid "Success! Please return to your device" msgstr "ជោគជ័យ! សូមវិលមកឧបករណ៍អ្នកវិញ" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "ទើបបន្ថែមថ្មីៗ" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "" #: cps/render_template.py:41 msgid "Show recent books" @@ -704,7 +704,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "សៀវភៅដែលមានការវាយតម្លៃល្អជាងគេ" @@ -713,7 +713,7 @@ msgid "Show Top Rated Books" msgstr "បង្ហាញសៀវភៅដែលមានការវាយតម្លៃល្អជាងគេ" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "សៀវភៅដែលបានអានរួច" @@ -722,7 +722,7 @@ msgid "Show read and unread" msgstr "បង្ហាញអានរួច និងមិនទាន់អាន" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "សៀវភៅដែលមិនទាន់បានអាន" @@ -739,7 +739,7 @@ msgid "Show random books" msgstr "បង្ហាញសៀវភៅចៃដន្យ" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "ប្រភេទនានា" @@ -749,7 +749,7 @@ msgstr "បង្ហាញជម្រើសប្រភេទ" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "ស៊េរី" @@ -767,7 +767,7 @@ msgid "Show author selection" msgstr "បង្ហាញជម្រើសអ្នកនិពន្ធ" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "" @@ -776,7 +776,7 @@ msgid "Show publisher selection" msgstr "" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "ភាសានានា" @@ -800,7 +800,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -808,7 +808,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -940,189 +940,189 @@ msgstr "" msgid "Click on the button below to update to the latest stable version." msgstr "" -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "ស្រាវជ្រាវ (សៀវភៅចៃដន្យ)" -#: cps/web.py:423 -msgid "Books" -msgstr "" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "សៀវភៅដែលត្រូវបានទាញយកច្រើនជាងគេ" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "ស៊េរី៖ %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "ប្រភេទ៖ %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "ភាសា៖ %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "ស្វែងរកកម្រិតខ្ពស់" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "ស្វែងរក" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "កិច្ចការនានា" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "បានបោះពុម្ភក្រោយ " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "បានបោះពុម្ភមុន " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "ការវាយតម្លៃ <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "ការវាយតម្លៃ >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "សៀវភៅបានចូលជួរសម្រាប់ផ្ញើទៅ %(kindlemail)s ដោយជោគជ័យ" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "មានបញ្ហានៅពេលផ្ញើសៀវភៅនេះ៖ %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "ចុះឈ្មោះ" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "" -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "ខុសឈ្មោះអ្នកប្រើប្រាស់ ឬលេខសម្ងាត់" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "ព័ត៌មានសង្ខេបរបស់ %(name)s" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "ព័ត៌មានសង្ខេបបានកែប្រែ" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "អានសៀវភៅ" @@ -1693,7 +1693,7 @@ msgid "Location of Calibre Database" msgstr "ទីតាំង database របស់ Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2009,7 +2009,7 @@ msgstr "ចំនួនសៀវភៅចៃដន្យដើម្បីបង msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "ការតុបតែង" @@ -2310,7 +2310,7 @@ msgid "Search Library" msgstr "" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "ការកំណត់" @@ -2470,99 +2470,99 @@ msgstr "" msgid "Reflow text when sidebars are open." msgstr "សេរេអត្ថបទនៅពេលបើកផ្ទាំងចំហៀង។" -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "" diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 877ee4d3..9b5c9452 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web (GPLV3)\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-12-12 08:20+0100\n" "Last-Translator: Marcel Maas \n" "Language: nl\n" @@ -165,7 +165,7 @@ msgstr "Kan niet schrijven naar database" msgid "Basic Configuration" msgstr "Basis configuratie" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Vul alle velden in!" @@ -173,7 +173,7 @@ msgstr "Vul alle velden in!" msgid "Add new user" msgstr "Gebruiker toevoegen" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "Het e-mailadres bevat geen geldige domeinnaam" @@ -199,16 +199,16 @@ msgstr "Kan laatste systeembeheerder niet verwijderen" msgid "No admin user remaining, can't remove admin role" msgstr "Kan systeembeheerder rol niet verwijderen van de laatste systeembeheerder" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Bestaand account met dit e-mailadres aangetroffen." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Gebruiker '%(nick)s' bewerken" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Deze gebruikersnaam is al in gebruik" @@ -252,11 +252,11 @@ msgstr "Gebruiker niet gevonden" msgid "Password for user %(user)s reset" msgstr "Wachtwoord voor gebruiker %(user)s is hersteld" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Onbekende fout opgetreden. Probeer het later nog eens." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Stel eerst SMTP-mail in..." @@ -354,8 +354,8 @@ msgstr "Het boekformaat is verwijderd" msgid "Book Successfully Deleted" msgstr "Het boek is verwijderd" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Kan e-boek niet openen: het bestand bestaat niet of is ontoegankelijk" @@ -387,7 +387,7 @@ msgstr "Kan de locatie '%(path)s' niet aanmaken (niet gemachtigd)." msgid "Failed to store file %(file)s." msgstr "Kan %(file)s niet opslaan." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "Database fout: %(error)s." @@ -450,151 +450,151 @@ msgstr "Het instellen van Google Drive is niet afgerond, heractiveer Google Driv msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Het callback-domein is niet geverifieerd. Volg de stappen in de Google-ontwikkelaarsconsole om het domein te verifiëren" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formaat niet gevonden voor boek met id: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s niet aangetroffen op Google Drive: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s niet gevonden %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Versturen naar Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Deze e-mail is verstuurd via Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web - test-e-mail" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Test-e-mail" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Aan de slag met Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Registratie-e-mailadres van gebruiker: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "%(format)s versturen naar Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s converteren naar %(format)s en versturen naar Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "E-mail: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Het opgevraagde bestand kan niet worden uitgelezen. Ben je hiertoe gemachtigd?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Verwijderen van boek %(id)s mislukt: %(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kan de naam '%(src)s' niet wijzigen in '%(dest)s': %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kan het bestand in '%(src)s' niet wijzigen naar '%(dest)s': %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Bestand '%(file)s' niet aangetroffen op Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Boeken locatie '%(path)s' niet aangetroffen op Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "Fout bij downloaden omslag" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "Onjuist omslag formaat" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Locatie aanmaken voor omslag mislukt" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Omslag-bestand is geen afbeelding of kon niet opgeslagen worden" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Alleen jpg/jpeg bestanden zijn toegestaan als omslag" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "Unrar executable niet gevonden" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "Fout bij het uitvoeren van Unrar" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Wachten" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Mislukt" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Gestart" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Voltooid" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Onbekende status" @@ -602,7 +602,7 @@ msgstr "Onbekende status" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Je kunt Calibre-Web niet vanaf de lokale computer openen om een geldige api_endpoint te krijgen voor je kobo toestel" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Kobo Instellen" @@ -627,7 +627,7 @@ msgstr "Inloggen bij Google mislukt." msgid "Failed to fetch user info from Google." msgstr "Opvragen gebruikersinfo bij Google mislukt." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "je bent ingelogd als: '%(nickname)s'" @@ -664,7 +664,7 @@ msgstr "GitHub OAuth fout, probeer het later nog eens." msgid "Google Oauth error, please retry later." msgstr "Google OAuth fout, probeer het later nog eens." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "inloggen" @@ -680,9 +680,9 @@ msgstr "Toegangssleutel is verlopen" msgid "Success! Please return to your device" msgstr "Gelukt! Ga terug naar je apparaat" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Recent toegevoegd" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Boeken" #: cps/render_template.py:41 msgid "Show recent books" @@ -704,7 +704,7 @@ msgstr "Gedownloade boeken" msgid "Show Downloaded Books" msgstr "Gedownloade boeken tonen" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Best beoordeelde boeken" @@ -713,7 +713,7 @@ msgid "Show Top Rated Books" msgstr "Best beoordeelde boeken tonen" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Gelezen boeken" @@ -722,7 +722,7 @@ msgid "Show read and unread" msgstr "Gelezen/Ongelezen boeken tonen" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Ongelezen boeken" @@ -739,7 +739,7 @@ msgid "Show random books" msgstr "Willekeurige boeken tonen" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Categorieën" @@ -749,7 +749,7 @@ msgstr "Categoriekeuze tonen" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Boekenreeksen" @@ -767,7 +767,7 @@ msgid "Show author selection" msgstr "Auteurkeuze tonen" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Uitgevers" @@ -776,7 +776,7 @@ msgid "Show publisher selection" msgstr "Uitgeverskeuze tonen" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Talen" @@ -800,7 +800,7 @@ msgstr "Bestandsformaten" msgid "Show file formats selection" msgstr "Bestandsformaten tonen" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "Gearchiveerde boeken" @@ -808,7 +808,7 @@ msgstr "Gearchiveerde boeken" msgid "Show archived books" msgstr "Gearchiveerde boeken tonen" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "Boekenlijst" @@ -940,189 +940,189 @@ msgstr "Er is een update beschikbaar. Klik op de knop hieronder om te updaten na msgid "Click on the button below to update to the latest stable version." msgstr "Klik op onderstaande knop om de laatste stabiele versie te installeren." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Verkennen (willekeurige boeken)" -#: cps/web.py:423 -msgid "Books" -msgstr "Boeken" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Populaire boeken (meest gedownload)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "Gedownloade boeken door %(user)s" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Oeps! Geselecteerd boek is niet beschikbaar. Bestand bestaat niet of is niet toegankelijk" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Auteur: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Uitgever: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Reeks: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Beoordeling: %(rating)s sterren" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Bestandsformaat: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Categorie: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Geavanceerd zoeken" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Zoeken" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Beoordelingen" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Alle bestandsformaten" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Taken" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Gepubliceerd na " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Gepubliceerd vóór " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Beoordeling <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Beoordeling >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Het boek is in de wachtrij geplaatst om te worden verstuurd aan %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Fout opgetreden bij het versturen van dit boek: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Stel je kindle-e-mailadres in..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-mailserver is niet geconfigureerd, neem contact op met de beheerder!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "registreren" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Dit e-mailadres mag niet worden gebruikt voor registratie" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Er is een bevestigings-e-mail verstuurd naar je e-mailadres." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Gebruikersnaam of e-mailadres is al in gebruik." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Kan de LDAP authenticatie niet activeren" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Inloggen mislukt: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Verkeerde gebruikersnaam of wachtwoord" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Een nieuw wachtwoord is verzonden naar je e-mailadres" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Geef een geldige gebruikersnaam op om je wachtwoord te herstellen" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Je bent ingelogd als: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's profiel" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profiel bijgewerkt" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Lees een boek" @@ -1693,7 +1693,7 @@ msgid "Location of Calibre Database" msgstr "Locatie van de Calibre-database" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2009,7 +2009,7 @@ msgstr "Aantal te tonen willekeurige boeken" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Aantal te tonen auteurs alvorens te verbergen (0=nooit verbergen)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Thema" @@ -2310,7 +2310,7 @@ msgid "Search Library" msgstr "Zoek in bibliotheek" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Instellingen" @@ -2470,99 +2470,99 @@ msgstr "Calibre-Web - e-boekcatalogus" msgid "Reflow text when sidebars are open." msgstr "Tekstindeling automatisch aanpassen als het zijpaneel geopend is." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Sneltoetsen" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Vorige pagina" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Volgende pagina" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Optimaal inpassen" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Aanpassen aan breedte" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Aanpassen aan hoogte" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Ware grootte" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Rechtsom draaien" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Linksom draaien" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Afbeelding omdraaien" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Licht" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Donker" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Schaal" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Beste" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Breedte" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Hoogte" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Ware grootte" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Draaien" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Omdraaien" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Horizontaal" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Verticaal" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Richting" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Links-naar-rechts" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Rechts-naar-links" diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index 0e3bc6d2..ab825d30 100644 --- a/cps/translations/pl/LC_MESSAGES/messages.po +++ b/cps/translations/pl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre Web - polski (POT: 2019-08-06 18:35)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-08-30 21:05+0200\n" "Last-Translator: Jerzy Piątek \n" "Language: pl\n" @@ -166,7 +166,7 @@ msgstr "Baza danych nie jest zapisywalna" msgid "Basic Configuration" msgstr "Konfiguracja podstawowa" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Proszę wypełnić wszystkie pola!" @@ -174,7 +174,7 @@ msgstr "Proszę wypełnić wszystkie pola!" msgid "Add new user" msgstr "Dodaj nowego użytkownika" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "E-mail nie pochodzi z prawidłowej domeny" @@ -200,16 +200,16 @@ msgstr "Nie można usunąć użytkownika. Brak na serwerze innego konta z prawam msgid "No admin user remaining, can't remove admin role" msgstr "Nie można odebrać praw administratora. Brak na serwerze innego konta z prawami administratora" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Znaleziono istniejące konto dla tego adresu e-mail." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Edytuj użytkownika %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Nazwa użytkownika jest już zajęta" @@ -254,11 +254,11 @@ msgstr "Nie znaleziono użytkownika" msgid "Password for user %(user)s reset" msgstr "Zrestartowano hasło użytkownika %(user)s" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..." @@ -357,8 +357,8 @@ msgstr "Plik książki w wybranym formacie został usunięty" msgid "Book Successfully Deleted" msgstr "Książka została usunięta" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Błąd podczas otwierania e-booka. Plik nie istnieje lub jest niedostępny" @@ -390,7 +390,7 @@ msgstr "Nie udało się utworzyć łącza %(path)s (Odmowa dostępu)." msgid "Failed to store file %(file)s." msgstr "Nie można zapisać pliku %(file)s." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "Błąd bazy danych: %(error)s." @@ -453,153 +453,153 @@ msgstr "Konfiguracja Google Drive nie została zakończona, spróbuj dezaktywowa msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Zwrotna domena nie jest zweryfikowana, proszę zweryfikowania domenę w konsoli deweloperskiej google" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "Nie znaleziono formatu %(format)s dla id książki: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Nie znaleziono %(format)s na Google Drive: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nie znaleziono: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Wyślij do Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Ten e-mail został wysłany za pośrednictwem Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Testowy e-mail Calibre-Web" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Testowy e-mail" # ??? -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Zacznij korzystać z Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Rejestracja e-mail dla użytkownika: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Wyślij %(format)s do Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Konwertuj %(orig)s do %(format)s i wyślij do Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "E-mail: %(book)s" # ??? -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Żądany plik nie mógł zostać odczytany. Sprawdź uprawnienia?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Usuwanie książki %(id)s zakończyło się błędem: %(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "Usuwanie książki %(id)s, ścieżka książki jest niepoprawna: %(path)s" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Zmiana nazwy tytułu z: „%(src)s” na „%(dest)s” zakończyła się błędem: %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Zmiana nazwy pliku w ścieżce '%(src)s' na '%(dest)s' zakończyło się błędem: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Nie znaleziono pliku %(file)s na Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Nie znaleziono ścieżki do książki %(path)s na Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "Błąd przy pobieraniu okładki" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "Błędny format okładki" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Nie udało się utworzyć ścieżki dla okładki" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Plik okładki nie jest poprawnym plikiem obrazu lub nie mógł zostać zapisany" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Jako plik okładki dopuszczalne są jedynie pliki jpg/jpeg" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "Plik wykonywalny programu unrar nie znaleziony" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "Błąd przy wykonywaniu unrar" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Oczekiwanie" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Nieudane" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Rozpoczynanie" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Zakończone" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Ststus nieznany" @@ -607,7 +607,7 @@ msgstr "Ststus nieznany" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Aby uzyskać prawidłowy api_endpoint dla urządzenia Kobo, należy skorzystać z dostępu do calibre-web spoza localhost" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Konfiguracja Kobo" @@ -633,7 +633,7 @@ msgstr "Nie udało się zalogować do Google." msgid "Failed to fetch user info from Google." msgstr "Nie udało się pobrać informacji o użytkowniku z Google." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "zalogowałeś się jako: '%(nickname)s'" @@ -670,7 +670,7 @@ msgstr "Błąd GitHub Oauth, proszę spróbować później." msgid "Google Oauth error, please retry later." msgstr "Błąd Google Oauth, proszę spróbować później." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "logowanie" @@ -686,9 +686,9 @@ msgstr "Token wygasł" msgid "Success! Please return to your device" msgstr "Powodzenie! Wróć do swojego urządzenia" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Ostatnio dodane" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Książki" #: cps/render_template.py:41 msgid "Show recent books" @@ -710,7 +710,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Najwyżej ocenione" @@ -719,7 +719,7 @@ msgid "Show Top Rated Books" msgstr "Pokaż menu najwyżej ocenionych książek" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Przeczytane" @@ -728,7 +728,7 @@ msgid "Show read and unread" msgstr "Pokaż menu przeczytane i nieprzeczytane" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Nieprzeczytane" @@ -745,7 +745,7 @@ msgid "Show random books" msgstr "Pokaż menu losowych książek" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Kategorie" @@ -755,7 +755,7 @@ msgstr "Pokaż menu wyboru kategorii" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Cykle" @@ -773,7 +773,7 @@ msgid "Show author selection" msgstr "Pokaż menu wyboru autora" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Wydawcy" @@ -782,7 +782,7 @@ msgid "Show publisher selection" msgstr "Pokaż menu wyboru wydawcy" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Języki" @@ -806,7 +806,7 @@ msgstr "Formaty plików" msgid "Show file formats selection" msgstr "Pokaż menu formatu plików" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "Zarchiwizowane książki" @@ -814,7 +814,7 @@ msgstr "Zarchiwizowane książki" msgid "Show archived books" msgstr "Pokaż zarchiwizowane książki" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -946,189 +946,189 @@ msgstr "Dostępna jest nowa aktualizacja. Kliknij przycisk poniżej, aby zaktual msgid "Click on the button below to update to the latest stable version." msgstr "Kliknij przycisk poniżej, aby zaktualizować do najnowszej stabilnej wersji." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Odkrywaj (losowe książki)" -#: cps/web.py:423 -msgid "Books" -msgstr "Książki" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Najpopularniejsze książki (najczęściej pobierane)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Błąd otwierania e-booka. Plik nie istnieje lub jest niedostępny" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Autor: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Wydawca: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Cykl: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Ocena: %(rating)s gwiazdek" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Format pliku: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Język: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Niestandardowa kolumna No.%(column)d nie istnieje w bazie calibre" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Wyszukiwanie" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Szukaj" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Lista z ocenami" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Lista formatów" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Zadania" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Opublikowane po " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Opublikowane przed " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Ocena <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Ocena >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Książka została umieszczona w kolejce do wysłania do %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Najpierw skonfiguruj adres e-mail Kindle..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Serwer e-mail nie jest skonfigurowany, skontaktuj się z administratorem!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "rejestracja" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Twój e-mail nie może się zarejestrować" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Wiadomość e-mail z potwierdzeniem została wysłana na Twoje konto e-mail." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Ta nazwa użytkownika lub adres e-mail jest już używany." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Nie można aktywować uwierzytelniania LDAP" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Nie można zalogować: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Błędna nazwa użytkownika lub hasło" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Nowe hasło zostało wysłane na Twój adres e-mail" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Wprowadź prawidłową nazwę użytkownika, aby zresetować hasło" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Jesteś teraz zalogowany jako: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "Profil użytkownika %(name)s" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Zaktualizowano profil" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Czytaj książkę" @@ -1703,7 +1703,7 @@ msgid "Location of Calibre Database" msgstr "Lokalizacja bazy danych Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2020,7 +2020,7 @@ msgstr "Liczba losowych książek do pokazania" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Liczba autorów do pokazania przed ukryciem (0=wyłącza ukrywanie)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Motyw" @@ -2324,7 +2324,7 @@ msgid "Search Library" msgstr "Przeszukaj bibliotekę" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ustawienia" @@ -2487,99 +2487,99 @@ msgstr "Katalog e-booków Calibre-Web" msgid "Reflow text when sidebars are open." msgstr "Przepływ tekstu, gdy paski boczne są otwarte." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Skróty klawiaturowe" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Poprzednia strona" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Następna strona" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Skaluj do najlepszego" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Skaluj do szerokości" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Skaluj do wysokości" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Skaluj do wielkości oryginalnej" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Obróć w prawo" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Obróć w lewo" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Odwórć obraz" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Jasny" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Ciemny" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Skaluj" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Najlepszy" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Szerokość" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Wysokość" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Natywnie" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Obrót" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Odwróć" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Poziomo" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Pionowo" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Kierunek" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Od lewej do prawej" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Od prawej do lewej" diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index 948137c2..8c4140ae 100644 --- a/cps/translations/ru/LC_MESSAGES/messages.po +++ b/cps/translations/ru/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-04-29 01:20+0400\n" "Last-Translator: ZIZA\n" "Language: ru\n" @@ -165,7 +165,7 @@ msgstr "" msgid "Basic Configuration" msgstr "Настройки сервера" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Пожалуйста, заполните все поля!" @@ -173,7 +173,7 @@ msgstr "Пожалуйста, заполните все поля!" msgid "Add new user" msgstr "Добавить пользователя" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "E-mail не из существующей доменной зоны" @@ -199,16 +199,16 @@ msgstr "Это последний администратор, невозможн msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Этот адрес электронной почты уже зарегистрирован." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Изменить пользователя %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Это имя пользователя уже занято" @@ -252,11 +252,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "Пароль для пользователя %(user)s сброшен" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Неизвестная ошибка. Попробуйте позже." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Пожалуйста, сперва настройте параметры SMTP....." @@ -354,8 +354,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Ошибка при открытии eBook. Файл не существует или файл недоступен" @@ -387,7 +387,7 @@ msgstr "Ошибка при создании пути %(path)s (Доступ з msgid "Failed to store file %(file)s." msgstr "Не удалось сохранить файл %(file)s." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -450,151 +450,151 @@ msgstr "Настройка Google Drive не завершена, попробу msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Не удалось проверить домен обратного вызова, пожалуйста, выполните шаги для проверки домена в консоли разработчика Google." -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s форма не найден для книги с id: %(book)d" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s не найден на Google Drive: %(fn)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s не найден: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Отправить на Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Это электронное письмо было отправлено через Caliber-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Тестовый e-mail для Calibre-Web" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Тестовый e-mail" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Начать работу с Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Регистрационный e-mail для пользователя: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Отправить %(format)s в Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Преобразовать %(orig)s в %(format)s и отправить в Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "Эл. почта: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Запрашиваемый файл не может быть прочитан. Возможно у вас нет разрешения?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, 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:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Не удалось переименовать файл по пути '%(src)s' to '%(dest)s' из-за ошибки: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Файл %(file)s не найден на Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Путь книги %(path)s не найден на Google Drive" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Не удалось создать путь для обложки." -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Только файлы в формате jpg / jpeg поддерживаются как файл обложки" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Ожидание" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Неудачно" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Начало" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Завершено" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Неизвестный статус" @@ -602,7 +602,7 @@ msgstr "Неизвестный статус" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Пожалуйста, подключитесь к Calibre-Web не с локального хоста, чтобы получить действительный api_endpoint для устройства Kobo" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Настройка Kobo" @@ -627,7 +627,7 @@ msgstr "Не удалось войти в систему с помощью Googl msgid "Failed to fetch user info from Google." msgstr "Не удалось получить информацию о пользователе из Google." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "вы вошли как пользователь '%(nickname)s'" @@ -664,7 +664,7 @@ msgstr "Ошибка GitHub Oauth, пожалуйста попробуйте п msgid "Google Oauth error, please retry later." msgstr "Ошибка Google Oauth, пожалуйста попробуйте позже." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "войти" @@ -680,9 +680,9 @@ msgstr "Ключ просрочен" msgid "Success! Please return to your device" msgstr "Успешно! Пожалуйста, проверьте свое устройство" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Недавно Добавленные" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Книги" #: cps/render_template.py:41 msgid "Show recent books" @@ -704,7 +704,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Книги с наилучшим рейтингом" @@ -713,7 +713,7 @@ msgid "Show Top Rated Books" msgstr "Показывать книги с наивысшим рейтингом" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Прочитанные Книги" @@ -722,7 +722,7 @@ msgid "Show read and unread" msgstr "Показывать прочитанные и непрочитанные" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Непрочитанные Книги" @@ -739,7 +739,7 @@ msgid "Show random books" msgstr "Показывать случайные книги" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Категории" @@ -749,7 +749,7 @@ msgstr "Показывать выбор категории" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Серии" @@ -767,7 +767,7 @@ msgid "Show author selection" msgstr "Показывать выбор автора" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Издатели" @@ -776,7 +776,7 @@ msgid "Show publisher selection" msgstr "Показать выбор издателя" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Языки" @@ -800,7 +800,7 @@ msgstr "Форматы файлов" msgid "Show file formats selection" msgstr "Показать выбор форматов файлов" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -808,7 +808,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -940,189 +940,189 @@ msgstr "Новое обновление доступно. Нажмите на к msgid "Click on the button below to update to the latest stable version." msgstr "Нажмите на кнопку ниже для обновления до последней стабильной версии." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Обзор (Случайные Книги)" -#: cps/web.py:423 -msgid "Books" -msgstr "Книги" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Популярные книги (часто загружаемые)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Невозможно открыть книгу. Файл не существует или недоступен" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Автор: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Издатель: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Серии: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Оценка: %(rating)s звезды(а)" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Формат файла: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Категория: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Язык: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Расширенный поиск" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Поиск" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Список рейтингов" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Список форматов файлов" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Задания" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Опубликовано после " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Опубликовано до " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Рейтинг <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Рейтинг >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Книга успешно поставлена в очередь для отправки на %(kindlemail)s" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "При отправке этой книги произошла ошибка: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Пожалуйста, сначала настройте e-mail на вашем kindle..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Сервер электронной почты не настроен, обратитесь к администратору !" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "регистрация" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Ваш e-mail не подходит для регистрации" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Письмо с подтверждением отправлено вам на e-mail." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Этот никнейм или e-mail уже используются." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Не удается активировать LDAP аутентификацию" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Резервный вход в систему как: '%(nickname)s', LDAP-сервер недоступен или пользователь не известен" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "Не удалось войти: %(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Ошибка в имени пользователя или пароле" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Новый пароль был отправлен на ваш адрес электронной почты" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Пожалуйста, введите действительное имя пользователя для сброса пароля" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Вы вошли как: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "Профиль %(name)s's" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Профиль обновлён" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Читать Книгу" @@ -1693,7 +1693,7 @@ msgid "Location of Calibre Database" msgstr "Расположение базы данных Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2009,7 +2009,7 @@ msgstr "Количество отображаемых случайных кни msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Количество авторов для отображения перед скрытием (0 = отключить скрытие)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Тема" @@ -2310,7 +2310,7 @@ msgid "Search Library" msgstr "Поиск в библиотеке" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Настройки" @@ -2470,99 +2470,99 @@ msgstr "Каталог электронных книг Caliber-Web" msgid "Reflow text when sidebars are open." msgstr "Обновить размещение текста при открытии боковой панели." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Горячие клавиши" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Предыдущая страница" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Следующая страница" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Масштабировать до лучшего" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Масштабироваать по ширине" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Масштабировать по высоте" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Масштабировать до оригинала" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Повернуть Вправо" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Повернуть Влево" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Перевернуть изображение" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Светлая" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Темная" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Масштаб" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Лучшее" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Ширина" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Длина" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Оригинальный" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Повернуть" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Перевернуть" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Горизонтально" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Вертикально" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Направление" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Слева направо" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Справа налево" diff --git a/cps/translations/sv/LC_MESSAGES/messages.po b/cps/translations/sv/LC_MESSAGES/messages.po index 98808f94..75dd3f3c 100644 --- a/cps/translations/sv/LC_MESSAGES/messages.po +++ b/cps/translations/sv/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-03-14 09:30+0100\n" "Last-Translator: Jonatan Nyberg \n" "Language: sv\n" @@ -164,7 +164,7 @@ msgstr "" msgid "Basic Configuration" msgstr "Grundläggande konfiguration" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Fyll i alla fält!" @@ -172,7 +172,7 @@ msgstr "Fyll i alla fält!" msgid "Add new user" msgstr "Lägg till ny användare" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "E-posten är inte från giltig domän" @@ -198,16 +198,16 @@ msgstr "Ingen adminstratörsanvändare kvar, kan inte ta bort användaren" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Hittade ett befintligt konto för den här e-postadressen." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Redigera användaren %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Detta användarnamn är redan taget" @@ -251,11 +251,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "Lösenord för användaren %(user)s återställd" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Ett okänt fel uppstod. Försök igen senare." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Konfigurera SMTP-postinställningarna först..." @@ -353,8 +353,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 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" @@ -386,7 +386,7 @@ msgstr "Det gick inte att skapa sökväg %(path)s (behörighet nekad)." msgid "Failed to store file %(file)s." msgstr "Det gick inte att lagra filen %(file)s." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -449,151 +449,151 @@ msgstr "Installationen av Google Drive är inte klar, försök att inaktivera oc 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:79 +#: cps/helper.py:80 #, 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:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, 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:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s hittades inte: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Skicka till Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Detta e-postmeddelande har skickats via Calibre-Web." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web test e-post" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Test e-post" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Kom igång med Calibre-Web" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Registrera e-post för användare: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "Skicka %(format)s till Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Konvertera %(orig)s till %(format)s och skicka till Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "E-post: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 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:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, 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:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Byt namn på fil i sökvägen '%(src)s' till '%(dest)s' misslyckades med fel: %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Filen %(file)s hittades inte på Google Drive" -#: cps/helper.py:479 +#: cps/helper.py:480 #, 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:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "Det gick inte att skapa sökväg för omslag" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Endast jpg/jpeg-filer stöds som omslagsfil" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Väntar" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Misslyckades" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Startad" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Klar" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Okänd status" @@ -601,7 +601,7 @@ msgstr "Okänd status" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Vänligen få tillgång till calibre-web från icke localhost för att få giltig api_endpoint för Kobo-enhet" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Kobo-installation" @@ -626,7 +626,7 @@ msgstr "Det gick inte att logga in med Google." msgid "Failed to fetch user info from Google." msgstr "Det gick inte att hämta användarinformation från Google." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "du är nu inloggad som: \"%(nickname)s\"" @@ -663,7 +663,7 @@ msgstr "GitHub Oauth-fel, försök igen senare." msgid "Google Oauth error, please retry later." msgstr "Google Oauth-fel, försök igen senare." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "logga in" @@ -679,9 +679,9 @@ msgstr "Token har löpt ut" msgid "Success! Please return to your device" msgstr "Lyckades! Vänligen återvänd till din enhet" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Nyligen tillagda" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "Böcker" #: cps/render_template.py:41 msgid "Show recent books" @@ -703,7 +703,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Bäst rankade böcker" @@ -712,7 +712,7 @@ msgid "Show Top Rated Books" msgstr "Visa böcker med bästa betyg" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Lästa böcker" @@ -721,7 +721,7 @@ msgid "Show read and unread" msgstr "Visa lästa och olästa" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Olästa böcker" @@ -738,7 +738,7 @@ msgid "Show random books" msgstr "Visa slumpmässiga böcker" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Kategorier" @@ -748,7 +748,7 @@ msgstr "Visa kategorival" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Serier" @@ -766,7 +766,7 @@ msgid "Show author selection" msgstr "Visa författarval" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Förlag" @@ -775,7 +775,7 @@ msgid "Show publisher selection" msgstr "Visa urval av förlag" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Språk" @@ -799,7 +799,7 @@ msgstr "Filformat" msgid "Show file formats selection" msgstr "Visa val av filformat" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -807,7 +807,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -939,189 +939,189 @@ msgstr "En ny uppdatering är tillgänglig. Klicka på knappen nedan för att up msgid "Click on the button below to update to the latest stable version." msgstr "Klicka på knappen nedan för att uppdatera till den senaste stabila versionen." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Upptäck (slumpmässiga böcker)" -#: cps/web.py:423 -msgid "Books" -msgstr "Böcker" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Heta böcker (mest hämtade)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Hoppsan! Vald boktitel är inte tillgänglig. Filen finns inte eller är inte tillgänglig" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Författare: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Förlag: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Serier: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Betyg: %(rating)s stars" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Filformat: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Kategori: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Språk: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Avancerad sökning" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Sök" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Betygslista" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Lista över filformat" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Uppgifter" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Publicerad efter " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Publicerad före " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Betyg <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Betyg >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, 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:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Det gick inte att skicka den här boken: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Konfigurera din kindle-e-postadress först..." -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-postservern är inte konfigurerad, kontakta din administratör!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "registrera" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "Din e-post är inte tillåten att registrera" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Bekräftelsemail skickades till ditt e-postkonto." -#: cps/web.py:1308 +#: cps/web.py:1318 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:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "Det går inte att aktivera LDAP-autentisering" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Fel användarnamn eller lösenord" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Nytt lösenord skickades till din e-postadress" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Ange giltigt användarnamn för att återställa lösenordet" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Du är nu inloggad som: \"%(nickname)s\"" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)ss profil" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profilen uppdaterad" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Läs en bok" @@ -1692,7 +1692,7 @@ msgid "Location of Calibre Database" msgstr "Plats för Calibre-databasen" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2008,7 +2008,7 @@ msgstr "Antal slumpmässiga böcker att visa" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "Antal författare att visa innan de döljs (0 = inaktivera dölja)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Tema" @@ -2309,7 +2309,7 @@ msgid "Search Library" msgstr "Sök i bibliotek" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Inställningar" @@ -2469,99 +2469,99 @@ msgstr "Calibre-Web e-bokkatalog" msgid "Reflow text when sidebars are open." msgstr "Fyll i texten igen när sidofält är öppna." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Kortkommandon" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Föregående sida" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Nästa sida" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "Skala till bäst" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Skala till bredd" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Skala till höjd" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Skala till ursprunglig" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Rotera åt höger" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Rotera åt vänster" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Vänd bilden" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Ljust" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Mörkt" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Skala" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "Bäst" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Bredd" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Höjd" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Ursprunglig" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Rotera" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Vänd" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Horisontell" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Vertikal" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Riktning" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Vänster till höger" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Höger till vänster" diff --git a/cps/translations/tr/LC_MESSAGES/messages.po b/cps/translations/tr/LC_MESSAGES/messages.po index 98e661f5..67f0c5b9 100644 --- a/cps/translations/tr/LC_MESSAGES/messages.po +++ b/cps/translations/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-04-23 22:47+0300\n" "Last-Translator: iz \n" "Language: tr\n" @@ -164,7 +164,7 @@ msgstr "" msgid "Basic Configuration" msgstr "Temel Ayarlar" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Lütfen tüm alanları doldurun!" @@ -172,7 +172,7 @@ msgstr "Lütfen tüm alanları doldurun!" msgid "Add new user" msgstr "Yeni kullanıcı ekle" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "E-posta izin verilen bir servisten değil" @@ -198,16 +198,16 @@ msgstr "Başka yönetici kullanıcı olmadığından silinemedi" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "Bu e-posta adresi için bir hesap mevcut." -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "%(nick)s kullanıcısını düzenle" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "Bu kullanıcı adı zaten alındı" @@ -251,11 +251,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "%(user)s kullanıcısının şifresi sıfırlandı" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "Bilinmeyen bir hata oluştu. Lütfen daha sonra tekrar deneyiniz." -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Lütfen önce SMTP e-posta ayarlarını ayarlayın..." @@ -353,8 +353,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "eKitap açılırken hata oluştu. Dosya mevcut değil veya erişilemiyor" @@ -386,7 +386,7 @@ msgstr "%(path)s dizini oluşturulamadı. (İzin reddedildi)" msgid "Failed to store file %(file)s." msgstr "%(file)s dosyası kaydedilemedi." -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -449,151 +449,151 @@ msgstr "Google Drive kurulumu tamamlanmadı, Google Drive'ı devre dışı bıra msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Geri yönlendirme alanı (callback domain) doğrulanamadı, lütfen Google geliştirici konsolunda alan adını doğrulamak için gerekli adımları izleyin." -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(book)d nolu kitap için %(format)s biçimi bulunamadı" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(fn)s eKitabı için %(format)s biçimi Google Drive'da bulunamadı" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s bulunamadı: %(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Kindle'a gönder" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "Bu e-Posta Calibre-Web ile gönderilmiştir." -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web deneme e-Postası" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "Deneme e-Postası" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "Calibre-Web'i Kullanmaya Başlayın" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Kullanıcı Kayıt e-Postası: %(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "%(format)s biçimlerini Kindle'a gönder" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s'dan %(format)s biçimine çevir ve Kindle'a gönder" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "e-Posta: %(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "İstenilen dosya okunamadı. Yanlış izinlerden kaynaklanabilir?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kitap adını değiştirme sırasında hata oluştu ('%(src)s' → '%(dest)s'): %(error)s" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Dosya adını değiştirme sırasında hata oluştu ('%(src)s' → '%(dest)s'): %(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "%(file)s dosyası Google Drive'da bulunamadı" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "eKitap yolu %(path)s Google Drive'da bulunamadı" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "Bekleniyor" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "Başarısız" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "Başladı" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "Bitti" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "Bilinmeyen Durum" @@ -601,7 +601,7 @@ msgstr "Bilinmeyen Durum" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "" @@ -626,7 +626,7 @@ msgstr "Google ile giriş yapılamadı." msgid "Failed to fetch user info from Google." msgstr "Google'dan kullanıcı bilgileri alınamadı." -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "giriş yaptınız: '%(nickname)s'" @@ -663,7 +663,7 @@ msgstr "GitHub Oauth hatası, lütfen tekrar deneyin." msgid "Google Oauth error, please retry later." msgstr "Google Oauth hatası, lütfen tekrar deneyin." -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "giriş" @@ -679,9 +679,9 @@ msgstr "Token süresi doldu" msgid "Success! Please return to your device" msgstr "Başarılı! Lütfen cihazınıza dönün" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Yeni" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "eKitaplar" #: cps/render_template.py:41 msgid "Show recent books" @@ -703,7 +703,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "" @@ -712,7 +712,7 @@ msgid "Show Top Rated Books" msgstr "" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Okunanlar" @@ -721,7 +721,7 @@ msgid "Show read and unread" msgstr "Okunan ve okunmayanları göster" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Okunmamışlar" @@ -738,7 +738,7 @@ msgid "Show random books" msgstr "Rastgele eKitap göster" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Kategoriler" @@ -748,7 +748,7 @@ msgstr "Kategori seçimini göster" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Seriler" @@ -766,7 +766,7 @@ msgid "Show author selection" msgstr "Yazar seçimini göster" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "Yayıncılar" @@ -775,7 +775,7 @@ msgid "Show publisher selection" msgstr "Yayıncı seçimini göster" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Diller" @@ -799,7 +799,7 @@ msgstr "Biçimler" msgid "Show file formats selection" msgstr "Dosya biçimi seçimini göster" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -807,7 +807,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -939,189 +939,189 @@ msgstr "Yeni bir güncelleme mevcut. Son sürüme güncellemek için aşağıdak msgid "Click on the button below to update to the latest stable version." msgstr "Son kararlı sürüme güncellemek için aşağıdaki düğmeye tıklayın." -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Keşfet (Rastgele)" -#: cps/web.py:423 -msgid "Books" -msgstr "eKitaplar" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "Yazar: %(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "Yayınevi: %(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Seri: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "Değerlendirme: %(rating)s yıldız" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "Biçim: %(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Kategori: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Dil: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Gelişmiş Arama" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Ara" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "Değerlendirme listesi" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "Biçim listesi" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "Görevler" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "Yayınlanma (sonra)" -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Yayınlanma (önce)" -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "Değerlendirme <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "Değerlendirme >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "%(kindlemail)s'a gönderilmek üzere başarıyla sıraya alındı" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-Posta sunucusu ayarlanmadı, lütfen yöneticinizle iletişime geçin!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "kaydol" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "E-posta adresinizle kaydolunmasına izin verilmiyor" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Onay e-Postası hesabınıza gönderildi." -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "Kullanıcı adı ya da e-Posta adresi zaten kullanımda." -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "LDAP Kimlik Doğrulaması etkinleştirilemiyor" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Yanlış Kullanıcı adı ya da Şifre" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "Yeni şifre e-Posta adresinize gönderildi" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "Şifrenizi sıfırlayabilmek için lütfen geçerli bir kullanıcı adı giriniz" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Giriş yaptınız: '%(nickname)s'" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s Profili" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Profil güncellendi" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Kitap Oku" @@ -1692,7 +1692,7 @@ msgid "Location of Calibre Database" msgstr "" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2008,7 +2008,7 @@ msgstr "" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Tema" @@ -2309,7 +2309,7 @@ msgid "Search Library" msgstr "" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ayarlar" @@ -2469,99 +2469,99 @@ msgstr "" msgid "Reflow text when sidebars are open." msgstr "Kenar çubukları açıkken metni kaydır" -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "Klavye Kısayolları" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "Önceki Sayfa" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "Sonraki Sayfa" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "En İyiye Ölçeklendir" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "Genişliğe Ölçeklendir" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "Yüksekliğe Ölçeklendir" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "Asıla göre ölçeklendir" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "Sağa çevir" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "Sola çevir" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "Resmi döndir" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "Açık" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "Koyu" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "Ölçeklendir" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "En İyi" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "Genişlik" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "Yükseklik" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "Asıl" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "Çevir" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "Döndür" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "Yatay" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "Dikey" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "Yön" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "Soldan Sağa" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "Sağdan Sola" diff --git a/cps/translations/uk/LC_MESSAGES/messages.po b/cps/translations/uk/LC_MESSAGES/messages.po index 8b0a1718..10304b19 100644 --- a/cps/translations/uk/LC_MESSAGES/messages.po +++ b/cps/translations/uk/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n" "Last-Translator: ABIS Team \n" "Language: uk\n" @@ -163,7 +163,7 @@ msgstr "" msgid "Basic Configuration" msgstr "Настройки сервера" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "Будь-ласка, заповніть всі поля!" @@ -171,7 +171,7 @@ msgstr "Будь-ласка, заповніть всі поля!" msgid "Add new user" msgstr "Додати користувача" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "" @@ -197,16 +197,16 @@ msgstr "" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "" -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "Змінити користувача %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "" @@ -250,11 +250,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "Будь-ласка, спочатку сконфігуруйте параметри SMTP" @@ -352,8 +352,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Сталась помилка при відкриванні eBook. Файл не існує або відсутній доступ до нього" @@ -385,7 +385,7 @@ msgstr "" msgid "Failed to store file %(file)s." msgstr "" -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -448,151 +448,151 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Домен зворотнього зв'язку не підтверджено. Виконайте дії для підтвердження домену, будь-ласка" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Відправити на Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "" @@ -600,7 +600,7 @@ msgstr "" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "" @@ -625,7 +625,7 @@ msgstr "" msgid "Failed to fetch user info from Google." msgstr "" -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Ви увійшли як користувач: '%(nickname)s'" @@ -662,7 +662,7 @@ msgstr "" msgid "Google Oauth error, please retry later." msgstr "" -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "увійти" @@ -678,9 +678,9 @@ msgstr "Час дії токено вичерпано" msgid "Success! Please return to your device" msgstr "Вдалося! Будь-ласка, поверніться до вашого пристрою" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "Останні додані" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "" #: cps/render_template.py:41 msgid "Show recent books" @@ -702,7 +702,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "Книги з найкращим рейтингом" @@ -711,7 +711,7 @@ msgid "Show Top Rated Books" msgstr "Показувати книги з найвищим рейтингом" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "Прочитані книги" @@ -720,7 +720,7 @@ msgid "Show read and unread" msgstr "Показувати прочитані та непрочитані книги" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "Непрочитані книги" @@ -737,7 +737,7 @@ msgid "Show random books" msgstr "Показувати випадкові книги" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "Категорії" @@ -747,7 +747,7 @@ msgstr "Показувати вибір категорії" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "Серії" @@ -765,7 +765,7 @@ msgid "Show author selection" msgstr "Показувати вибір автора" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "" @@ -774,7 +774,7 @@ msgid "Show publisher selection" msgstr "" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "Мови" @@ -798,7 +798,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -938,189 +938,189 @@ msgstr "" msgid "Click on the button below to update to the latest stable version." msgstr "" -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "Огляд (випадкові книги)" -#: cps/web.py:423 -msgid "Books" -msgstr "" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "Популярні книги (найбільш завантажувані)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Неможливо відкрити книгу. Файл не існує або немає доступу." -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "Серії: %(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "Категорія: %(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "Мова: %(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "Розширений пошук" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "Пошук" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "" -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "Опубліковано до" -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Помилка при відправці книги: %(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "зареєструватись" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "" -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "Помилка в імені користувача або паролі" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "Профіль %(name)s" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "Профіль оновлено" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "Читати книгу" @@ -1691,7 +1691,7 @@ msgid "Location of Calibre Database" msgstr "Розташування БД Calibre" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2007,7 +2007,7 @@ msgstr "Кількість показаних випадкових книг" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "Тема" @@ -2308,7 +2308,7 @@ msgid "Search Library" msgstr "" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Налаштування" @@ -2468,99 +2468,99 @@ msgstr "" msgid "Reflow text when sidebars are open." msgstr "Переформатувати текст, коли відкриті бічні панелі." -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 6e697745..7bab1623 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: 2020-09-27 22:18+0800\n" "Last-Translator: dalin \n" "Language: zh_CN\n" @@ -164,7 +164,7 @@ msgstr "数据库不可写入" msgid "Basic Configuration" msgstr "基本配置" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "请填写所有字段!" @@ -172,7 +172,7 @@ msgstr "请填写所有字段!" msgid "Add new user" msgstr "添加新用户" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "邮箱不在有效域中" @@ -198,16 +198,16 @@ msgstr "管理员账户不存在,无法删除用户" msgid "No admin user remaining, can't remove admin role" msgstr "理员账户不存在,无法删除管理员角色" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "此邮箱的账号已经存在。" -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "此用户名已被使用" @@ -251,11 +251,11 @@ msgstr "找不到用户" msgid "Password for user %(user)s reset" msgstr "用户 %(user)s 的密码已重置" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "发生一个未知错误,请稍后再试。" -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱设置..." @@ -353,8 +353,8 @@ msgstr "书籍格式已成功删除" msgid "Book Successfully Deleted" msgstr "书籍已成功删除" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "打开电子书出错。文件不存在或不可访问" @@ -386,7 +386,7 @@ msgstr "创建路径 %(path)s 失败(权限拒绝)。" msgid "Failed to store file %(file)s." msgstr "保存文件 %(file)s 失败。" -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "数据库错误:%(error)s。" @@ -449,151 +449,151 @@ msgstr "Google Drive 设置未完成,请尝试停用并再次激活Google云 msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "回调域名尚未被校验,请在google开发者控制台按步骤校验域名" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "找不到id为 %(book)d 的书籍的 %(format)s 格式" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Google Drive %(fn)s 上找不到 %(format)s" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "找不到 %(format)s:%(fn)s" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "发送到Kindle" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "此邮件已经通过Calibre-Web发送。" -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web测试邮件" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "测试邮件" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "开启Calibre-Web之旅" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "用户注册电子邮件:%(name)s" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "发送 %(format)s 到Kindle" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "转换 %(orig)s 到 %(format)s 并发送到Kindle" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "邮件:%(book)s" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "无法读取请求的文件。可能有错误的权限设置?" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "删除书的文件夹%(id)s失败,路径有子文件夹:%(path)s" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "删除书籍 %(id)s失败:%(message)s" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "删除书籍 %(id)s失败,书籍路径无效:%(path)s" -#: cps/helper.py:400 +#: cps/helper.py:401 #, 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:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "从“%(src)s”重命名为“%(dest)s”失败,出错信息:%(error)s" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Google Drive上找不到文件 %(file)s" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Google Drive上找不到书籍路径 %(path)s" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "下载封面时出错" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "封面格式出错" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "创建封面路径失败" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "封面文件不是有效的图片文件,或者无法存储" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "仅将jpg、jpeg文件作为封面文件" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "找不到Unrar执行文件" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "执行UnRar时出错" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "等待中" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "失败" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "已开始" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "已完成" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "未知状态" @@ -601,7 +601,7 @@ msgstr "未知状态" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "请不要使用localhost访问Calibre-Web,以便Kobo设备能获取有效的api_endpoint" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "Kobo 设置" @@ -626,7 +626,7 @@ msgstr "使用Google登录失败。" msgid "Failed to fetch user info from Google." msgstr "从Google获取用户信息失败。" -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”身份登录" @@ -663,7 +663,7 @@ msgstr "GitHub Oauth 错误,请重试。" msgid "Google Oauth error, please retry later." msgstr "Google Oauth 错误,请重试。" -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "登录" @@ -679,9 +679,9 @@ msgstr "Token已过期" msgid "Success! Please return to your device" msgstr "成功!请返回您的设备" -#: cps/render_template.py:39 -msgid "Recently Added" -msgstr "最近添加" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" +msgstr "书籍" #: cps/render_template.py:41 msgid "Show recent books" @@ -703,7 +703,7 @@ msgstr "下载历史" msgid "Show Downloaded Books" msgstr "显示下载过的书籍" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "最高评分书籍" @@ -712,7 +712,7 @@ msgid "Show Top Rated Books" msgstr "显示最高评分书籍" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "已读书籍" @@ -721,7 +721,7 @@ msgid "Show read and unread" msgstr "显示阅读状态" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "未读书籍" @@ -738,7 +738,7 @@ msgid "Show random books" msgstr "显示随机书籍" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "分类" @@ -748,7 +748,7 @@ msgstr "显示分类选择" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "丛书" @@ -766,7 +766,7 @@ msgid "Show author selection" msgstr "显示作者选择" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "出版社" @@ -775,7 +775,7 @@ msgid "Show publisher selection" msgstr "显示出版社选择" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "语言" @@ -799,7 +799,7 @@ msgstr "文件格式" msgid "Show file formats selection" msgstr "显示文件格式选择" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "归档书籍" @@ -807,7 +807,7 @@ msgstr "归档书籍" msgid "Show archived books" msgstr "显示归档书籍" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "书籍列表" @@ -939,189 +939,189 @@ msgstr "有新的更新。单击下面的按钮以更新到版本: %(version)s" msgid "Click on the button below to update to the latest stable version." msgstr "点击下面按钮更新到最新稳定版本。" -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "发现(随机书籍)" -#: cps/web.py:423 -msgid "Books" -msgstr "书籍" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "热门书籍(最多下载)" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "%(user)s 下载过的书籍" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "糟糕!选择书名无法打开。文件不存在或者文件不可访问" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "作者:%(name)s" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "出版社:%(name)s" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "丛书:%(serie)s" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "评分:%(rating)s 星" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "文件格式:%(format)s" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "分类:%(name)s" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "语言:%(name)s" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "自定义列号:%(column)d在Calibre数据库中不存在" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "高级搜索" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "搜索" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "评分列表" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "文件格式列表" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "任务列表" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "出版时间晚于 " -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "出版时间早于 " -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "评分 <= %(rating)s" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "评分 >= %(rating)s" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "书籍已经成功加入 %(kindlemail)s 的发送队列" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "糟糕!发送这本书籍的时候出现错误:%(res)s" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "请先配置您的kindle邮箱。" -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "邮件服务未配置,请联系网站管理员!" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "注册" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "您的电子邮件不允许注册" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "确认邮件已经发送到您的邮箱。" -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "这个用户名或者邮箱已被使用。" -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "无法激活LDAP认证" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "后备登录“%(nickname)s”:无法访问LDAP服务器,或用户未知" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "无法登录:%(message)s" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "用户名或密码错误" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "新密码已发送到您的邮箱" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "请输入有效的用户名进行密码重置" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”登录" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的用户配置" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "资料已更新" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "阅读一本书" @@ -1692,7 +1692,7 @@ msgid "Location of Calibre Database" msgstr "Calibre 数据库路径" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2008,7 +2008,7 @@ msgstr "随机书籍显示数量" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "主页中书籍作者的最大显示数量(0=不隐藏)" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "主题" @@ -2309,7 +2309,7 @@ msgid "Search Library" msgstr "搜索书库" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "设置" @@ -2469,99 +2469,99 @@ msgstr "Caliebre-Web电子书路径" msgid "Reflow text when sidebars are open." msgstr "打开侧栏时重排文本。" -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "快捷键" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "上一页" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "下一页" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "缩放到最佳" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "按宽度缩放" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "按高度缩放" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "缩放到原始大小" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "向右旋转" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "向左旋转" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "翻转图片" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "浅色" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "深色" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "缩放" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "最佳" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "宽度" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "高度" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "原始" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "旋转" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "翻转" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "水平" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "垂直" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "方向" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "从左到右" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "从右到左" diff --git a/messages.pot b/messages.pot index 3c00d3d2..26aaca01 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: 2021-01-17 11:34+0100\n" +"POT-Creation-Date: 2021-02-02 18:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -163,7 +163,7 @@ msgstr "" msgid "Basic Configuration" msgstr "" -#: cps/admin.py:974 cps/web.py:1275 +#: cps/admin.py:974 cps/web.py:1279 msgid "Please fill out all fields!" msgstr "" @@ -171,7 +171,7 @@ msgstr "" msgid "Add new user" msgstr "" -#: cps/admin.py:986 cps/web.py:1439 +#: cps/admin.py:986 cps/web.py:1449 msgid "E-mail is not from valid domain" msgstr "" @@ -197,16 +197,16 @@ msgstr "" msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:1064 cps/web.py:1481 +#: cps/admin.py:1064 cps/web.py:1491 msgid "Found an existing account for this e-mail address." msgstr "" -#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1457 +#: cps/admin.py:1073 cps/admin.py:1087 cps/admin.py:1190 cps/web.py:1467 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/admin.py:1079 cps/web.py:1450 +#: cps/admin.py:1079 cps/web.py:1460 msgid "This username is already taken" msgstr "" @@ -250,11 +250,11 @@ msgstr "" msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1204 cps/web.py:1299 cps/web.py:1363 +#: cps/admin.py:1204 cps/web.py:1309 cps/web.py:1373 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1207 cps/web.py:1237 +#: cps/admin.py:1207 cps/web.py:1241 msgid "Please configure the SMTP mail settings first..." msgstr "" @@ -352,8 +352,8 @@ msgstr "" msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1509 cps/web.py:1542 -#: cps/web.py:1613 +#: cps/editbooks.py:316 cps/editbooks.py:626 cps/web.py:1519 cps/web.py:1552 +#: cps/web.py:1623 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "" @@ -385,7 +385,7 @@ msgstr "" msgid "Failed to store file %(file)s." msgstr "" -#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1486 +#: cps/editbooks.py:575 cps/editbooks.py:937 cps/web.py:1496 #, python-format msgid "Database error: %(error)s." msgstr "" @@ -448,151 +448,151 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:85 cps/tasks/convert.py:52 +#: cps/helper.py:86 cps/tasks/convert.py:52 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:90 +#: cps/helper.py:91 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41 +#: cps/helper.py:96 cps/helper.py:229 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "" -#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230 +#: cps/helper.py:97 cps/helper.py:113 cps/helper.py:231 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:110 +#: cps/helper.py:111 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:111 +#: cps/helper.py:112 msgid "Test e-mail" msgstr "" -#: cps/helper.py:128 +#: cps/helper.py:129 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:133 +#: cps/helper.py:134 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170 -#: cps/helper.py:174 cps/helper.py:178 +#: cps/helper.py:154 cps/helper.py:158 cps/helper.py:162 cps/helper.py:171 +#: cps/helper.py:175 cps/helper.py:179 #, python-format msgid "Send %(format)s to Kindle" msgstr "" -#: cps/helper.py:183 cps/helper.py:189 +#: cps/helper.py:184 cps/helper.py:190 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "" -#: cps/helper.py:230 +#: cps/helper.py:231 #, python-format msgid "E-mail: %(book)s" msgstr "" -#: cps/helper.py:232 +#: cps/helper.py:233 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "" -#: cps/helper.py:329 +#: cps/helper.py:330 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:335 +#: cps/helper.py:336 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:345 +#: cps/helper.py:346 #, python-format msgid "Deleting book %(id)s, book path not valid: %(path)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:401 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:415 +#: cps/helper.py:416 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458 +#: cps/helper.py:441 cps/helper.py:451 cps/helper.py:459 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:479 +#: cps/helper.py:480 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "" -#: cps/helper.py:587 +#: cps/helper.py:588 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:590 +#: cps/helper.py:591 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:604 +#: cps/helper.py:605 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:609 +#: cps/helper.py:610 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:620 +#: cps/helper.py:621 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:633 +#: cps/helper.py:634 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:684 +#: cps/helper.py:685 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:698 +#: cps/helper.py:699 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:747 +#: cps/helper.py:748 msgid "Waiting" msgstr "" -#: cps/helper.py:749 +#: cps/helper.py:750 msgid "Failed" msgstr "" -#: cps/helper.py:751 +#: cps/helper.py:752 msgid "Started" msgstr "" -#: cps/helper.py:753 +#: cps/helper.py:754 msgid "Finished" msgstr "" -#: cps/helper.py:755 +#: cps/helper.py:756 msgid "Unknown Status" msgstr "" @@ -600,7 +600,7 @@ msgstr "" msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:133 cps/kobo_auth.py:153 +#: cps/kobo_auth.py:133 cps/kobo_auth.py:161 msgid "Kobo Setup" msgstr "" @@ -625,7 +625,7 @@ msgstr "" msgid "Failed to fetch user info from Google." msgstr "" -#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1335 +#: cps/oauth_bb.py:213 cps/remotelogin.py:133 cps/web.py:1345 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "" @@ -662,7 +662,7 @@ msgstr "" msgid "Google Oauth error, please retry later." msgstr "" -#: cps/remotelogin.py:65 cps/web.py:1382 +#: cps/remotelogin.py:65 cps/web.py:1392 msgid "login" msgstr "" @@ -678,8 +678,8 @@ msgstr "" msgid "Success! Please return to your device" msgstr "" -#: cps/render_template.py:39 -msgid "Recently Added" +#: cps/render_template.py:39 cps/web.py:424 +msgid "Books" msgstr "" #: cps/render_template.py:41 @@ -702,7 +702,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:376 +#: cps/render_template.py:50 cps/templates/index.xml:24 cps/web.py:377 msgid "Top Rated Books" msgstr "" @@ -711,7 +711,7 @@ msgid "Show Top Rated Books" msgstr "" #: cps/render_template.py:53 cps/templates/index.xml:46 -#: cps/templates/index.xml:50 cps/web.py:636 +#: cps/templates/index.xml:50 cps/web.py:637 msgid "Read Books" msgstr "" @@ -720,7 +720,7 @@ msgid "Show read and unread" msgstr "" #: cps/render_template.py:57 cps/templates/index.xml:53 -#: cps/templates/index.xml:57 cps/web.py:639 +#: cps/templates/index.xml:57 cps/web.py:640 msgid "Unread Books" msgstr "" @@ -737,7 +737,7 @@ msgid "Show random books" msgstr "" #: cps/render_template.py:63 cps/templates/book_table.html:50 -#: cps/templates/index.xml:75 cps/web.py:941 +#: cps/templates/index.xml:75 cps/web.py:942 msgid "Categories" msgstr "" @@ -747,7 +747,7 @@ msgstr "" #: cps/render_template.py:66 cps/templates/book_edit.html:84 #: cps/templates/book_table.html:51 cps/templates/index.xml:82 -#: cps/templates/search_form.html:62 cps/web.py:845 cps/web.py:855 +#: cps/templates/search_form.html:62 cps/web.py:846 cps/web.py:856 msgid "Series" msgstr "" @@ -765,7 +765,7 @@ msgid "Show author selection" msgstr "" #: cps/render_template.py:73 cps/templates/book_table.html:55 -#: cps/templates/index.xml:68 cps/web.py:824 +#: cps/templates/index.xml:68 cps/web.py:825 msgid "Publishers" msgstr "" @@ -774,7 +774,7 @@ msgid "Show publisher selection" msgstr "" #: cps/render_template.py:76 cps/templates/book_table.html:53 -#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:920 +#: cps/templates/index.xml:89 cps/templates/search_form.html:81 cps/web.py:921 msgid "Languages" msgstr "" @@ -798,7 +798,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:87 cps/web.py:663 +#: cps/render_template.py:87 cps/web.py:664 msgid "Archived Books" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:91 cps/web.py:734 +#: cps/render_template.py:91 cps/web.py:735 msgid "Books List" msgstr "" @@ -938,189 +938,189 @@ msgstr "" msgid "Click on the button below to update to the latest stable version." msgstr "" -#: cps/templates/index.html:5 cps/web.py:384 +#: cps/templates/index.html:5 cps/web.py:385 msgid "Discover (Random Books)" msgstr "" -#: cps/web.py:423 -msgid "Books" -msgstr "" - -#: cps/web.py:448 +#: cps/web.py:449 msgid "Hot Books (Most Downloaded)" msgstr "" -#: cps/web.py:483 +#: cps/web.py:484 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:497 +#: cps/web.py:498 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/web.py:511 +#: cps/web.py:512 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:525 +#: cps/web.py:526 #, python-format msgid "Publisher: %(name)s" msgstr "" -#: cps/web.py:538 +#: cps/web.py:539 #, python-format msgid "Series: %(serie)s" msgstr "" -#: cps/web.py:551 +#: cps/web.py:552 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:564 +#: cps/web.py:565 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:578 +#: cps/web.py:579 #, python-format msgid "Category: %(name)s" msgstr "" -#: cps/web.py:597 +#: cps/web.py:598 #, python-format msgid "Language: %(name)s" msgstr "" -#: cps/web.py:627 +#: cps/web.py:628 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:694 cps/web.py:1168 +#: cps/templates/layout.html:56 cps/web.py:695 cps/web.py:1169 msgid "Advanced Search" msgstr "" #: cps/templates/book_edit.html:214 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:706 cps/web.py:978 +#: cps/templates/search_form.html:175 cps/web.py:707 cps/web.py:979 msgid "Search" msgstr "" -#: cps/web.py:873 +#: cps/web.py:874 msgid "Ratings list" msgstr "" -#: cps/web.py:892 +#: cps/web.py:893 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:955 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:956 msgid "Tasks" msgstr "" -#: cps/web.py:1041 +#: cps/web.py:1042 msgid "Published after " msgstr "" -#: cps/web.py:1048 +#: cps/web.py:1049 msgid "Published before " msgstr "" -#: cps/web.py:1067 +#: cps/web.py:1068 #, python-format msgid "Rating <= %(rating)s" msgstr "" -#: cps/web.py:1069 +#: cps/web.py:1070 #, python-format msgid "Rating >= %(rating)s" msgstr "" -#: cps/web.py:1071 +#: cps/web.py:1072 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1242 +#: cps/web.py:1246 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "" -#: cps/web.py:1246 +#: cps/web.py:1250 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:1248 +#: cps/web.py:1252 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1265 +#: cps/web.py:1269 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/web.py:1266 cps/web.py:1276 cps/web.py:1300 cps/web.py:1304 -#: cps/web.py:1309 cps/web.py:1313 +#: cps/web.py:1270 cps/web.py:1280 cps/web.py:1287 cps/web.py:1310 +#: cps/web.py:1314 cps/web.py:1319 cps/web.py:1323 msgid "register" msgstr "" -#: cps/web.py:1302 +#: cps/web.py:1285 +msgid "Invalid e-mail address format" +msgstr "" + +#: cps/web.py:1312 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1305 +#: cps/web.py:1315 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1308 +#: cps/web.py:1318 msgid "This username or e-mail address is already in use." msgstr "" -#: cps/web.py:1325 +#: cps/web.py:1335 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1342 +#: cps/web.py:1352 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1348 +#: cps/web.py:1358 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1352 cps/web.py:1376 +#: cps/web.py:1362 cps/web.py:1386 msgid "Wrong Username or Password" msgstr "" -#: cps/web.py:1359 +#: cps/web.py:1369 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1365 +#: cps/web.py:1375 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1371 +#: cps/web.py:1381 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1441 cps/web.py:1494 +#: cps/web.py:1451 cps/web.py:1504 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:1477 +#: cps/web.py:1487 msgid "Profile updated" msgstr "" -#: cps/web.py:1521 cps/web.py:1524 cps/web.py:1527 cps/web.py:1534 -#: cps/web.py:1539 +#: cps/web.py:1531 cps/web.py:1534 cps/web.py:1537 cps/web.py:1544 +#: cps/web.py:1549 msgid "Read a Book" msgstr "" @@ -1691,7 +1691,7 @@ msgid "Location of Calibre Database" msgstr "" #: cps/templates/config_edit.html:29 -msgid "To activate serverside filepicker start Calibre-Web with -f optionn" +msgid "To activate serverside filepicker start Calibre-Web with -f option" msgstr "" #: cps/templates/config_edit.html:35 @@ -2007,7 +2007,7 @@ msgstr "" msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" msgstr "" -#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117 +#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:113 msgid "Theme" msgstr "" @@ -2308,7 +2308,7 @@ msgid "Search Library" msgstr "" #: cps/templates/layout.html:77 cps/templates/read.html:71 -#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "" @@ -2468,99 +2468,99 @@ msgstr "" msgid "Reflow text when sidebars are open." msgstr "" -#: cps/templates/readcbr.html:93 +#: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" msgstr "" -#: cps/templates/readcbr.html:96 +#: cps/templates/readcbr.html:92 msgid "Previous Page" msgstr "" -#: cps/templates/readcbr.html:97 +#: cps/templates/readcbr.html:93 msgid "Next Page" msgstr "" -#: cps/templates/readcbr.html:98 +#: cps/templates/readcbr.html:94 msgid "Scale to Best" msgstr "" -#: cps/templates/readcbr.html:99 +#: cps/templates/readcbr.html:95 msgid "Scale to Width" msgstr "" -#: cps/templates/readcbr.html:100 +#: cps/templates/readcbr.html:96 msgid "Scale to Height" msgstr "" -#: cps/templates/readcbr.html:101 +#: cps/templates/readcbr.html:97 msgid "Scale to Native" msgstr "" -#: cps/templates/readcbr.html:102 +#: cps/templates/readcbr.html:98 msgid "Rotate Right" msgstr "" -#: cps/templates/readcbr.html:103 +#: cps/templates/readcbr.html:99 msgid "Rotate Left" msgstr "" -#: cps/templates/readcbr.html:104 +#: cps/templates/readcbr.html:100 msgid "Flip Image" msgstr "" -#: cps/templates/readcbr.html:120 +#: cps/templates/readcbr.html:116 msgid "Light" msgstr "" -#: cps/templates/readcbr.html:121 +#: cps/templates/readcbr.html:117 msgid "Dark" msgstr "" -#: cps/templates/readcbr.html:126 +#: cps/templates/readcbr.html:122 msgid "Scale" msgstr "" -#: cps/templates/readcbr.html:129 +#: cps/templates/readcbr.html:125 msgid "Best" msgstr "" -#: cps/templates/readcbr.html:130 +#: cps/templates/readcbr.html:126 msgid "Width" msgstr "" -#: cps/templates/readcbr.html:131 +#: cps/templates/readcbr.html:127 msgid "Height" msgstr "" -#: cps/templates/readcbr.html:132 +#: cps/templates/readcbr.html:128 msgid "Native" msgstr "" -#: cps/templates/readcbr.html:137 +#: cps/templates/readcbr.html:133 msgid "Rotate" msgstr "" -#: cps/templates/readcbr.html:148 +#: cps/templates/readcbr.html:144 msgid "Flip" msgstr "" -#: cps/templates/readcbr.html:151 +#: cps/templates/readcbr.html:147 msgid "Horizontal" msgstr "" -#: cps/templates/readcbr.html:152 +#: cps/templates/readcbr.html:148 msgid "Vertical" msgstr "" -#: cps/templates/readcbr.html:157 +#: cps/templates/readcbr.html:153 msgid "Direction" msgstr "" -#: cps/templates/readcbr.html:160 +#: cps/templates/readcbr.html:156 msgid "Left to Right" msgstr "" -#: cps/templates/readcbr.html:161 +#: cps/templates/readcbr.html:157 msgid "Right to Left" msgstr "" From 6137fdeb33971d6f36009b0d01d3abda3393b4e9 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Tue, 2 Feb 2021 19:11:02 +0100 Subject: [PATCH 6/9] Version bump --- cps/constants.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/constants.py b/cps/constants.py index e8fa0ecc..e9b9b5b9 100644 --- a/cps/constants.py +++ b/cps/constants.py @@ -131,7 +131,7 @@ def selected_roles(dictionary): BookMeta = namedtuple('BookMeta', 'file_path, extension, title, author, cover, description, tags, series, ' 'series_id, languages') -STABLE_VERSION = {'version': '0.6.11'} +STABLE_VERSION = {'version': '0.6.12 Beta'} NIGHTLY_VERSION = {} NIGHTLY_VERSION[0] = '$Format:%H$' From e6fb46007186e152bb262b0eb979f60462abb552 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 6 Feb 2021 09:42:27 +0100 Subject: [PATCH 7/9] New restart routine for executable files Fix log in updater New source option updater available --- cps/about.py | 8 ++++- cps/admin.py | 70 +++++++++++++++++++++------------------ cps/constants.py | 1 + cps/server.py | 66 +++++++++++++++++++++++++++++++++--- cps/templates/admin.html | 2 ++ cps/updater.py | 2 +- optional-requirements.txt | 4 +-- 7 files changed, 112 insertions(+), 41 deletions(-) diff --git a/cps/about.py b/cps/about.py index 6ea584f4..2e9cc699 100644 --- a/cps/about.py +++ b/cps/about.py @@ -48,6 +48,11 @@ try: except ImportError: flask_danceVersion = None +try: + from greenlet import __version__ as greenlet_Version +except ImportError: + greenlet_Version = None + from . import services about = flask.Blueprint('about', __name__) @@ -77,7 +82,8 @@ _VERSIONS = OrderedDict( python_LDAP = services.ldapVersion if bool(services.ldapVersion) else None, Goodreads = u'installed' if bool(services.goodreads_support) else None, jsonschema = services.SyncToken.__version__ if bool(services.SyncToken) else None, - flask_dance = flask_danceVersion + flask_dance = flask_danceVersion, + greenlet = greenlet_Version ) _VERSIONS.update(uploader.get_versions()) diff --git a/cps/admin.py b/cps/admin.py index 03b306a8..767aece3 100644 --- a/cps/admin.py +++ b/cps/admin.py @@ -56,7 +56,8 @@ log = logger.create() feature_support = { 'ldap': bool(services.ldap), 'goodreads': bool(services.goodreads_support), - 'kobo': bool(services.kobo) + 'kobo': bool(services.kobo), + 'updater': constants.UPDATER_AVAILABLE } try: @@ -1264,8 +1265,11 @@ def download_debug(): @login_required @admin_required def get_update_status(): - log.info(u"Update status requested") - return updater_thread.get_available_updates(request.method, locale=get_locale()) + if feature_support['updater']: + log.info(u"Update status requested") + return updater_thread.get_available_updates(request.method, locale=get_locale()) + else: + return '' @admi.route("/get_updater_status", methods=['GET', 'POST']) @@ -1273,35 +1277,37 @@ def get_update_status(): @admin_required def get_updater_status(): status = {} - if request.method == "POST": - commit = request.form.to_dict() - if "start" in commit and commit['start'] == 'True': - text = { - "1": _(u'Requesting update package'), - "2": _(u'Downloading update package'), - "3": _(u'Unzipping update package'), - "4": _(u'Replacing files'), - "5": _(u'Database connections are closed'), - "6": _(u'Stopping server'), - "7": _(u'Update finished, please press okay and reload page'), - "8": _(u'Update failed:') + u' ' + _(u'HTTP Error'), - "9": _(u'Update failed:') + u' ' + _(u'Connection error'), - "10": _(u'Update failed:') + u' ' + _(u'Timeout while establishing connection'), - "11": _(u'Update failed:') + u' ' + _(u'General error'), - "12": _(u'Update failed:') + u' ' + _(u'Update File Could Not be Saved in Temp Dir') - } - status['text'] = text - updater_thread.status = 0 - updater_thread.resume() - status['status'] = updater_thread.get_update_status() - elif request.method == "GET": - try: - status['status'] = updater_thread.get_update_status() - if status['status'] == -1: - status['status'] = 7 - except Exception: - status['status'] = 11 - return json.dumps(status) + if feature_support['updater']: + if request.method == "POST": + commit = request.form.to_dict() + if "start" in commit and commit['start'] == 'True': + text = { + "1": _(u'Requesting update package'), + "2": _(u'Downloading update package'), + "3": _(u'Unzipping update package'), + "4": _(u'Replacing files'), + "5": _(u'Database connections are closed'), + "6": _(u'Stopping server'), + "7": _(u'Update finished, please press okay and reload page'), + "8": _(u'Update failed:') + u' ' + _(u'HTTP Error'), + "9": _(u'Update failed:') + u' ' + _(u'Connection error'), + "10": _(u'Update failed:') + u' ' + _(u'Timeout while establishing connection'), + "11": _(u'Update failed:') + u' ' + _(u'General error'), + "12": _(u'Update failed:') + u' ' + _(u'Update File Could Not be Saved in Temp Dir') + } + status['text'] = text + updater_thread.status = 0 + updater_thread.resume() + status['status'] = updater_thread.get_update_status() + elif request.method == "GET": + try: + status['status'] = updater_thread.get_update_status() + if status['status'] == -1: + status['status'] = 7 + except Exception: + status['status'] = 11 + return json.dumps(status) + return '' @admi.route('/import_ldap_users') diff --git a/cps/constants.py b/cps/constants.py index e9b9b5b9..ac48a5b8 100644 --- a/cps/constants.py +++ b/cps/constants.py @@ -23,6 +23,7 @@ from collections import namedtuple # if installed via pip this variable is set to true HOME_CONFIG = False +UPDATER_AVAILABLE = True # Base dir is parent of current file, necessary if called from different folder if sys.version_info < (3, 0): diff --git a/cps/server.py b/cps/server.py index b2d9c1b0..3148aed6 100644 --- a/cps/server.py +++ b/cps/server.py @@ -22,6 +22,7 @@ import os import errno import signal import socket +import subprocess try: from gevent.pywsgi import WSGIServer @@ -136,6 +137,64 @@ class WebServer(object): return sock, _readable_listen_address(*address) + + def _get_args_for_reloading(self): + """Determine how the script was executed, and return the args needed + to execute it again in a new process. + Code from https://github.com/pyload/pyload. Author GammaC0de, voulter + """ + rv = [sys.executable] + py_script = sys.argv[0] + args = sys.argv[1:] + # Need to look at main module to determine how it was executed. + __main__ = sys.modules["__main__"] + + # The value of __package__ indicates how Python was called. It may + # not exist if a setuptools script is installed as an egg. It may be + # set incorrectly for entry points created with pip on Windows. + if getattr(__main__, "__package__", None) is None or ( + os.name == "nt" + and __main__.__package__ == "" + and not os.path.exists(py_script) + and os.path.exists(f"{py_script}.exe") + ): + # Executed a file, like "python app.py". + py_script = os.path.abspath(py_script) + + if os.name == "nt": + # Windows entry points have ".exe" extension and should be + # called directly. + if not os.path.exists(py_script) and os.path.exists(f"{py_script}.exe"): + py_script += ".exe" + + if ( + os.path.splitext(sys.executable)[1] == ".exe" + and os.path.splitext(py_script)[1] == ".exe" + ): + rv.pop(0) + + rv.append(py_script) + else: + # Executed a module, like "python -m module". + if sys.argv[0] == "-m": + args = sys.argv + else: + if os.path.isfile(py_script): + # Rewritten by Python from "-m script" to "/path/to/script.py". + py_module = __main__.__package__ + name = os.path.splitext(os.path.basename(py_script))[0] + + if name != "__main__": + py_module += f".{name}" + else: + # Incorrectly rewritten by pydevd debugger from "-m script" to "script". + py_module = py_script + + rv.extend(("-m", py_module.lstrip("."))) + + rv.extend(args) + return rv + def _start_gevent(self): ssl_args = self.ssl_args or {} @@ -199,11 +258,8 @@ class WebServer(object): return True log.info("Performing restart of Calibre-Web") - arguments = list(sys.argv) - arguments.insert(0, sys.executable) - if os.name == 'nt': - arguments = ["\"%s\"" % a for a in arguments] - os.execv(sys.executable, arguments) + args = self._get_args_for_reloading() + subprocess.call(args, close_fds=True) return True def _killServer(self, __, ___): diff --git a/cps/templates/admin.html b/cps/templates/admin.html index 1ef64157..fb0c758f 100644 --- a/cps/templates/admin.html +++ b/cps/templates/admin.html @@ -168,9 +168,11 @@ + {% if feature_support['updater'] %}
{{_('Check for Update')}}
+ {% endif %} diff --git a/cps/updater.py b/cps/updater.py index b720c885..b03a0844 100644 --- a/cps/updater.py +++ b/cps/updater.py @@ -264,7 +264,7 @@ class Updater(threading.Thread): # log_from_thread("Delete file " + item_path) os.remove(item_path) except OSError: - logger.debug("Could not remove: %s", item_path) + log.debug("Could not remove: %s", item_path) shutil.rmtree(source, ignore_errors=True) def is_venv(self): diff --git a/optional-requirements.txt b/optional-requirements.txt index 3f0f1e00..d3e21f5b 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -1,7 +1,7 @@ # GDrive Integration google-api-python-client>=1.7.11,<1.8.0 -gevent>=1.2.1,<20.6.0 -greenlet>=0.4.12,<0.4.17 +gevent>20.6.0,<21.2.0 +greenlet>=0.4.17,<1.1.0 httplib2>=0.9.2,<0.18.0 oauth2client>=4.0.0,<4.1.4 uritemplate>=3.0.0,<3.1.0 From 9390dcdd435a3781ddca306f1802498f1033cb07 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 6 Feb 2021 11:33:20 +0100 Subject: [PATCH 8/9] Update optional requirements --- optional-requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/optional-requirements.txt b/optional-requirements.txt index d3e21f5b..a94bb506 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -1,5 +1,5 @@ # GDrive Integration -google-api-python-client>=1.7.11,<1.8.0 +google-api-python-client>=1.7.11,<1.13.0 gevent>20.6.0,<21.2.0 greenlet>=0.4.17,<1.1.0 httplib2>=0.9.2,<0.18.0 @@ -17,7 +17,7 @@ goodreads>=0.3.2,<0.4.0 python-Levenshtein>=0.12.0,<0.13.0 # ldap login -python-ldap>=3.0.0,<3.3.0 +python-ldap>=3.0.0,<3.4.0 Flask-SimpleLDAP>=1.4.0,<1.5.0 #oauth @@ -25,7 +25,7 @@ Flask-Dance>=1.4.0,<3.1.0 SQLAlchemy-Utils>=0.33.5,<0.37.0 # extracting metadata -lxml>=3.8.0,<4.6.0 +lxml>=3.8.0,<4.7.0 rarfile>=2.7 # other From 7b7494b8a48d8c2f3451f8b341e47753809c2bac Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 6 Feb 2021 21:42:29 +0100 Subject: [PATCH 9/9] Added executable folder to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f06dcd44..109de4ef 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ env/ venv/ eggs/ dist/ +executable/ build/ vendor/ .eggs/