From 2700b4f0d119e596396eb60c944b0c2dc231fe58 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 10 Jan 2026 12:20:52 +0100 Subject: [PATCH 01/28] Support kobo/auth/refresh endpoint --- cps/kobo.py | 1 + test/Calibre-Web TestSummary_Linux.html | 422 ++++++------------------ 2 files changed, 103 insertions(+), 320 deletions(-) diff --git a/cps/kobo.py b/cps/kobo.py index 879e18f1..f71ef909 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -1044,6 +1044,7 @@ def make_calibre_web_auth_response(): @csrf.exempt +@kobo.route("/v1/auth/refresh", methods=["POST"]) @kobo.route("/v1/auth/device", methods=["POST"]) @requires_kobo_auth def HandleAuthRequest(): diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index cb530a5e..07839974 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
-

Start Time: 2025-12-20 19:34:51

+

Start Time: 2026-01-09 20:49:38

-

Stop Time: 2025-12-21 03:04:35

+

Stop Time: 2026-01-10 04:16:57

-

Duration: 6h 12 min

+

Duration: 6h 13 min

@@ -102,11 +102,11 @@ - + TestAnonymous 13 - 11 - 2 + 13 + 0 0 0 @@ -143,33 +143,11 @@ - +
TestAnonymous - test_guest_change_visibility_format
- -
- FAIL -
- - - - + PASS @@ -183,33 +161,11 @@ AssertionError: '1' != 'CBR' - +
TestAnonymous - test_guest_change_visibility_language
- -
- FAIL -
- - - - + PASS @@ -638,12 +594,12 @@ AssertionError: '1' != 'eng' - + TestCliGdrivedb 4 - 2 - 1 - 1 + 4 + 0 + 0 0 Detail @@ -670,142 +626,30 @@ AssertionError: '1' != 'eng' - +
TestCliGdrivedb - test_gdrive_db_nonwrite
- -
- ERROR -
- - - - + PASS - +
TestCliGdrivedb - test_no_database
- -
- FAIL -
- - - - + PASS - + TestCoverEditBooks 2 - 2 - 0 + 1 + 1 0 0 @@ -824,11 +668,31 @@ AssertionError: True is not false : Inital config failed with normal database

+
TestCoverEditBooks - test_upload_jpg
- PASS + +
+ FAIL +
+ + + + @@ -1356,11 +1220,11 @@ AssertionError: True is not false : Inital config failed with normal database

+ TestEditBooks 38 - 37 - 0 + 36 + 1 0 1 @@ -1711,11 +1575,31 @@ AssertionError: True is not false : Inital config failed with normal database

+
TestEditBooks - test_upload_cover_hdd
- PASS + +
+ FAIL +
+ + + + @@ -2195,13 +2079,13 @@ AssertionError: True is not false : Inital config failed with normal database

+ TestLoadMetadata 1 - 0 - 0 1 0 + 0 + 0 Detail @@ -2209,32 +2093,11 @@ AssertionError: True is not false : Inital config failed with normal database

+
TestLoadMetadata - test_load_metadata
- -
- ERROR -
- - - - + PASS @@ -2767,12 +2630,12 @@ AssertionError: 30 != 20 - + TestFilePicker 3 - 1 + 2 + 0 0 - 1 1 Detail @@ -2816,32 +2679,11 @@ AssertionError: 30 != 20 - +
TestFilePicker - test_two_filepickers
- -
- ERROR -
- - - - + PASS @@ -4517,11 +4359,11 @@ IndexError: list index out of range - + TestShelf 17 - 15 - 1 + 16 + 0 0 1 @@ -4549,31 +4391,11 @@ IndexError: list index out of range - +
TestShelf - test_adv_search_shelf
- -
- FAIL -
- - - - + PASS @@ -5081,11 +4903,11 @@ AssertionError: 7 != 2 - + TestUploadAudio 12 - 11 - 1 + 12 + 0 0 0 @@ -5149,31 +4971,11 @@ AssertionError: 7 != 2 - +
TestUploadAudio - test_upload_mp3
- -
- FAIL -
- - - - + PASS @@ -5224,11 +5026,11 @@ AssertionError: 0.0075997182498730486 != 0.0 within 0.006 delta (0.0075997182498 - + TestUploadEPubs 6 - 5 - 1 + 6 + 0 0 0 @@ -5283,31 +5085,11 @@ AssertionError: 0.0075997182498730486 != 0.0 within 0.006 delta (0.0075997182498 - +
TestUploadEPubs - test_upload_epub_lang
- -
- FAIL -
- - - - + PASS @@ -6209,9 +5991,9 @@ AssertionError: 12 != 1 Total 538 - 521 - 7 + 528 3 + 0 7   @@ -6252,7 +6034,7 @@ AssertionError: 12 != 1 APScheduler - 3.11.1 + 3.11.2 Basic @@ -6402,7 +6184,7 @@ AssertionError: 12 != 1 urllib3 - 2.6.2 + 2.6.3 Basic @@ -6414,7 +6196,7 @@ AssertionError: 12 != 1 Werkzeug - 3.1.4 + 3.1.5 Basic @@ -6702,13 +6484,13 @@ AssertionError: 12 != 1 jsonschema - 4.25.1 + 4.26.0 TestKoboSync jsonschema - 4.25.1 + 4.26.0 TestKoboSyncBig @@ -6720,7 +6502,7 @@ AssertionError: 12 != 1 jsonschema - 4.25.1 + 4.26.0 TestLdapLogin @@ -6762,7 +6544,7 @@ AssertionError: 12 != 1 From 36ef81dd913df533f94414d5cc9430e2a908bfe9 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 10 Jan 2026 12:36:20 +0100 Subject: [PATCH 02/28] Make kobo resources editable (#3472) --- cps/kobo.py | 11 +++++++++-- optional-requirements.txt | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/cps/kobo.py b/cps/kobo.py index f71ef909..da9c9bc5 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -41,13 +41,12 @@ from werkzeug.datastructures import Headers from sqlalchemy import func from sqlalchemy.sql.expression import and_, or_ from sqlalchemy.exc import StatementError -from sqlalchemy.sql import select import requests from . import config, logger, kobo_auth, db, calibre_db, helper, shelf as shelf_lib, ub, csrf, kobo_sync_status from . import isoLanguages from .epub import get_epub_layout -from .constants import COVER_THUMBNAIL_SMALL, COVER_THUMBNAIL_MEDIUM, COVER_THUMBNAIL_LARGE +from .constants import COVER_THUMBNAIL_SMALL, COVER_THUMBNAIL_MEDIUM, COVER_THUMBNAIL_LARGE, BASE_DIR from .helper import get_download_link from .services import SyncToken as SyncToken from .web import download_required @@ -1134,6 +1133,14 @@ def download_book(book_id, book_format): def NATIVE_KOBO_RESOURCES(): + kobo_file = os.path.join(BASE_DIR, "kobo_resources.txt") + try: + if os.path.isfile(kobo_file): + with open(kobo_file, "r") as f: + lines = f.read() + return json.loads(lines) + except Exception as e: + log.error(e) return { "account_page": "https://www.kobo.com/account/settings", "account_page_rakuten": "https://my.rakuten.co.jp/", diff --git a/optional-requirements.txt b/optional-requirements.txt index e8465f72..6d75d572 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -44,4 +44,4 @@ natsort>=2.2.0,<8.5.0 comicapi>=2.2.0,<3.3.0 # Kobo integration -jsonschema>=3.2.0,<4.24.0 +jsonschema>=3.2.0,<4.30.0 From 99e91e622ee524ed95cb372f21d9e1cc9e08bd3d Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 10 Jan 2026 12:53:16 +0100 Subject: [PATCH 03/28] Change quoting of downloaded filename --- cps/helper.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index 3d712165..8cd7b451 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -1091,14 +1091,12 @@ def get_download_link(book_id, book_format, client): file_name = book.title if len(book.authors) > 0: file_name = file_name + ' - ' + book.authors[0].name - if client == "kindle": - file_name = get_valid_filename(file_name, replace_whitespace=False, force_unidecode=True) - else: - file_name = quote(get_valid_filename(file_name, replace_whitespace=False)) + file_name = get_valid_filename(file_name, replace_whitespace=False, force_unidecode=True) + quoted_file_name = file_name if client == "kindle" else quote(file_name) headers = Headers() headers["Content-Type"] = mimetypes.types_map.get('.' + book_format, "application/octet-stream") headers["Content-Disposition"] = ('attachment; filename="{}.{}"; filename*=UTF-8\'\'{}.{}').format( - file_name, book_format, file_name, book_format) + file_name, book_format, quoted_file_name, book_format) return do_download_file(book, book_format, client, data1, headers) else: log.error("Book id {} not found for downloading".format(book_id)) From 63cebcd849f045d97f565c89bd11e7ee236ae079 Mon Sep 17 00:00:00 2001 From: Edouard Rouch <90419469+EdouardRouch@users.noreply.github.com> Date: Thu, 15 Jan 2026 12:34:47 +0100 Subject: [PATCH 04/28] Completed french translation Added missing translations. Corrected grammatical or spelling errors. Harmonized recurring translations (Success !, Oops !, Show...) --- cps/translations/fr/LC_MESSAGES/messages.po | 904 ++++++++++++-------- 1 file changed, 565 insertions(+), 339 deletions(-) diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index 7680e1f6..6ddbcded 100644 --- a/cps/translations/fr/LC_MESSAGES/messages.po +++ b/cps/translations/fr/LC_MESSAGES/messages.po @@ -1,18 +1,21 @@ - msgid "" msgstr "" -"Project-Id-Version: Calibre-Web\n" +"Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-12-14 14:44+0100\n" -"PO-Revision-Date: 2025-09-10 19:25+0000\n" +"PO-Revision-Date: 2026-01-15 11:30+0000\n" "Last-Translator: \n" -"Language: fr\n" "Language-Team: French\n" +"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Loco-Source-Locale: fr_FR\n" "Generated-By: Babel 2.15.0\n" +"\n" +"X-Loco-Parser: loco_parse_po\n" +"X-Generator: Loco https://localise.biz/" #: cps/about.py:85 msgid "Statistics" @@ -35,11 +38,14 @@ msgid "Unknown command" msgstr "Commande inconnue" #: cps/admin.py:175 -msgid "Success! Books queued for Metadata Backup, please check Tasks for result" -msgstr "Réussi ! Livres mis en file d'attente pour la sauvegarde des métadonnées, veuillez vérifier les tâches pour connaître le résultat." +msgid "" +"Success! Books queued for Metadata Backup, please check Tasks for result" +msgstr "" +"Succès ! Livres mis en file d'attente pour la sauvegarde des métadonnées, " +"veuillez vérifier les tâches pour connaître le résultat." -#: cps/admin.py:208 cps/editbooks.py:808 cps/editbooks.py:852 -#: cps/editbooks.py:1520 cps/updater.py:615 cps/uploader.py:108 +#: cps/admin.py:208 cps/editbooks.py:808 cps/editbooks.py:852 +#: cps/editbooks.py:1520 cps/updater.py:615 cps/uploader.py:108 #: cps/uploader.py:117 msgid "Unknown" msgstr "Inconnu" @@ -56,17 +62,19 @@ msgstr "Configuration principale" msgid "UI Configuration" msgstr "Configuration de l’interface utilisateur" -#: cps/admin.py:315 cps/admin.py:1001 cps/db.py:801 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:1001 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" msgstr "" +"La colonne personnalisée N°%(column)d n'existe pas dans la base de données " +"Calibre" #: cps/admin.py:333 cps/templates/admin.html:51 msgid "Edit Users" msgstr "Modifier les utilisateurs" -#: cps/admin.py:377 cps/opds.py:560 cps/templates/grid.html:14 +#: cps/admin.py:377 cps/opds.py:560 cps/templates/grid.html:14 #: cps/templates/list.html:13 msgid "All" msgstr "Tout" @@ -76,14 +84,13 @@ msgid "User not found" msgstr "L'utilisateur n'a pas été trouvé" #: cps/admin.py:414 -#, python-brace-format msgid "{} users deleted successfully" -msgstr "{} utilisateurs supprimés avec succès" +msgstr "{} Utilisateurs supprimés avec succès" -#: cps/admin.py:437 cps/templates/config_view_edit.html:133 +#: cps/admin.py:437 cps/templates/config_view_edit.html:133 #: cps/templates/user_edit.html:45 cps/templates/user_table.html:81 msgid "Show All" -msgstr "Montrer tout" +msgstr "Afficher tout" #: cps/admin.py:458 cps/admin.py:464 msgid "Malformed request" @@ -119,7 +126,9 @@ msgstr "Vue invalide" #: cps/admin.py:523 msgid "Guest's Locale is determined automatically and can't be set" -msgstr "Les paramètres régionaux de l’invité sont déterminés automatiquement et ne peuvent pas être définis" +msgstr "" +"Les paramètres régionaux de l’invité sont déterminés automatiquement et ne " +"peuvent pas être définis" #: cps/admin.py:527 msgid "No Valid Locale Given" @@ -129,7 +138,7 @@ msgstr "Aucun paramètre régional valide n’est donné" msgid "No Valid Book Language Given" msgstr "Aucune langue de livre valide donnée" -#: cps/admin.py:540 cps/editbooks.py:243 cps/editbooks.py:428 +#: cps/admin.py:540 cps/editbooks.py:243 cps/editbooks.py:428 #: cps/editbooks.py:430 msgid "Parameter not found" msgstr "Paramètre non trouvé" @@ -164,68 +173,102 @@ msgstr "Voulez-vous vraiment supprimer ce livre ?" #: cps/admin.py:623 msgid "Are you sure you want to delete this shelf?" -msgstr "Voulez-vous vraiment supprimer l’étagère ?" +msgstr "Êtes-vous sûr de vouloir supprimer l’étagère ?" #: cps/admin.py:625 msgid "Are you sure you want to change locales of selected user(s)?" -msgstr "Êtes-vous sûr de vouloir modifier les paramètres régionaux des utilisateurs sélectionnés ?" +msgstr "" +"Êtes-vous sûr de vouloir modifier les paramètres régionaux des utilisateurs " +"sélectionnés ?" #: cps/admin.py:627 -msgid "Are you sure you want to change visible book languages for selected user(s)?" -msgstr "Voulez-vous vraiment modifier les langues de livre visibles pour le ou les utilisateurs sélectionnés ?" +msgid "" +"Are you sure you want to change visible book languages for selected user(s)?" +msgstr "" +"Êtes-vous sûr de vouloir modifier les langues de livre visibles pour le ou " +"les utilisateurs sélectionnés ?" #: cps/admin.py:629 -msgid "Are you sure you want to change the selected role for the selected user(s)?" -msgstr "Voulez-vous vraiment modifier le rôle sélectionné pour le ou les utilisateurs sélectionnés ?" +msgid "" +"Are you sure you want to change the selected role for the selected user(s)?" +msgstr "" +"Êtes-vous sûr de vouloir modifier le rôle sélectionné pour le ou les " +"utilisateurs sélectionnés ?" #: cps/admin.py:631 -msgid "Are you sure you want to change the archive status for the selected book(s)?" +msgid "" +"Are you sure you want to change the archive status for the selected book(s)?" msgstr "" +"Êtes-vous sûr de vouloir modifier le statut d'archivage du/des livres " +"sélectionné(s) ?" #: cps/admin.py:633 -msgid "Are you sure you want to change the read status for the selected book(s)?" -msgstr "Êtes-vous sûr de vouloir modifier le statut d'archivage du ou des livres sélectionnés ?" +msgid "" +"Are you sure you want to change the read status for the selected book(s)?" +msgstr "" +"Êtes-vous sûr de vouloir modifier le statut d'archivage du ou des livres " +"sélectionnés ?" #: cps/admin.py:635 -msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" -msgstr "Êtes-vous sûr de vouloir modifier les restrictions sélectionnées pour le ou les utilisateurs sélectionnés ?" +msgid "" +"Are you sure you want to change the selected restrictions for the selected " +"user(s)?" +msgstr "" +"Êtes-vous sûr de vouloir modifier les restrictions sélectionnées pour le ou " +"les utilisateurs sélectionnés ?" #: cps/admin.py:637 -msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" -msgstr "Voulez-vous vraiment modifier les restrictions de visibilité sélectionnées pour le ou les utilisateurs sélectionnés ?" +msgid "" +"Are you sure you want to change the selected visibility restrictions for the " +"selected user(s)?" +msgstr "" +"Êtes-vous sûr de vouloir modifier les restrictions de visibilité " +"sélectionnées pour le ou les utilisateurs sélectionnés ?" #: cps/admin.py:640 -msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" -msgstr "Êtes-vous sûr de vouloir modifier le comportement de synchronisation des étagères pour le ou les utilisateurs sélectionnés ?" +msgid "" +"Are you sure you want to change shelf sync behavior for the selected user(s)?" +msgstr "" +"Êtes-vous sûr de vouloir modifier le comportement de synchronisation des " +"étagères pour le ou les utilisateurs sélectionnés ?" #: cps/admin.py:642 msgid "Are you sure you want to change Calibre library location?" -msgstr "Êtes-vous sûr de vouloir modifier l'emplacement de la bibliothèque Calibre ?" +msgstr "" +"Êtes-vous sûr de vouloir modifier l'emplacement de la bibliothèque Calibre ?" #: cps/admin.py:644 -msgid "Calibre-Web will search for updated Covers and update Cover Thumbnails, this may take a while?" -msgstr "Calibre-Web va rechercher des mises à jour de couvertures et mettre à jour les vignettes de couverture, cela peut prendre du temps." +msgid "" +"Calibre-Web will search for updated Covers and update Cover Thumbnails, this " +"may take a while?" +msgstr "" +"Calibre-Web va rechercher des mises à jour de couvertures et mettre à jour " +"les vignettes de couverture, cela peut prendre du temps." #: cps/admin.py:647 -msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" -msgstr "Êtes-vous certain de vouloir supprimer la base de données de synchronisation de Calibre-Web pour forcer une synchronisation complète avec votre liseuse Kobo ?" +msgid "" +"Are you sure you want delete Calibre-Web's sync database to force a full " +"sync with your Kobo Reader?" +msgstr "" +"Êtes-vous sûr de vouloir supprimer la base de données de synchronisation de " +"Calibre-Web pour forcer une synchronisation complète avec votre liseuse " +"Kobo ?" -#: cps/admin.py:890 cps/admin.py:896 cps/admin.py:906 cps/admin.py:916 -#: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 +#: cps/admin.py:890 cps/admin.py:896 cps/admin.py:906 cps/admin.py:916 +#: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Refuser" -#: cps/admin.py:892 cps/admin.py:898 cps/admin.py:908 cps/admin.py:918 -#: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 +#: cps/admin.py:892 cps/admin.py:898 cps/admin.py:908 cps/admin.py:918 +#: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Autoriser" #: cps/admin.py:951 -#, python-brace-format msgid "{} sync entries deleted" -msgstr "{} entrées de synchronisation supprimées" +msgstr "{} Entrées de synchronisation supprimées" #: cps/admin.py:992 msgid "Tag not found" @@ -241,15 +284,21 @@ msgstr "client_secrets.json n'est pas configuré pour l'application Web" #: cps/admin.py:1182 msgid "Logfile Location is not Valid, Please Enter Correct Path" -msgstr "L'emplacement du fichier logfile est incorrect, veuillez saisir un chemin valide" +msgstr "" +"L'emplacement du fichier logfile est incorrect, veuillez saisir un chemin " +"valide" #: cps/admin.py:1188 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" -msgstr "L'emplacement du fichier Access Logfile est incorrect, veuillez saisir un chemin valide" +msgstr "" +"L'emplacement du fichier Access Logfile est incorrect, veuillez saisir un " +"chemin valide" #: cps/admin.py:1222 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" -msgstr "Veuillez saisir un fournisseur LDAP, Port, DN et l'identifiant objet de l'utilisateur" +msgstr "" +"Veuillez saisir un fournisseur LDAP, Port, DN et l'identifiant objet de " +"l'utilisateur" #: cps/admin.py:1228 msgid "Please Enter a LDAP Service Account and Password" @@ -262,7 +311,8 @@ msgstr "Veuillez entrer un compte de service LDAP" #: cps/admin.py:1236 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" -msgstr "Le filtre objet du groupe LDAP a besoin d'un identifiant de format \"%s\"" +msgstr "" +"Le filtre objet du groupe LDAP a besoin d'un identifiant de format \"%s\"" #: cps/admin.py:1238 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" @@ -271,7 +321,9 @@ msgstr "Le filtre objet du groupe LDAP a une parenthèse non gérée" #: cps/admin.py:1242 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" -msgstr "Le filtre objet de l'utilisateur LDAP a besoin d'un identifiant de format \"%s\"" +msgstr "" +"Le filtre objet de l'utilisateur LDAP a besoin d'un identifiant de format " +"\"%s\"" #: cps/admin.py:1244 msgid "LDAP User Object Filter Has Unmatched Parenthesis" @@ -280,15 +332,21 @@ msgstr "Le filtre objet de l'utilisateur LDAP a une parenthèse non gérée" #: cps/admin.py:1251 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" -msgstr "Le filtre utilisateur des membres LDAP doit avoir un identificateur de format \"%s\\ »" +msgstr "" +"Le filtre utilisateur des membres LDAP doit avoir un identificateur de " +"format \"%s\\ »" #: cps/admin.py:1253 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "Le filtre utilisateur de membre LDAP a des parenthèses non appariées" #: cps/admin.py:1260 -msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" -msgstr "LDAP CACertificat, certificat ou emplacement de clé non valide, veuillez entrer le chemin correct" +msgid "" +"LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter " +"Correct Path" +msgstr "" +"LDAP CACertificat, certificat ou emplacement de clé non valide, veuillez " +"entrer le chemin correct" #: cps/admin.py:1291 cps/templates/admin.html:53 msgid "Add New User" @@ -302,19 +360,22 @@ msgstr "Modifier les paramètres du serveur de courriels" msgid "Success! Gmail Account Verified." msgstr "Succès ! Compte Gmail vérifié." -#: cps/admin.py:1339 cps/admin.py:1342 cps/admin.py:1727 cps/admin.py:1886 -#: cps/admin.py:1984 cps/admin.py:2105 cps/editbooks.py:169 -#: cps/editbooks.py:755 cps/editbooks.py:1474 cps/shelf.py:90 cps/shelf.py:150 -#: cps/shelf.py:193 cps/shelf.py:243 cps/shelf.py:280 cps/shelf.py:354 +#: cps/admin.py:1339 cps/admin.py:1342 cps/admin.py:1727 cps/admin.py:1886 +#: cps/admin.py:1984 cps/admin.py:2105 cps/editbooks.py:169 +#: cps/editbooks.py:755 cps/editbooks.py:1474 cps/shelf.py:90 cps/shelf.py:150 +#: cps/shelf.py:193 cps/shelf.py:243 cps/shelf.py:280 cps/shelf.py:354 #: cps/shelf.py:476 cps/tasks/convert.py:160 cps/web.py:1540 #, python-format msgid "Oops! Database Error: %(error)s." -msgstr "Erreur de la base de données: %(error)s." +msgstr "Oups ! Erreur de la base de données: %(error)s." #: cps/admin.py:1349 #, python-format -msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" -msgstr "Teste les courriels en file d’attente pour l’envoi à %(email)s, veuillez vérifier le résultat des tâches" +msgid "" +"Test e-mail queued for sending to %(email)s, please check Tasks for result" +msgstr "" +"Teste les courriels en file d’attente pour l’envoi à %(email)s, veuillez " +"vérifier le résultat des tâches" #: cps/admin.py:1352 #, python-format @@ -339,7 +400,7 @@ msgstr "Heure de début non valide pour la tâche spécifiée" #: cps/admin.py:1396 msgid "Invalid duration for task specified" -msgstr "" +msgstr "Durée invalide pour la tâche spécifiée" #: cps/admin.py:1406 msgid "Scheduled tasks settings updated" @@ -347,7 +408,7 @@ msgstr "Durée non valide pour la tâche spécifiée" #: cps/admin.py:1416 cps/admin.py:1465 cps/admin.py:2101 cps/web.py:1330 msgid "Oops! An unknown error occurred. Please try again later." -msgstr "Une erreur inconnue est survenue. Veuillez réessayer plus tard." +msgstr "Oups ! Une erreur inconnue est survenue. Veuillez réessayer plus tard." #: cps/admin.py:1420 msgid "Settings DB is not Writeable" @@ -361,7 +422,7 @@ msgstr "Éditer l'utilisateur %(nick)s" #: cps/admin.py:1462 #, python-format msgid "Success! Password for user %(user)s reset" -msgstr "Réussi ! Mot de passe de l'utilisateur %(user)s réinitialisé." +msgstr "Succès ! Mot de passe de l'utilisateur %(user)s réinitialisé." #: cps/admin.py:1468 msgid "Oops! Please configure the SMTP mail settings." @@ -397,9 +458,10 @@ msgstr "Arrêt du serveur" #: cps/admin.py:1551 msgid "Update finished, please press okay and reload page" -msgstr "Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la page" +msgstr "" +"Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la page" -#: cps/admin.py:1552 cps/admin.py:1553 cps/admin.py:1554 cps/admin.py:1555 +#: cps/admin.py:1552 cps/admin.py:1553 cps/admin.py:1554 cps/admin.py:1555 #: cps/admin.py:1556 cps/admin.py:1557 msgid "Update failed:" msgstr "La mise à jour a échoué :" @@ -414,7 +476,7 @@ msgstr "Erreur de connexion" #: cps/admin.py:1554 cps/updater.py:395 cps/updater.py:632 msgid "Timeout while establishing connection" -msgstr "Délai d'attente dépassé lors de l'établissement de connexion" +msgstr "Délai d'attente dépassé lors de l'établissement de la connexion." #: cps/admin.py:1555 cps/updater.py:397 cps/updater.py:634 msgid "General error" @@ -422,7 +484,9 @@ msgstr "Erreur générale" #: cps/admin.py:1556 msgid "Update file could not be saved in temp dir" -msgstr "Le fichier de mise à jour n'a pas pu être enregistré dans le répertoire temporaire." +msgstr "" +"Le fichier de mise à jour n'a pas pu être enregistré dans le répertoire " +"temporaire." #: cps/admin.py:1557 msgid "Files could not be replaced during update" @@ -447,12 +511,12 @@ msgstr "Erreur : Aucun utilisateur renvoyé dans la réponse LDAP du serveur" #: cps/admin.py:1679 msgid "At Least One LDAP User Not Found in Database" -msgstr "Au moins un utilisateur LDAP n'a pas été trouvé dans la base de données" +msgstr "" +"Au moins un utilisateur LDAP n'a pas été trouvé dans la base de données" #: cps/admin.py:1681 -#, python-brace-format msgid "{} User Successfully Imported" -msgstr "{} utilisateur importé avec succès" +msgstr "{} Utilisateur importé avec succès" #: cps/admin.py:1739 msgid "Books path not valid" @@ -460,7 +524,9 @@ msgstr "Chemin d'accès aux livres non valide" #: cps/admin.py:1745 msgid "DB Location is not Valid, Please Enter Correct Path" -msgstr "L'emplacement de la base de données est incorrect, veuillez saisir un chemin valide" +msgstr "" +"L'emplacement de la base de données est incorrect, veuillez saisir un chemin " +"valide" #: cps/admin.py:1773 msgid "DB is not Writeable" @@ -468,15 +534,20 @@ msgstr "La base de données n'est pas accessible en écriture" #: cps/admin.py:1787 msgid "Keyfile Location is not Valid, Please Enter Correct Path" -msgstr "L'emplacement du fichier Keyfile est incorrect, veuillez saisir un chemin valide" +msgstr "" +"L'emplacement du fichier Keyfile est incorrect, veuillez saisir un chemin " +"valide" #: cps/admin.py:1791 msgid "Certfile Location is not Valid, Please Enter Correct Path" -msgstr "L'emplacement du fichier Certfile est incorrect, veuillez saisir un chemin valide" +msgstr "" +"L'emplacement du fichier Certfile est incorrect, veuillez saisir un chemin " +"valide" #: cps/admin.py:1871 msgid "Password length has to be between 1 and 40" -msgstr "La longueur du mot de passe doit être comprise entre 1 et 40 caractères." +msgstr "" +"La longueur du mot de passe doit être comprise entre 1 et 40 caractères." #: cps/admin.py:1925 msgid "Database Settings updated" @@ -488,7 +559,7 @@ msgstr "Configuration de la base de données" #: cps/admin.py:1948 cps/web.py:1304 msgid "Oops! Please complete all fields." -msgstr "Veuillez compléter tous les champs !" +msgstr "Oups ! Veuillez compléter tous les champs !" #: cps/admin.py:1957 msgid "E-mail is not from valid domain" @@ -529,10 +600,10 @@ msgstr "L'adresse e-mail ne peut pas être vide et doit être valide." msgid "User '%(nick)s' updated" msgstr "Utilisateur '%(nick)s' mis à jour" -#: cps/basic.py:67 cps/search.py:50 cps/search.py:426 -#: cps/templates/basic_layout.html:23 cps/templates/book_edit.html:242 -#: cps/templates/feed.xml:34 cps/templates/index.xml:12 -#: cps/templates/layout.html:46 cps/templates/layout.html:49 +#: cps/basic.py:67 cps/search.py:50 cps/search.py:426 +#: cps/templates/basic_layout.html:23 cps/templates/book_edit.html:242 +#: cps/templates/feed.xml:34 cps/templates/index.xml:12 +#: cps/templates/layout.html:46 cps/templates/layout.html:49 #: cps/templates/search_form.html:247 msgid "Search" msgstr "Chercher" @@ -543,12 +614,12 @@ msgstr "non installé" #: cps/converter.py:32 msgid "Execution permissions missing" -msgstr "Les permissions d'exécutions manquantes" +msgstr "Permissions d'exécution manquantes" -#: cps/db.py:1124 cps/templates/config_edit.html:207 -#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41 -#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714 -#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103 +#: cps/db.py:1124 cps/templates/config_edit.html:207 +#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41 +#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714 +#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103 #: cps/web.py:1142 msgid "None" msgstr "Aucun" @@ -556,7 +627,7 @@ msgstr "Aucun" #: cps/editbooks.py:155 #, python-format msgid "File %(file)s uploaded" -msgstr "Le fichier %(file)s a été téléchargé" +msgstr "Le fichier %(file)s a été téléverser" #: cps/editbooks.py:184 msgid "Source or destination format for conversion missing" @@ -565,7 +636,9 @@ msgstr "Le format de conversion de la source ou de la destination est manquant" #: cps/editbooks.py:192 #, python-format msgid "Book successfully queued for converting to %(book_format)s" -msgstr "Le livre a été mis avec succès en file de traitement pour conversion vers %(book_format)s" +msgstr "" +"Le livre a été mis avec succès en file de traitement pour conversion vers " +"%(book_format)s" #: cps/editbooks.py:196 #, python-format @@ -580,19 +653,24 @@ msgstr "Modifications appliquées avec succès" msgid "Value is missing on request" msgstr "La valeur est manquante sur demande." -#: cps/editbooks.py:319 cps/editbooks.py:326 cps/editbooks.py:627 -#: cps/editbooks.py:1146 cps/web.py:535 cps/web.py:1581 cps/web.py:1627 +#: cps/editbooks.py:319 cps/editbooks.py:326 cps/editbooks.py:627 +#: cps/editbooks.py:1146 cps/web.py:535 cps/web.py:1581 cps/web.py:1627 #: cps/web.py:1677 -msgid "Oops! Selected book 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" +msgid "" +"Oops! Selected book is unavailable. File does not exist or is not accessible" +msgstr "" +"Oups ! Le livre sélectionné n'est pas disponible. Le fichier n'existe pas ou " +"n'est pas accessible" #: cps/editbooks.py:673 cps/editbooks.py:1503 msgid "User has no rights to upload cover" -msgstr "L'utilisateur n'a pas le droit de télécharger la couverture." +msgstr "L'utilisateur n'a pas le droit de téléverser de couverture" #: cps/editbooks.py:694 cps/editbooks.py:938 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" -msgstr "Les identificateurs ne sont pas sensibles à la casse, écrasant l’ancien identificateur" +msgstr "" +"Les identificateurs ne sont pas sensibles à la casse, écrasant l’ancien " +"identificateur" #: cps/editbooks.py:709 cps/editbooks.py:912 cps/editbooks.py:1273 #, python-format @@ -604,31 +682,38 @@ msgid "Metadata successfully updated" msgstr "Les métadonnées ont bien été mises à jour" #: cps/editbooks.py:760 -#, python-brace-format msgid "Error editing book: {}" msgstr "Erreur lors de la modification du livre : {}" #: cps/editbooks.py:856 -msgid "Uploaded book probably exists in the library, consider to change before upload new: " -msgstr "Le fichier téléchargé existe probablement dans la librairie, veuillez le modifier avant de le télécharger de nouveau: " +msgid "" +"Uploaded book probably exists in the library, consider to change before " +"upload new: " +msgstr "" +"Le fichier téléversé existe probablement dans la librairie, veuillez le " +"modifier avant de le téléverser de nouveau: " #: cps/editbooks.py:950 cps/editbooks.py:1420 msgid "File type isn't allowed to be uploaded to this server" -msgstr "Le type de fichier n'est pas autorisé à être téléchargé sur ce serveur." +msgstr "Le type de fichier n'est pas autorisé à être téléversé sur ce serveur." #: cps/editbooks.py:956 cps/editbooks.py:1431 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" -msgstr "L’extension de fichier '%(ext)s' n’est pas autorisée pour être déposée sur ce serveur" +msgstr "" +"L’extension de fichier '%(ext)s' n’est pas autorisée à être téléversée sur " +"ce serveur" #: cps/editbooks.py:960 cps/editbooks.py:1436 msgid "File to be uploaded must have an extension" -msgstr "Pour être déposé le fichier doit avoir une extension" +msgstr "Le ficher doit avoir une extension pour être téléversé" #: cps/editbooks.py:968 #, python-format msgid "File %(filename)s could not saved to temp dir" -msgstr "Le fichier %(filename)s ne peut pas être sauvegardé dans le répertoire temporaire" +msgstr "" +"Le fichier %(filename)s ne peut pas être sauvegardé dans le répertoire " +"temporaire" #: cps/editbooks.py:988 #, python-format @@ -637,7 +722,7 @@ msgstr "Impossible de déplacer le fichier de couverture %(file)s: %(error)s" #: cps/editbooks.py:1041 msgid "Book Format Successfully Deleted" -msgstr "Le format du livre a été supprimé avec succès" +msgstr "Le format de livre a été supprimé avec succès" #: cps/editbooks.py:1044 cps/editbooks.py:1061 msgid "Book Successfully Deleted" @@ -648,7 +733,6 @@ msgid "You are missing permissions to delete books" msgstr "Vous n’avez par les permissions pour supprimer les livres" #: cps/editbooks.py:1139 -#, python-brace-format msgid "Book with id \"{}\" could not be deleted: not found" msgstr "Le livre avec l'id \"{}\" n'a pas pu être supprimé: non trouvé" @@ -663,7 +747,8 @@ msgstr "Seriesindex : %(seriesindex)s n'est pas un nombre valide, ignoré" #: cps/editbooks.py:1425 msgid "User has no rights to upload additional file formats" -msgstr "L'utilisateur n'a pas le droit de télécharger d'autres formats de fichiers." +msgstr "" +"L'utilisateur n'a pas le droit de téléverser d'autres formats de fichiers." #: cps/editbooks.py:1449 #, python-format @@ -681,12 +766,21 @@ msgid "File format %(ext)s added to %(book)s" msgstr "Le format de fichier %(ext)s a été ajouté à %(book)s" #: cps/gdrive.py:58 -msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again" -msgstr "La configuration de Google Drive n’est pas terminée, essayez de désactiver et d’activer à nouveau Google Drive" +msgid "" +"Google Drive setup not completed, try to deactivate and activate Google " +"Drive again" +msgstr "" +"La configuration de Google Drive n’est pas terminée, essayez de désactiver " +"et d’activer à nouveau Google Drive" #: cps/gdrive.py:96 -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" +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:87 #, python-format @@ -745,17 +839,21 @@ msgstr "%(book)s envoyé a la liseuse" #: cps/helper.py:237 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 ?" +msgstr "" +"Le fichier demandé n’a pu être lu. Les permissions sont peut-être " +"incorrectes ?" #: cps/helper.py:350 -#, python-brace-format msgid "Read status could not set: {}" msgstr "Impossible de définir le statut de lecture : {}" #: cps/helper.py:373 #, python-format -msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" -msgstr "Échec de la suppression du dossier de livre pour le livre %(id)s, le chemin d’accès comporte des sous-dossiers : %(path)s" +msgid "" +"Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" +msgstr "" +"Échec de la suppression du dossier de livre pour le livre %(id)s, le chemin " +"d’accès comporte des sous-dossiers : %(path)s" #: cps/helper.py:379 #, python-format @@ -764,18 +862,29 @@ msgstr "La suppression du livre %(id)s a échoué: %(message)s" #: cps/helper.py:390 #, python-format -msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" -msgstr "Suppression du livre %(id)s de la base de données uniquement, chemin d'accès au livre dans la base de données non valide : %(path)s" +msgid "" +"Deleting book %(id)s from database only, book path in database not valid: " +"%(path)s" +msgstr "" +"Suppression du livre %(id)s de la base de données uniquement, chemin d'accès " +"au livre dans la base de données non valide : %(path)s" #: cps/helper.py:404 #, python-format -msgid "Moving book path of Book %(book_id)s to: '%(src)s' failed with error: %(error)s" -msgstr "Le déplacement du chemin d'accès au livre %(book_id)s vers : “%(src)s” a échoué avec l'erreur suivante : %(error)s" +msgid "" +"Moving book path of Book %(book_id)s to: '%(src)s' failed with error: " +"%(error)s" +msgstr "" +"Le déplacement du chemin d'accès au livre %(book_id)s vers : “%(src)s” a " +"échoué avec l'erreur suivante : %(error)s" #: cps/helper.py:443 #, python-format -msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "Renommer l'auteur de : \"%(src)s\" à \"%(dest)s\" a échoué avec l'erreur : %(error)s" +msgid "" +"Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "" +"Renommer l'auteur de : \"%(src)s\" à \"%(dest)s\" a échoué avec l'erreur : " +"%(error)s" #: cps/helper.py:513 cps/helper.py:522 #, python-format @@ -785,7 +894,9 @@ msgstr "Le fichier %(file)s n'a pas été trouvé dans Google Drive" #: cps/helper.py:564 #, 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" +msgstr "" +"Renommer le titre de : '%(src)s' à '%(dest)s' a échoué avec l’erreur : " +"%(error)s" #: cps/helper.py:583 #, python-format @@ -798,7 +909,7 @@ msgstr "Un compte existant a été trouvé pour cette adresse e-mail." #: cps/helper.py:651 msgid "This username is already taken" -msgstr "Cet utilisateur est déjà pris" +msgstr "Ce nom d'utilisateur est déjà pris." #: cps/helper.py:665 msgid "Invalid Email address format" @@ -806,11 +917,15 @@ msgstr "Format d'adresse e-mail invalide" #: cps/helper.py:687 msgid "Password doesn't comply with password validation rules" -msgstr "Le mot de passe ne respecte pas les règles de validation des mots de passe." +msgstr "" +"Le mot de passe ne respecte pas les règles de validation des mots de passe." #: cps/helper.py:833 -msgid "Python module 'advocate' is not installed but is needed for cover uploads" -msgstr "Le module Python \"advocate\" n'est pas installé, mais il est nécessaire pour les téléchargements de couvertures." +msgid "" +"Python module 'advocate' is not installed but is needed for cover uploads" +msgstr "" +"Le module Python \"advocate\" n'est pas installé, mais il est nécessaire " +"pour les téléversements de couvertures." #: cps/helper.py:843 msgid "Error Downloading Cover" @@ -821,8 +936,12 @@ msgid "Cover Format Error" msgstr "Erreur de format de couverture" #: cps/helper.py:849 -msgid "You are not allowed to access localhost or the local network for cover uploads" -msgstr "Vous n'êtes pas autorisé à accéder à localhost ou au réseau local pour les téléchargements de couvertures." +msgid "" +"You are not allowed to access localhost or the local network for cover " +"uploads" +msgstr "" +"Vous n'êtes pas autorisé à accéder à localhost ou au réseau local pour les " +"téléversements de couvertures." #: cps/helper.py:859 msgid "Failed to create path for cover" @@ -830,11 +949,15 @@ msgstr "Impossible de créer le chemin pour la couverture" #: cps/helper.py:875 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é" +msgstr "" +"Le fichier couverture n'est pas un fichier image valide, ou ne peut pas être " +"stocké" #: cps/helper.py:886 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" -msgstr "Seuls les fichiers jpg/jpeg/png/webp/bmp sont supportés comme fichier de couverture" +msgstr "" +"Seuls les fichiers jpg/jpeg/png/webp/bmp sont supportés comme fichier de " +"couverture" #: cps/helper.py:898 msgid "Invalid cover file content" @@ -884,11 +1007,16 @@ msgstr "Erreur lors de l'exécution de Calibre" #: cps/helper.py:1137 cps/templates/admin.html:216 msgid "Queue all books for metadata backup" -msgstr "Mettre tous les livres en file d'attente pour la sauvegarde des métadonnées" +msgstr "" +"Mettre tous les livres en file d'attente pour la sauvegarde des métadonnées" #: cps/kobo_auth.py:92 -msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" -msgstr "Veuillez accéder à Calibre-Web depuis un autre serveur que localhost afin d'obtenir un api_endpoint valide pour votre appareil Kobo." +msgid "" +"Please access Calibre-Web from non localhost to get valid api_endpoint for " +"kobo device" +msgstr "" +"Veuillez accéder à Calibre-Web depuis un autre serveur que localhost afin " +"d'obtenir un api_endpoint valide pour votre appareil Kobo." #: cps/kobo_auth.py:118 msgid "Kobo Setup" @@ -897,12 +1025,12 @@ msgstr "Configuration Kobo" #: cps/oauth_bb.py:78 #, python-format msgid "Register with %(provider)s" -msgstr "Enregistrer avec %(provider)s" +msgstr "Créer un compte avec %(provider)s" #: cps/oauth_bb.py:139 cps/remotelogin.py:131 #, python-format msgid "Success! You are now logged in as: %(nickname)s" -msgstr "vous êtes maintenant connecté comme : '%(nickname)s'" +msgstr "Succès ! Vous êtes maintenant connecté comme : '%(nickname)s'" #: cps/oauth_bb.py:149 #, python-format @@ -934,7 +1062,8 @@ msgstr "Échec de la connexion avec GitHub." #: cps/oauth_bb.py:269 msgid "Failed to fetch user info from GitHub." -msgstr "Impossible d’obtenir les informations d’utilisateur à partir de GitHub." +msgstr "" +"Impossible d’obtenir les informations d’utilisateur à partir de GitHub." #: cps/oauth_bb.py:281 msgid "Failed to log in with Google." @@ -949,7 +1078,6 @@ msgid "GitHub Oauth error, please retry later." msgstr "Erreur Oauth GitHub, veuillez réessayer plus tard." #: cps/oauth_bb.py:338 -#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Erreur Oauth Github : {}" @@ -958,17 +1086,15 @@ msgid "Google Oauth error, please retry later." msgstr "Erreur Oauth Google, veuillez réessayer plus tard." #: cps/oauth_bb.py:362 -#, python-brace-format msgid "Google Oauth error: {}" msgstr "Erreur Oauth Google : {}" #: cps/opds.py:307 -#, python-brace-format msgid "{} Stars" msgstr "{} Étoiles" -#: cps/remotelogin.py:63 cps/templates/layout.html:68 -#: cps/templates/layout.html:103 cps/templates/login.html:4 +#: cps/remotelogin.py:63 cps/templates/layout.html:68 +#: cps/templates/layout.html:103 cps/templates/login.html:4 #: cps/templates/login.html:21 cps/web.py:1366 msgid "Login" msgstr "Connexion" @@ -983,7 +1109,7 @@ msgstr "Jeton expiré" #: cps/remotelogin.py:93 msgid "Success! Please return to your device" -msgstr "Réussite! Merci de vous tourner vers votre appareil" +msgstr "Succès ! Veuillez revenir à votre appareil." #: cps/render_template.py:41 cps/web.py:424 msgid "Books" @@ -999,16 +1125,16 @@ msgstr "Livres populaires" #: cps/render_template.py:46 msgid "Show Hot Books" -msgstr "Montrer les livres populaires" +msgstr "Afficher les livres populaires" #: cps/render_template.py:48 cps/render_template.py:53 msgid "Downloaded Books" msgstr "Livres téléchargés" -#: cps/render_template.py:50 cps/render_template.py:55 +#: cps/render_template.py:50 cps/render_template.py:55 #: cps/templates/user_table.html:167 msgid "Show Downloaded Books" -msgstr "Montrer les livres téléchargés" +msgstr "Afficher les livres téléchargés" #: cps/render_template.py:58 cps/templates/index.xml:36 cps/web.py:439 msgid "Top Rated Books" @@ -1016,18 +1142,18 @@ msgstr "Livres les mieux notés" #: cps/render_template.py:60 cps/templates/user_table.html:161 msgid "Show Top Rated Books" -msgstr "Montrer les livres les mieux notés" +msgstr "Afficher les livres les mieux notés" -#: cps/render_template.py:61 cps/templates/index.xml:63 +#: cps/render_template.py:61 cps/templates/index.xml:63 #: cps/templates/index.xml:67 cps/web.py:772 msgid "Read Books" msgstr "Livres lus" #: cps/render_template.py:63 msgid "Show Read and Unread" -msgstr "" +msgstr "Afficher les éléments lus et non lus" -#: cps/render_template.py:65 cps/templates/index.xml:70 +#: cps/render_template.py:65 cps/templates/index.xml:70 #: cps/templates/index.xml:74 cps/web.py:775 msgid "Unread Books" msgstr "Livres non-lus" @@ -1040,22 +1166,22 @@ msgstr "Afficher non-lus" msgid "Discover" msgstr "Découvrir" -#: cps/render_template.py:70 cps/templates/index.xml:58 +#: cps/render_template.py:70 cps/templates/index.xml:58 #: cps/templates/user_table.html:159 cps/templates/user_table.html:162 msgid "Show Random Books" -msgstr "Montrer des livres au hasard" +msgstr "Afficher des livres au hasard" -#: cps/render_template.py:71 cps/templates/book_table.html:93 +#: cps/render_template.py:71 cps/templates/book_table.html:93 #: cps/templates/index.xml:97 cps/web.py:1146 msgid "Categories" msgstr "Catégories" #: cps/render_template.py:73 cps/templates/user_table.html:158 msgid "Show Category Section" -msgstr "" +msgstr "Afficher la section Catégorie" -#: cps/render_template.py:74 cps/templates/book_edit.html:86 -#: cps/templates/book_table.html:94 cps/templates/index.xml:106 +#: cps/render_template.py:74 cps/templates/book_edit.html:86 +#: cps/templates/book_table.html:94 cps/templates/index.xml:106 #: cps/templates/search_form.html:70 cps/web.py:1036 cps/web.py:1048 msgid "Series" msgstr "Séries" @@ -1064,7 +1190,7 @@ msgstr "Séries" msgid "Show Series Section" msgstr "Afficher la Section Series" -#: cps/render_template.py:77 cps/templates/book_table.html:92 +#: cps/render_template.py:77 cps/templates/book_table.html:92 #: cps/templates/index.xml:79 msgid "Authors" msgstr "Auteurs" @@ -1073,17 +1199,17 @@ msgstr "Auteurs" msgid "Show Author Section" msgstr "Afficher la Section Auteur" -#: cps/render_template.py:81 cps/templates/book_table.html:98 +#: cps/render_template.py:81 cps/templates/book_table.html:98 #: cps/templates/index.xml:88 cps/web.py:1004 msgid "Publishers" msgstr "Éditeurs" #: cps/render_template.py:83 cps/templates/user_table.html:163 msgid "Show Publisher Section" -msgstr "Afficher le Section Editeur" +msgstr "Afficher la Section Editeur" -#: cps/render_template.py:84 cps/templates/book_table.html:96 -#: cps/templates/index.xml:115 cps/templates/search_form.html:108 +#: cps/render_template.py:84 cps/templates/book_table.html:96 +#: cps/templates/index.xml:115 cps/templates/search_form.html:108 #: cps/web.py:1118 msgid "Languages" msgstr "Langues" @@ -1094,7 +1220,7 @@ msgstr "Afficher la Section Langue" #: cps/render_template.py:88 cps/templates/index.xml:124 msgid "Ratings" -msgstr "Notes" +msgstr "Évaluations" #: cps/render_template.py:90 cps/templates/user_table.html:164 msgid "Show Ratings Section" @@ -1122,7 +1248,7 @@ msgstr "Liste des livres" #: cps/render_template.py:102 cps/templates/user_table.html:168 msgid "Show Books List" -msgstr "Montrer la liste des livres" +msgstr "Afficher la liste des livres" #: cps/search.py:201 msgid "Published after " @@ -1149,7 +1275,9 @@ msgstr "Statut de Lecture = '%(status)s'" #: cps/search.py:351 msgid "Error on search for custom columns, please restart Calibre-Web" -msgstr "Erreur lors de la recherche de colonnes personnalisées, veuillez redémarrer Calibre-Web" +msgstr "" +"Erreur lors de la recherche de colonnes personnalisées, veuillez redémarrer " +"Calibre-Web" #: cps/search.py:370 cps/search.py:402 cps/templates/layout.html:57 msgid "Advanced Search" @@ -1171,7 +1299,8 @@ msgstr "Ce livre est déjà sur l’étagère : %(shelfname)s" #: cps/shelf.py:77 #, python-format msgid "%(book_id)s is a invalid Book Id. Could not be added to Shelf" -msgstr "%(book_id)s est un Book Id invalide et n'a pas pu être ajouté à l'étagère." +msgstr "" +"%(book_id)s est un Book Id invalide et n'a pas pu être ajouté à l'étagère." #: cps/shelf.py:97 #, python-format @@ -1247,7 +1376,7 @@ msgstr "L’étagère %(title)s a été modifiée" #: cps/shelf.py:358 msgid "There was an error" -msgstr "Il y a eu une erreur" +msgstr "Une erreur est survenue." #: cps/shelf.py:380 #, python-format @@ -1266,9 +1395,11 @@ msgstr "Étagère : '%(name)s'" #: cps/shelf.py:487 msgid "Error opening shelf. Shelf does not exist or is not accessible" -msgstr "Erreur à l’ouverture de l’étagère. Elle n’existe plus ou n’est plus accessible" +msgstr "" +"Erreur à l’ouverture de l’étagère. Elle n’existe plus ou n’est plus " +"accessible" -#: cps/tasks_status.py:47 cps/templates/layout.html:90 +#: cps/tasks_status.py:47 cps/templates/layout.html:90 #: cps/templates/tasks.html:7 msgid "Tasks" msgstr "Tâches" @@ -1307,11 +1438,16 @@ msgstr "Données inattendues lors de la lecture des informations de mise à jour #: cps/updater.py:440 cps/updater.py:552 msgid "No update available. You already have the latest version installed" -msgstr "Aucune mise à jour disponible. Vous avez déjà la dernière version installée" +msgstr "" +"Aucune mise à jour disponible. Vous avez déjà la dernière version installée" #: cps/updater.py:459 -msgid "A new update is available. Click on the button below to update to the latest version." -msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous pour charger la dernière version." +msgid "" +"A new update is available. Click on the button below to update to the latest " +"version." +msgstr "" +"Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous " +"pour installer la dernière version." #: cps/updater.py:476 msgid "Could not fetch update information" @@ -1323,8 +1459,12 @@ msgstr "Téléchargez la dernière version en cliquant sur le bouton ci-dessous. #: cps/updater.py:495 cps/updater.py:509 cps/updater.py:520 #, python-format -msgid "A new update is available. Click on the button below to update to version: %(version)s" -msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous pour charger la version: %(version)s" +msgid "" +"A new update is available. Click on the button below to update to version: " +"%(version)s" +msgstr "" +"Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous " +"pour installer la version: %(version)s" #: cps/updater.py:538 msgid "No release information available" @@ -1360,7 +1500,7 @@ msgstr "Séries : %(serie)s" #: cps/web.py:629 msgid "Rating: None" -msgstr "Note: Aucune" +msgstr "Évaluation: Aucune" #: cps/web.py:638 #, python-format @@ -1401,43 +1541,54 @@ msgstr "Veuillez d'abord configurer les paramètres de messagerie SMTP..." #: cps/web.py:1270 #, python-format msgid "Success! Book queued for sending to %(eReadermail)s" -msgstr "Le livre a été mis en file de traitement avec succès pour un envoi vers %(eReadermail)s" +msgstr "" +"Succès ! Le livre a été mis en file d'attente pour l'envoi vers " +"%(eReadermail)s" #: cps/web.py:1273 #, python-format msgid "Oops! There was an error sending book: %(res)s" -msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s" +msgstr "Oups ! Une erreur est survenue lors de l'envoi du livre : %(res)s" #: cps/web.py:1275 msgid "Oops! Please update your profile with a valid eReader Email." -msgstr "Oups ! Veuillez mettre à jour votre profil avec une adresse e-mail valide pour votre liseuse." +msgstr "" +"Oups ! Veuillez mettre à jour votre profil avec une adresse e-mail valide " +"pour votre liseuse." #: cps/web.py:1291 msgid "Please wait one minute to register next user" -msgstr "Veuillez patienter une minute pour enregistrer le prochain utilisateur." +msgstr "" +"Veuillez patienter une minute pour enregistrer le prochain utilisateur." -#: cps/templates/layout.html:69 cps/templates/layout.html:104 -#: cps/templates/login.html:27 cps/templates/register.html:17 cps/web.py:1292 -#: cps/web.py:1296 cps/web.py:1301 cps/web.py:1305 cps/web.py:1311 +#: cps/templates/layout.html:69 cps/templates/layout.html:104 +#: cps/templates/login.html:27 cps/templates/register.html:17 cps/web.py:1292 +#: cps/web.py:1296 cps/web.py:1301 cps/web.py:1305 cps/web.py:1311 #: cps/web.py:1331 cps/web.py:1335 cps/web.py:1348 cps/web.py:1351 msgid "Register" msgstr "Créer un compte" #: cps/web.py:1295 cps/web.py:1398 msgid "Connection error to limiter backend, please contact your administrator" -msgstr "Erreur de connexion au backend du limiteur, veuillez contacter votre administrateur." +msgstr "" +"Erreur de connexion au backend du limiteur, veuillez contacter votre " +"administrateur." #: cps/web.py:1300 cps/web.py:1347 -msgid "Oops! Email server is not configured, please contact your administrator." -msgstr "Le serveur de courriel n'est pas configuré, veuillez contacter votre administrateur!" +msgid "" +"Oops! Email server is not configured, please contact your administrator." +msgstr "" +"Oups ! Le serveur de courriel n'est pas configuré, veuillez contacter votre " +"administrateur!" #: cps/web.py:1333 msgid "Oops! Your Email is not allowed." -msgstr "Votre adresse de courriel n’est pas autorisé pour une inscription" +msgstr "" +"Oups ! Votre adresse de courriel n’est pas autorisé pour une inscription" #: cps/web.py:1336 msgid "Success! Confirmation Email has been sent." -msgstr "Le courriel de confirmation a été envoyé à votre adresse." +msgstr "Succès ! Le courriel de confirmation a été envoyé à votre adresse." #: cps/web.py:1381 cps/web.py:1404 msgid "Cannot activate LDAP authentication" @@ -1454,8 +1605,12 @@ msgstr "vous êtes maintenant connecté sous le nom: '%(nickname)s'" #: cps/web.py:1420 #, python-format -msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" -msgstr "Connexion de secours en tant que : '%(nickname)s', serveur LDAP inaccessible ou utilisateur inconnu" +msgid "" +"Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not " +"known" +msgstr "" +"Connexion de secours en tant que : '%(nickname)s', serveur LDAP inaccessible " +"ou utilisateur inconnu" #: cps/web.py:1425 #, python-format @@ -1476,7 +1631,9 @@ msgstr "Une erreur inconnue s'est produite. Veuillez réessayer plus tard." #: cps/web.py:1442 msgid "Please enter valid username to reset password" -msgstr "Veuillez saisir un nom d'utilisateur valide pour réinitialiser votre mot de passe." +msgstr "" +"Veuillez saisir un nom d'utilisateur valide pour réinitialiser votre mot de " +"passe." #: cps/web.py:1450 #, python-format @@ -1490,7 +1647,7 @@ msgstr "Profil de %(name)s" #: cps/web.py:1531 msgid "Success! Profile Updated" -msgstr "Succès ! Profil mis à jour" +msgstr "Succès ! Profil mis à jour." #: cps/web.py:1535 msgid "Oops! An account already exists for this Email." @@ -1531,7 +1688,8 @@ msgstr "La commande Kepubify-converter a échouée : %(error)s" #: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" -msgstr "Fichier converti non trouvé ou plus d'un fichier dans le chemin %(folder)s" +msgstr "" +"Fichier converti non trouvé ou plus d'un fichier dans le chemin %(folder)s" #: cps/tasks/convert.py:291 cps/tasks/convert.py:342 #, python-format @@ -1549,7 +1707,7 @@ msgstr "Convertir" #: cps/tasks/database.py:26 msgid "Reconnecting Calibre database" -msgstr "Reconnexion a la base de donée Calibre" +msgstr "Reconnexion a la base de données Calibre" #: cps/tasks/mail.py:283 msgid "E-mail" @@ -1564,13 +1722,12 @@ msgstr "Sauvegarde des métadonnées" msgid "Generated %(count)s cover thumbnails" msgstr "Généré %(count)s vignettes de couverture" -#: cps/tasks/thumbnail.py:233 cps/tasks/thumbnail.py:448 +#: cps/tasks/thumbnail.py:233 cps/tasks/thumbnail.py:448 #: cps/tasks/thumbnail.py:518 msgid "Cover Thumbnails" msgstr "Vignettes de couverture" #: cps/tasks/thumbnail.py:294 -#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Miniatures de la série {0} générées" @@ -1578,7 +1735,7 @@ msgstr "Miniatures de la série {0} générées" msgid "Clearing cover thumbnail cache" msgstr "Effacer le cache des vignettes" -#: cps/tasks/upload.py:39 cps/templates/admin.html:20 +#: cps/tasks/upload.py:39 cps/templates/admin.html:20 #: cps/templates/layout.html:82 cps/templates/user_table.html:145 msgid "Upload" msgstr "Téléverser" @@ -1587,13 +1744,13 @@ msgstr "Téléverser" msgid "Users" msgstr "Liste des utilisateurs" -#: cps/templates/admin.html:13 cps/templates/login.html:9 -#: cps/templates/login.html:10 cps/templates/register.html:9 +#: cps/templates/admin.html:13 cps/templates/login.html:9 +#: cps/templates/login.html:10 cps/templates/register.html:9 #: cps/templates/user_edit.html:10 cps/templates/user_table.html:134 msgid "Username" msgstr "Nom d'utilisateur" -#: cps/templates/admin.html:14 cps/templates/register.html:14 +#: cps/templates/admin.html:14 cps/templates/register.html:14 #: cps/templates/user_edit.html:15 cps/templates/user_table.html:135 msgid "Email" msgstr "Adresse de courriel" @@ -1602,18 +1759,18 @@ msgstr "Adresse de courriel" msgid "Send to eReader Email" msgstr "Envoyer a l'email de la liseuse" -#: cps/templates/admin.html:17 cps/templates/layout.html:93 +#: cps/templates/admin.html:17 cps/templates/layout.html:93 #: cps/templates/user_table.html:143 msgid "Admin" msgstr "Administration" -#: cps/templates/admin.html:18 cps/templates/login.html:13 +#: cps/templates/admin.html:18 cps/templates/login.html:13 #: cps/templates/login.html:14 cps/templates/user_edit.html:23 msgid "Password" msgstr "Mot de passe" -#: cps/templates/admin.html:22 cps/templates/detail.html:28 -#: cps/templates/detail.html:41 cps/templates/shelf.html:8 +#: cps/templates/admin.html:22 cps/templates/detail.html:28 +#: cps/templates/detail.html:41 cps/templates/shelf.html:8 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Télécharger" @@ -1622,14 +1779,14 @@ msgstr "Télécharger" msgid "View Books" msgstr "Afficher les livres" -#: cps/templates/admin.html:24 cps/templates/book_table.html:315 +#: cps/templates/admin.html:24 cps/templates/book_table.html:315 #: cps/templates/user_table.html:131 cps/templates/user_table.html:148 msgid "Edit" msgstr "Éditer" -#: cps/templates/admin.html:25 cps/templates/book_edit.html:17 -#: cps/templates/book_table.html:131 cps/templates/book_table.html:180 -#: cps/templates/modal_dialogs.html:62 cps/templates/modal_dialogs.html:115 +#: cps/templates/admin.html:25 cps/templates/book_edit.html:17 +#: cps/templates/book_table.html:131 cps/templates/book_table.html:180 +#: cps/templates/modal_dialogs.html:62 cps/templates/modal_dialogs.html:115 #: cps/templates/user_edit.html:67 cps/templates/user_table.html:149 msgid "Delete" msgstr "Supprimer" @@ -1660,9 +1817,9 @@ msgstr "Chiffrement" #: cps/templates/admin.html:79 cps/templates/email_edit.html:47 msgid "SMTP Login" -msgstr "Compte utilisateur SMTP" +msgstr "Nom d'utilisateur SMTP" -#: cps/templates/admin.html:83 cps/templates/admin.html:94 +#: cps/templates/admin.html:83 cps/templates/admin.html:94 #: cps/templates/email_edit.html:55 msgid "From Email" msgstr "Expéditeur des courriels" @@ -1693,7 +1850,7 @@ msgstr "Port" #: cps/templates/admin.html:122 msgid "External Port" -msgstr "Port exeterne" +msgstr "Port externe" #: cps/templates/admin.html:129 cps/templates/config_view_edit.html:28 msgid "Books per Page" @@ -1739,7 +1896,7 @@ msgstr "Éditer la configuration de l’interface utilisateur" msgid "Scheduled Tasks" msgstr "Tâches planifiées" -#: cps/templates/admin.html:170 cps/templates/schedule_edit.html:12 +#: cps/templates/admin.html:170 cps/templates/schedule_edit.html:12 #: cps/templates/tasks.html:18 msgid "Start Time" msgstr "Heure de début" @@ -1756,7 +1913,7 @@ msgstr "Générer des vignettes" msgid "Generate series cover thumbnails" msgstr "Générer des vignettes de couverture de série" -#: cps/templates/admin.html:186 cps/templates/admin.html:208 +#: cps/templates/admin.html:186 cps/templates/admin.html:208 #: cps/templates/schedule_edit.html:37 msgid "Reconnect Calibre Database" msgstr "Reconnecter la base de données Calibre" @@ -1815,30 +1972,30 @@ msgstr "Effectuer la mise à jour" #: cps/templates/admin.html:253 msgid "Are you sure you want to restart?" -msgstr "Voulez-vous vraiment redémarrer Calibre-Web?" +msgstr "Êtes-vous sûr de vouloir redémarrer Calibre-Web?" -#: cps/templates/admin.html:258 cps/templates/admin.html:272 +#: cps/templates/admin.html:258 cps/templates/admin.html:272 #: cps/templates/admin.html:292 cps/templates/config_db.html:82 msgid "OK" msgstr "OK" -#: cps/templates/admin.html:259 cps/templates/admin.html:273 -#: cps/templates/book_edit.html:220 cps/templates/book_table.html:162 -#: cps/templates/book_table.html:181 cps/templates/book_table.html:201 -#: cps/templates/book_table.html:221 cps/templates/book_table.html:241 -#: cps/templates/book_table.html:261 cps/templates/book_table.html:316 -#: cps/templates/config_db.html:66 cps/templates/config_edit.html:431 -#: cps/templates/config_view_edit.html:175 cps/templates/detail.html:350 -#: cps/templates/modal_dialogs.html:63 cps/templates/modal_dialogs.html:98 -#: cps/templates/modal_dialogs.html:116 cps/templates/modal_dialogs.html:134 -#: cps/templates/schedule_edit.html:45 cps/templates/shelf_edit.html:27 +#: cps/templates/admin.html:259 cps/templates/admin.html:273 +#: cps/templates/book_edit.html:220 cps/templates/book_table.html:162 +#: cps/templates/book_table.html:181 cps/templates/book_table.html:201 +#: cps/templates/book_table.html:221 cps/templates/book_table.html:241 +#: cps/templates/book_table.html:261 cps/templates/book_table.html:316 +#: cps/templates/config_db.html:66 cps/templates/config_edit.html:431 +#: cps/templates/config_view_edit.html:175 cps/templates/detail.html:350 +#: cps/templates/modal_dialogs.html:63 cps/templates/modal_dialogs.html:98 +#: cps/templates/modal_dialogs.html:116 cps/templates/modal_dialogs.html:134 +#: cps/templates/schedule_edit.html:45 cps/templates/shelf_edit.html:27 #: cps/templates/tasks.html:47 cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Annuler" #: cps/templates/admin.html:271 msgid "Are you sure you want to shutdown?" -msgstr "Voulez-vous vraiment arrêter Calibre-Web?" +msgstr "Êtes-vous sûr de vouloir arrêter Calibre-Web?" #: cps/templates/admin.html:283 msgid "Updating, please do not reload this page" @@ -1852,38 +2009,38 @@ msgstr "via" msgid "In Library" msgstr "Dans la librairie" -#: cps/templates/author.html:26 cps/templates/index.html:74 +#: cps/templates/author.html:26 cps/templates/index.html:74 #: cps/templates/search.html:31 cps/templates/shelf.html:20 msgid "Sort according to book date, newest first" msgstr "Trier en fonction de la date du livre, le plus récent en premier" -#: cps/templates/author.html:27 cps/templates/index.html:75 +#: cps/templates/author.html:27 cps/templates/index.html:75 #: cps/templates/search.html:32 cps/templates/shelf.html:21 msgid "Sort according to book date, oldest first" msgstr "Trier en fonction de la date du livre, le plus ancien en premier" -#: cps/templates/author.html:28 cps/templates/index.html:76 +#: cps/templates/author.html:28 cps/templates/index.html:76 #: cps/templates/search.html:33 cps/templates/shelf.html:22 msgid "Sort title in alphabetical order" msgstr "Trier les titres dans l’ordre alphabétique" -#: cps/templates/author.html:29 cps/templates/index.html:77 +#: cps/templates/author.html:29 cps/templates/index.html:77 #: cps/templates/search.html:34 cps/templates/shelf.html:23 msgid "Sort title in reverse alphabetical order" msgstr "Trier le titre dans l’ordre alphabétique inverse" -#: cps/templates/author.html:30 cps/templates/index.html:80 +#: cps/templates/author.html:30 cps/templates/index.html:80 #: cps/templates/search.html:37 cps/templates/shelf.html:26 msgid "Sort according to publishing date, newest first" msgstr "Trier en fonction de la date de publication, le plus récent en premier" -#: cps/templates/author.html:31 cps/templates/index.html:81 +#: cps/templates/author.html:31 cps/templates/index.html:81 #: cps/templates/search.html:38 cps/templates/shelf.html:27 msgid "Sort according to publishing date, oldest first" msgstr "Trier en fonction de la date de publication, le plus ancien en premier" -#: cps/templates/author.html:56 cps/templates/author.html:113 -#: cps/templates/index.html:30 cps/templates/index.html:113 +#: cps/templates/author.html:56 cps/templates/author.html:113 +#: cps/templates/index.html:30 cps/templates/index.html:113 #: cps/templates/search.html:67 cps/templates/shelf.html:58 msgid "reduce" msgstr "réduire" @@ -1892,31 +2049,31 @@ msgstr "réduire" msgid "More by" msgstr "Plus de" -#: cps/templates/basic_detail.html:34 cps/templates/detail.html:158 +#: cps/templates/basic_detail.html:34 cps/templates/detail.html:158 #: cps/templates/listenmp3.html:62 #, python-format msgid "Book %(index)s of %(range)s" msgstr "Livre %(index)s sur %(range)s" -#: cps/templates/basic_detail.html:41 cps/templates/book_edit.html:106 -#: cps/templates/detail.html:165 cps/templates/listenmp3.html:69 +#: cps/templates/basic_detail.html:41 cps/templates/book_edit.html:106 +#: cps/templates/detail.html:165 cps/templates/listenmp3.html:69 #: cps/templates/user_edit.html:33 msgid "Language" msgstr "Langue" -#: cps/templates/basic_detail.html:61 cps/templates/book_edit.html:102 -#: cps/templates/book_edit.html:279 cps/templates/book_edit.html:296 -#: cps/templates/detail.html:200 cps/templates/listenmp3.html:102 +#: cps/templates/basic_detail.html:61 cps/templates/book_edit.html:102 +#: cps/templates/book_edit.html:279 cps/templates/book_edit.html:296 +#: cps/templates/detail.html:200 cps/templates/listenmp3.html:102 #: cps/templates/search_form.html:16 msgid "Publisher" msgstr "Éditeur" -#: cps/templates/basic_detail.html:70 cps/templates/detail.html:209 +#: cps/templates/basic_detail.html:70 cps/templates/detail.html:209 #: cps/templates/listenmp3.html:111 msgid "Published" msgstr "Publié" -#: cps/templates/basic_detail.html:76 cps/templates/detail.html:286 +#: cps/templates/basic_detail.html:76 cps/templates/detail.html:286 #: cps/templates/listenmp3.html:177 msgid "Description:" msgstr "Description :" @@ -1925,7 +2082,7 @@ msgstr "Description :" msgid "Previous" msgstr "Précédent" -#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22 +#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22 #: cps/templates/layout.html:187 msgid "Next" msgstr "Suivant" @@ -1934,7 +2091,7 @@ msgstr "Suivant" msgid "No Results Found" msgstr "Aucun résultat trouvé" -#: cps/templates/basic_layout.html:17 cps/templates/layout.html:26 +#: cps/templates/basic_layout.html:17 cps/templates/layout.html:26 #: cps/templates/login.html:30 msgid "Home" msgstr "Accueil" @@ -1943,7 +2100,7 @@ msgstr "Accueil" msgid "Search Library" msgstr "Chercher dans librairie" -#: cps/templates/basic_layout.html:29 cps/templates/layout.html:72 +#: cps/templates/basic_layout.html:29 cps/templates/layout.html:72 #: cps/templates/layout.html:98 msgid "Logout" msgstr "Déconnexion" @@ -1980,13 +2137,13 @@ msgstr "Convertir vers :" msgid "Convert book" msgstr "Convertir le livre" -#: cps/templates/book_edit.html:53 cps/templates/layout.html:79 +#: cps/templates/book_edit.html:53 cps/templates/layout.html:79 #: cps/templates/layout.html:136 msgid "Uploading..." msgstr "Téléversement en cours..." -#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257 -#: cps/templates/layout.html:79 cps/templates/layout.html:203 +#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257 +#: cps/templates/layout.html:79 cps/templates/layout.html:203 #: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163 msgid "Close" msgstr "Fermer" @@ -2007,7 +2164,7 @@ msgstr "Format du fichier téléversé" msgid "Book Title" msgstr "Titre du livre" -#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:277 +#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:277 #: cps/templates/book_edit.html:295 cps/templates/search_form.html:12 msgid "Author" msgstr "Auteur" @@ -2028,7 +2185,7 @@ msgstr "Date de publication" msgid "Rating" msgstr "Évaluation" -#: cps/templates/book_edit.html:114 cps/templates/book_edit.html:282 +#: cps/templates/book_edit.html:114 cps/templates/book_edit.html:282 #: cps/templates/book_edit.html:297 cps/templates/search_form.html:154 msgid "Description" msgstr "Description" @@ -2045,7 +2202,7 @@ msgstr "Type d'identifiant" msgid "Identifier Value" msgstr "Valeur d'identifiant" -#: cps/templates/book_edit.html:124 cps/templates/book_edit.html:308 +#: cps/templates/book_edit.html:124 cps/templates/book_edit.html:308 #: cps/templates/user_table.html:24 msgid "Remove" msgstr "Supprimer" @@ -2055,35 +2212,38 @@ msgid "Add Identifier" msgstr "Ajouter un identifiant" #: cps/templates/book_edit.html:133 -msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" -msgstr "Obtenir la couverture à partir d'une URL (JPEG - l'image sera téléchargée et sauvegardée dans la base de données)" +msgid "" +"Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" +msgstr "" +"Obtenir la couverture à partir d'une URL (JPEG - l'image sera téléchargée et " +"sauvegardée dans la base de données)" #: cps/templates/book_edit.html:137 msgid "Upload Cover from Local Disk" msgstr "Téléverser la couverture depuis un fichier en local" -#: cps/templates/book_edit.html:149 cps/templates/search_form.html:46 +#: cps/templates/book_edit.html:149 cps/templates/search_form.html:46 #: cps/templates/search_form.html:167 msgid "Yes" msgstr "Oui" -#: cps/templates/book_edit.html:150 cps/templates/search_form.html:47 +#: cps/templates/book_edit.html:150 cps/templates/search_form.html:47 #: cps/templates/search_form.html:168 msgid "No" msgstr "Non" #: cps/templates/book_edit.html:215 msgid "View Book on Save" -msgstr "Voir le livre lors de la sauvegarde" +msgstr "Afficher le livre lors de l'enregistrement" #: cps/templates/book_edit.html:218 cps/templates/book_edit.html:236 msgid "Fetch Metadata" msgstr "Obtenir les métadonnées" -#: cps/templates/book_edit.html:219 cps/templates/config_db.html:65 -#: cps/templates/config_edit.html:430 cps/templates/config_view_edit.html:174 -#: cps/templates/email_edit.html:65 cps/templates/schedule_edit.html:44 -#: cps/templates/shelf_edit.html:25 cps/templates/shelf_order.html:41 +#: cps/templates/book_edit.html:219 cps/templates/config_db.html:65 +#: cps/templates/config_edit.html:430 cps/templates/config_view_edit.html:174 +#: cps/templates/email_edit.html:65 cps/templates/schedule_edit.html:44 +#: cps/templates/shelf_edit.html:25 cps/templates/shelf_order.html:41 #: cps/templates/user_edit.html:142 msgid "Save" msgstr "Sauvegarder" @@ -2098,7 +2258,8 @@ msgstr "Mot-clé de recherche" #: cps/templates/book_edit.html:246 msgid "Click the cover to load metadata to the form" -msgstr "Cliquer sur la couverture pour importer les métadonnées dans le formulaire" +msgstr "" +"Cliquer sur la couverture pour importer les métadonnées dans le formulaire" #: cps/templates/book_edit.html:253 cps/templates/book_edit.html:292 msgid "Loading..." @@ -2116,8 +2277,8 @@ msgstr "Erreur lors de la recherche!" msgid "No Result(s) found! Please try another keyword." msgstr "Aucun résultat. Veuillez essayer avec un nouveau mot clé." -#: cps/templates/book_table.html:12 cps/templates/book_table.html:95 -#: cps/templates/user_table.html:14 cps/templates/user_table.html:77 +#: cps/templates/book_table.html:12 cps/templates/book_table.html:95 +#: cps/templates/user_table.html:14 cps/templates/user_table.html:77 #: cps/templates/user_table.html:100 msgid "This Field is Required" msgstr "Ce champ est requis" @@ -2166,7 +2327,7 @@ msgstr "Mettre à jour automatiquement le tri des auteurs" msgid "Enter Title" msgstr "Insérer le titre" -#: cps/templates/book_table.html:89 cps/templates/config_view_edit.html:24 +#: cps/templates/book_table.html:89 cps/templates/config_view_edit.html:24 #: cps/templates/shelf_edit.html:8 msgid "Title" msgstr "Titre" @@ -2231,9 +2392,9 @@ msgstr "Statut d'archive" msgid "Read Status" msgstr "Status de lecture" -#: cps/templates/book_table.html:106 cps/templates/book_table.html:108 -#: cps/templates/book_table.html:110 cps/templates/book_table.html:112 -#: cps/templates/book_table.html:116 cps/templates/book_table.html:118 +#: cps/templates/book_table.html:106 cps/templates/book_table.html:108 +#: cps/templates/book_table.html:110 cps/templates/book_table.html:112 +#: cps/templates/book_table.html:116 cps/templates/book_table.html:118 #: cps/templates/book_table.html:122 msgid "Enter " msgstr "Entrer" @@ -2242,9 +2403,9 @@ msgstr "Entrer" msgid "Delete selected books" msgstr "Supprimer les livres sélectionnés" -#: cps/templates/book_table.html:148 cps/templates/book_table.html:172 -#: cps/templates/book_table.html:192 cps/templates/book_table.html:212 -#: cps/templates/book_table.html:232 cps/templates/book_table.html:252 +#: cps/templates/book_table.html:148 cps/templates/book_table.html:172 +#: cps/templates/book_table.html:192 cps/templates/book_table.html:212 +#: cps/templates/book_table.html:232 cps/templates/book_table.html:252 #: cps/templates/modal_dialogs.html:46 cps/templates/tasks.html:37 msgid "Are you really sure?" msgstr "Êtes-vous vraiment sûr?" @@ -2303,7 +2464,9 @@ msgstr "Éditer les métadonnées" #: cps/templates/book_table.html:275 msgid "Edit the fields you want changed. Blank fields will be ignored:" -msgstr "Modifiez les champs que vous souhaitez changer. Les champs vides seront ignorés :" +msgstr "" +"Modifiez les champs que vous souhaitez changer. Les champs vides seront " +"ignorés :" #: cps/templates/config_db.html:12 msgid "Location of Calibre Database" @@ -2335,7 +2498,9 @@ msgstr "Révoquer" #: cps/templates/config_db.html:80 msgid "New db location is invalid, please enter valid path" -msgstr "Le nouvel emplacement de la base de données n'est pas valide, veuillez saisir un chemin d'accès valide." +msgstr "" +"Le nouvel emplacement de la base de données n'est pas valide, veuillez " +"saisir un chemin d'accès valide." #: cps/templates/config_edit.html:18 msgid "Server Configuration" @@ -2347,11 +2512,15 @@ msgstr "Numéro de port du serveur" #: cps/templates/config_edit.html:28 msgid "SSL certfile location (leave it empty for non-SSL Servers)" -msgstr "Emplacement du fichier certificat SSL (laisser vide pour les serveurs non SSL)" +msgstr "" +"Emplacement du fichier certificat SSL (laisser vide pour les serveurs non " +"SSL)" #: cps/templates/config_edit.html:35 msgid "SSL Keyfile location (leave it empty for non-SSL Servers)" -msgstr "Emplacement du fichier Keyfile de chiffrement SSL (laisser vide pour les serveurs non SSL)" +msgstr "" +"Emplacement du fichier Keyfile de chiffrement SSL (laisser vide pour les " +"serveurs non SSL)" #: cps/templates/config_edit.html:43 msgid "Update Channel" @@ -2383,7 +2552,8 @@ msgstr "Activer le journal des accès" #: cps/templates/config_edit.html:85 msgid "Location and name of access logfile (access.log for no entry)" -msgstr "Emplacement et nom du fichier journal d’accès (access.log pour aucune entrée)" +msgstr "" +"Emplacement et nom du fichier journal d’accès (access.log pour aucune entrée)" #: cps/templates/config_edit.html:96 msgid "Feature Configuration" @@ -2391,11 +2561,17 @@ msgstr "Configuration des options" #: cps/templates/config_edit.html:104 msgid "Convert non-English characters in title and author while saving to disk" -msgstr "Convertir les caractères non-anglais des titre et auteur lors de l’enregistrement sur le disque" +msgstr "" +"Convertir les caractères non-anglais des titre et auteur lors de " +"l’enregistrement sur le disque" #: cps/templates/config_edit.html:108 -msgid "Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/Kepubify binaries)" -msgstr "Intégrer les métadonnées au fichier ebook lors du téléchargement/de la conversion/de l'envoi par e-mail (nécessite les binaires Calibre/Kepubify)" +msgid "" +"Embed Metadata to Ebook File on Download/Conversion/e-mail (needs " +"Calibre/Kepubify binaries)" +msgstr "" +"Intégrer les métadonnées au fichier ebook lors du téléchargement/de la " +"conversion/de l'envoi par e-mail (nécessite les binaires Calibre/Kepubify)" #: cps/templates/config_edit.html:112 msgid "Enable Uploads" @@ -2403,11 +2579,13 @@ msgstr "Autoriser le téléversement de fichier" #: cps/templates/config_edit.html:112 msgid "(Please ensure that users also have upload permissions)" -msgstr "(Svp, vérifiez que les utilisateurs ont aussi les droits de téléchargement vers le serveur)" +msgstr "" +"(Veuillez vérifiez que les utilisateurs ont aussi les droits de " +"téléversement)" #: cps/templates/config_edit.html:116 msgid "Allowed Upload Fileformats" -msgstr "Formats de fichiers à télécharger autorisés" +msgstr "Formats de fichiers autorisés pour le téléversement" #: cps/templates/config_edit.html:122 msgid "Enable Anonymous Browsing" @@ -2490,16 +2668,24 @@ msgid "SSL" msgstr "SSL" #: cps/templates/config_edit.html:213 -msgid "LDAP CACertificate Path (Only needed for Client Certificate Authentication)" -msgstr "Chemin d’accès LDAP CACertificat (uniquement requis pour l’authentification par certificat client)" +msgid "" +"LDAP CACertificate Path (Only needed for Client Certificate Authentication)" +msgstr "" +"Chemin d’accès LDAP CACertificat (uniquement requis pour l’authentification " +"par certificat client)" #: cps/templates/config_edit.html:220 -msgid "LDAP Certificate Path (Only needed for Client Certificate Authentication)" -msgstr "Chemin d’accès LDAP CACertificat (requis uniquement pour l’authentification par certificat client)" +msgid "" +"LDAP Certificate Path (Only needed for Client Certificate Authentication)" +msgstr "" +"Chemin d’accès LDAP CACertificat (requis uniquement pour l’authentification " +"par certificat client)" #: cps/templates/config_edit.html:227 msgid "LDAP Keyfile Path (Only needed for Client Certificate Authentication)" -msgstr "Chemin d’accès au fichier de clés LDAP (requis uniquement pour l’authentification par certificat client)" +msgstr "" +"Chemin d’accès au fichier de clés LDAP (requis uniquement pour " +"l’authentification par certificat client)" #: cps/templates/config_edit.html:236 msgid "LDAP Authentication" @@ -2586,7 +2772,7 @@ msgstr "Client secret OAuth %(provider)s" #: cps/templates/config_edit.html:323 msgid "External binaries" -msgstr "Configuration des outils de conversion externes" +msgstr "Binaires externes" #: cps/templates/config_edit.html:329 msgid "Path to Calibre Binaries" @@ -2622,7 +2808,9 @@ msgstr "Options pour le backend du limiteur" #: cps/templates/config_edit.html:386 msgid "Check if file extensions matches file content on upload" -msgstr "Vérifier si les extensions de fichiers sont cohérentes avec le contenu lors de l'upload" +msgstr "" +"Vérifier si les extensions de fichiers sont cohérentes avec le contenu lors " +"du téléversement" #: cps/templates/config_edit.html:389 msgid "Session protection" @@ -2658,7 +2846,9 @@ msgstr "Imposer les caractères majuscules" #: cps/templates/config_edit.html:418 msgid "Enforce characters (needed For Chinese/Japanese/Korean Characters)" -msgstr "Imposer les caractères (nécessaire pour les caractères chinois/japonais/coréens)" +msgstr "" +"Imposer les caractères (nécessaire pour les caractères " +"chinois/japonais/coréens)" #: cps/templates/config_edit.html:422 msgid "Enforce special characters" @@ -2674,7 +2864,8 @@ msgstr "Nombre de livres choisis au hasard à afficher" #: cps/templates/config_view_edit.html:36 msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" -msgstr "Nombre d’auteurs à afficher avant de masquer (0=désactiver le masquage)" +msgstr "" +"Nombre d’auteurs à afficher avant de masquer (0=désactiver le masquage)" #: cps/templates/config_view_edit.html:40 cps/templates/readcbr.html:101 msgid "Theme" @@ -2698,7 +2889,7 @@ msgstr "Lier le statut lu/non lu à la colonne équivalente dans Calibre" #: cps/templates/config_view_edit.html:60 msgid "View Restrictions based on Calibre column" -msgstr "Visualiser les restrictions basées sur la colonne Calibre" +msgstr "Afficher les restrictions basées sur la colonne Calibre" #: cps/templates/config_view_edit.html:69 msgid "Regular Expression for Title Sorting" @@ -2714,7 +2905,7 @@ msgstr "Utilisateur admin" #: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" -msgstr "Permettre les téléchargements" +msgstr "Autoriser les téléchargements" #: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" @@ -2722,19 +2913,19 @@ msgstr "Autoriser le visionneur de livres" #: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" -msgstr "Permettre le téléversement de fichiers" +msgstr "Autoriser les téléversements" #: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" -msgstr "Permettre l'édition" +msgstr "Autoriser l'édition" #: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" -msgstr "Permettre la suppression de livres" +msgstr "Autoriser la suppression de livres" #: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" -msgstr "Permettre le changement de mot de passe" +msgstr "Autoriser le changement de mot de passe" #: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" @@ -2752,10 +2943,10 @@ msgstr "Langue par défaut visible des livres" msgid "Default Visibilities for New Users" msgstr "Mode de visualisation par défaut pour les nouveaux utilisateurs" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:84 #: cps/templates/user_table.html:154 msgid "Show Random Books in Detail View" -msgstr "Montrer aléatoirement des livres dans la vue détaillée" +msgstr "Afficher aléatoirement des livres dans la vue détaillée" #: cps/templates/config_view_edit.html:166 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" @@ -2798,17 +2989,21 @@ msgid "Add to archive" msgstr "Ajouter comme archive" #: cps/templates/detail.html:275 -msgid "Mark Book as archived or not, to hide it in Calibre-Web and delete it from Kobo Reader" -msgstr "Marquer le livre comme archivé ou non, pour le masquer dans Calibre-Web et le supprimer de Kobo Reader." +msgid "" +"Mark Book as archived or not, to hide it in Calibre-Web and delete it from " +"Kobo Reader" +msgstr "" +"Marquer le livre comme archivé ou non, pour le masquer dans Calibre-Web et " +"le supprimer de Kobo Reader." -#: cps/templates/detail.html:301 cps/templates/listenmp3.html:190 +#: cps/templates/detail.html:301 cps/templates/listenmp3.html:190 #: cps/templates/search.html:16 msgid "Add to shelf" msgstr "Ajouter à l'étagère" -#: cps/templates/detail.html:313 cps/templates/detail.html:332 -#: cps/templates/feed.xml:131 cps/templates/layout.html:156 -#: cps/templates/listenmp3.html:201 cps/templates/listenmp3.html:218 +#: cps/templates/detail.html:313 cps/templates/detail.html:332 +#: cps/templates/feed.xml:131 cps/templates/layout.html:156 +#: cps/templates/listenmp3.html:201 cps/templates/listenmp3.html:218 #: cps/templates/search.html:22 msgid "(Public)" msgstr "(Public)" @@ -2853,7 +3048,7 @@ msgstr "Limite de la taille de la pièce jointe" msgid "Save and Send Test Email" msgstr "Enregistrer et envoyer un e-mail de test" -#: cps/templates/email_edit.html:70 cps/templates/layout.html:26 +#: cps/templates/email_edit.html:70 cps/templates/layout.html:26 #: cps/templates/shelf_order.html:42 cps/templates/user_table.html:174 msgid "Back" msgstr "Retour" @@ -2866,7 +3061,7 @@ msgstr "Domaines autorisés (Liste blanche)" msgid "Add Domain" msgstr "Ajouter un domaine" -#: cps/templates/email_edit.html:81 cps/templates/email_edit.html:108 +#: cps/templates/email_edit.html:81 cps/templates/email_edit.html:108 #: cps/templates/user_table.html:27 msgid "Add" msgstr "Ajouter" @@ -2880,12 +3075,16 @@ msgid "Denied Domains (Blacklist)" msgstr "Domaines refusés (Liste noire)" #: cps/templates/generate_kobo_auth_url.html:6 -msgid "Open the .kobo/Kobo/Kobo eReader.conf file in a text editor and add (or edit):" -msgstr "Ouvrir le fichier .kobo/Kobo/Kobo eReader.conf dans un éditeur de texte et ajouter (ou éditer):" +msgid "" +"Open the .kobo/Kobo/Kobo eReader.conf file in a text editor and add (or edit)" +":" +msgstr "" +"Ouvrir le fichier .kobo/Kobo/Kobo eReader.conf dans un éditeur de texte et " +"ajouter (ou éditer):" #: cps/templates/generate_kobo_auth_url.html:11 msgid "Kobo Token:" -msgstr "Token Kobo:" +msgstr "Jeton Kobo:" #: cps/templates/grid.html:21 msgid "List" @@ -2893,7 +3092,9 @@ msgstr "Liste" #: cps/templates/http_error.html:34 msgid "Calibre-Web Instance is unconfigured, please contact your administrator" -msgstr "L'instance Calibre-Web n'est pas configurée. Veuillez contacter votre administrateur." +msgstr "" +"L'instance Calibre-Web n'est pas configurée. Veuillez contacter votre " +"administrateur." #: cps/templates/http_error.html:44 msgid "Create Issue" @@ -2919,12 +3120,12 @@ msgstr "Trier de manière ascendante selon le nombre de téléchargements" msgid "Sort descending according to download count" msgstr "Trier de manière descendante selon le nombre de téléchargements" -#: cps/templates/index.html:78 cps/templates/search.html:35 +#: cps/templates/index.html:78 cps/templates/search.html:35 #: cps/templates/shelf.html:24 msgid "Sort authors in alphabetical order" msgstr "Trier les auteurs dans l’ordre alphabétique" -#: cps/templates/index.html:79 cps/templates/search.html:36 +#: cps/templates/index.html:79 cps/templates/search.html:36 #: cps/templates/shelf.html:25 msgid "Sort authors in reverse alphabetical order" msgstr "Trier les auteurs dans l’ordre alphabétique inverse" @@ -2951,7 +3152,8 @@ msgstr "Livres triés dans l’ordre alphabétique" #: cps/templates/index.xml:31 msgid "Popular publications from this catalog based on Downloads." -msgstr "Publications populaires depuis le catalogue basées sur les téléchargements." +msgstr "" +"Publications populaires depuis le catalogue basées sur les téléchargements." #: cps/templates/index.xml:40 msgid "Popular publications from this catalog based on Rating." @@ -2997,10 +3199,10 @@ msgstr "Livres classés par évaluation" msgid "Books ordered by file formats" msgstr "Livres classés par formats de fichiers" -#: cps/templates/index.xml:142 cps/templates/layout.html:154 +#: cps/templates/index.xml:142 cps/templates/layout.html:154 #: cps/templates/search_form.html:88 msgid "Shelves" -msgstr "Etagères" +msgstr "Étagères" #: cps/templates/index.xml:146 msgid "Books organized in shelves" @@ -3018,7 +3220,7 @@ msgstr "Thème simple" msgid "Account" msgstr "Compte" -#: cps/templates/layout.html:93 cps/templates/read.html:83 +#: cps/templates/layout.html:93 cps/templates/read.html:83 #: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96 msgid "Settings" msgstr "Paramètres" @@ -3097,7 +3299,8 @@ msgstr "Sélectionner les étiquettes d'utilisateur autorisées/refusées" #: cps/templates/modal_dialogs.html:9 msgid "Select Allowed/Denied Custom Column Values of User" -msgstr "Sélectionner les colonnes personnalisées d'utilisateur autorisées/refusées" +msgstr "" +"Sélectionner les colonnes personnalisées d'utilisateur autorisées/refusées" #: cps/templates/modal_dialogs.html:15 msgid "Enter Tag" @@ -3114,18 +3317,26 @@ msgstr "Ce format de livre sera définitivement effacé de la base de données" #: cps/templates/modal_dialogs.html:51 msgid "This book will be permanently erased from database and hard disk" msgstr "" +"Ce livre sera définitivement supprimé de la base de données et du disque dur" #: cps/templates/modal_dialogs.html:55 -msgid "Important Kobo Note: deleted books will remain on any paired Kobo device." -msgstr "Note Kobo importante: les livres supprimés vont rester sur l'appareil Kobo appairé." +msgid "" +"Important Kobo Note: deleted books will remain on any paired Kobo device." +msgstr "" +"Note Kobo importante: les livres supprimés vont rester sur l'appareil Kobo " +"appairé." #: cps/templates/modal_dialogs.html:56 -msgid "Books must first be archived and the device synced before a book can safely be deleted." -msgstr "Les livres doivent d'abord être archivés et l'appareil synchronisé avant qu'un livre puisse être supprimé en tout sécurité." +msgid "" +"Books must first be archived and the device synced before a book can safely " +"be deleted." +msgstr "" +"Les livres doivent d'abord être archivés et l'appareil synchronisé avant " +"qu'un livre puisse être supprimé en tout sécurité." #: cps/templates/modal_dialogs.html:75 msgid "Choose File Location" -msgstr "Choisir l’emplacement du fichier" +msgstr "Choisissez l’emplacement du fichier" #: cps/templates/modal_dialogs.html:81 msgid "type" @@ -3177,7 +3388,7 @@ msgstr "Sepia" #: cps/templates/read.html:95 msgid "Amber" -msgstr "" +msgstr "Ambre" #: cps/templates/read.html:97 msgid "Black" @@ -3185,15 +3396,17 @@ msgstr "Noir" #: cps/templates/read.html:109 msgid "Reflow text when sidebars are open." -msgstr "Mettre à jour la mise en page du texte quand les bandeaux latéraux sont ouverts." +msgstr "" +"Mettre à jour la mise en page du texte quand les bandeaux latéraux sont " +"ouverts." #: cps/templates/read.html:114 msgid "Show pages count" -msgstr "" +msgstr "Afficher le nombre de pages" #: cps/templates/read.html:118 msgid "Font Size" -msgstr "" +msgstr "Taille de police" #: cps/templates/read.html:126 msgid "Font" @@ -3221,7 +3434,7 @@ msgstr "Arial" #: cps/templates/read.html:134 msgid "Spread" -msgstr "" +msgstr "Écart" #: cps/templates/read.html:135 msgid "Two columns" @@ -3345,7 +3558,7 @@ msgstr "De droite à gauche" #: cps/templates/readcbr.html:162 msgid "Reset to Top" -msgstr "" +msgstr "Revenir en haut" #: cps/templates/readcbr.html:163 msgid "Remember Position" @@ -3357,7 +3570,7 @@ msgstr "Barre de défilement" #: cps/templates/readcbr.html:171 msgid "Show" -msgstr "Montrer" +msgstr "Afficher" #: cps/templates/readcbr.html:172 msgid "Hide" @@ -3377,7 +3590,7 @@ msgstr "Lecteur txt" #: cps/templates/register.html:4 msgid "Register New Account" -msgstr "Enregistrer un nouveau compte" +msgstr "Créer un nouveau compte" #: cps/templates/register.html:10 msgid "Choose a username" @@ -3393,15 +3606,15 @@ msgstr "Magic Link - Autoriser un nouvel appareil" #: cps/templates/remote_login.html:7 msgid "On another device, login and visit:" -msgstr "Utilisez votre autre appareil, connectez-vous et visitez:" +msgstr "Sur un autre appareil, connectez-vous et visitez:" #: cps/templates/remote_login.html:11 msgid "Once verified, you will automatically be logged in on this device." -msgstr "Une fois fait, vous serez automatiquement connecté à cet appareil." +msgstr "Une fois vérifié, vous serez automatiquement connecté à cet appareil." #: cps/templates/remote_login.html:14 msgid "This verification link will expire in 10 minutes." -msgstr "Le lien expirera après 10 minutes." +msgstr "Le lien de vérification expirera après 10 minutes." #: cps/templates/schedule_edit.html:33 msgid "Generate Series Cover Thumbnails" @@ -3463,12 +3676,12 @@ msgstr "Évaluation supérieure à" msgid "Rating Below" msgstr "Évaluation inférieure à" -#: cps/templates/search_form.html:175 cps/templates/search_form.html:187 +#: cps/templates/search_form.html:175 cps/templates/search_form.html:187 #: cps/templates/search_form.html:201 msgid "From:" -msgstr "Depuis" +msgstr "De:" -#: cps/templates/search_form.html:179 cps/templates/search_form.html:191 +#: cps/templates/search_form.html:179 cps/templates/search_form.html:191 #: cps/templates/search_form.html:211 msgid "To:" msgstr "Vers" @@ -3495,11 +3708,13 @@ msgstr "Activer l’ordre de modification" #: cps/templates/shelf.html:28 msgid "Sort according to book added to shelf, newest first" -msgstr "Trier selon les livres ajoutés à l'étagère, les plus récents en premier" +msgstr "" +"Trier selon les livres ajoutés à l'étagère, les plus récents en premier" #: cps/templates/shelf.html:29 msgid "Sort according to book added to shelf, oldest first" -msgstr "Trier selon les livres ajoutés à l'étagère, les plus anciens en premier" +msgstr "" +"Trier selon les livres ajoutés à l'étagère, les plus anciens en premier" #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" @@ -3519,7 +3734,7 @@ msgstr "Livre caché" #: cps/templates/stats.html:7 msgid "Library Statistics" -msgstr "Statistiques de la librairie Calibre" +msgstr "Statistiques de la bibliothèque" #: cps/templates/stats.html:12 msgid "Books in this Library" @@ -3578,24 +3793,35 @@ msgid "Actions" msgstr "Actions" #: cps/templates/tasks.html:41 -msgid "This task will be cancelled. Any progress made by this task will be saved." -msgstr "Cette tâche sera annulée. Toute progression réalisée dans le cadre de cette tâche sera enregistrée." +msgid "" +"This task will be cancelled. Any progress made by this task will be saved." +msgstr "" +"Cette tâche sera annulée. Toute progression réalisée dans le cadre de cette " +"tâche sera enregistrée." #: cps/templates/tasks.html:42 -msgid "If this is a scheduled task, it will be re-ran during the next scheduled time." -msgstr "S'il s'agit d'une tâche planifiée, elle sera réexécutée à la prochaine heure prévue." +msgid "" +"If this is a scheduled task, it will be re-ran during the next scheduled " +"time." +msgstr "" +"S'il s'agit d'une tâche planifiée, elle sera ré-exécutée à la prochaine " +"heure prévue." #: cps/templates/user_edit.html:20 msgid "Reset user Password" msgstr "Réinitialiser le mot de passe de l’utilisateur" #: cps/templates/user_edit.html:28 -msgid "Send to eReader Email Address. Use comma to separate emails for multiple eReaders" -msgstr "Envoyer à l'adresse e-mail de la liseuse. Utilisez une virgule pour séparer les adresses e-mail si vous avez plusieurs liseuses." +msgid "" +"Send to eReader Email Address. Use comma to separate emails for multiple " +"eReaders" +msgstr "" +"Envoyer à l'adresse e-mail de la liseuse. Utilisez une virgule pour séparer " +"les adresses e-mail si vous avez plusieurs liseuses." #: cps/templates/user_edit.html:43 msgid "Language of Books" -msgstr "Montrer les livres dans la langue" +msgstr "Langue des livres" #: cps/templates/user_edit.html:54 msgid "OAuth Settings" @@ -3611,7 +3837,7 @@ msgstr "Dissocier" #: cps/templates/user_edit.html:64 msgid "Kobo Sync Token" -msgstr "Jeton de synchro Kobo" +msgstr "Jeton de synchronisation Kobo" #: cps/templates/user_edit.html:66 msgid "Create/View" @@ -3627,7 +3853,8 @@ msgstr "Ajouter les valeurs de colonnes personnalisées autorisées/refusées" #: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" -msgstr "Synchroniser uniquement les livres dans les étagères sélectionnées avec Kobo" +msgstr "" +"Synchroniser uniquement les livres dans les étagères sélectionnées avec Kobo" #: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" @@ -3655,7 +3882,7 @@ msgstr "Entrez votre adresse e-mail" #: cps/templates/user_table.html:136 msgid "Enter eReader Email" -msgstr "Entrer l'adresse e-mail de votre liseuse" +msgstr "Entrez l'adresse e-mail de votre liseuse" #: cps/templates/user_table.html:136 msgid "eReader Email" @@ -3707,7 +3934,7 @@ msgstr "Modifier le mot de passe" #: cps/templates/user_table.html:147 msgid "View" -msgstr "Vue" +msgstr "Afficher" #: cps/templates/user_table.html:150 msgid "Edit Public Shelves" @@ -3720,4 +3947,3 @@ msgstr "Synchroniser les étagères sélectionnées avec Kobo" #: cps/templates/user_table.html:156 msgid "Show Read/Unread Section" msgstr "Afficher la section Lu/Non lu" - From 02b5409b95511d0b5af999c5c5ba1f4f7f208a65 Mon Sep 17 00:00:00 2001 From: Webysther Sperandio Date: Fri, 16 Jan 2026 05:57:31 +0100 Subject: [PATCH 05/28] TYPO Fix theme selection prompt in read.html --- cps/templates/read.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/templates/read.html b/cps/templates/read.html index 86d7347e..c081334f 100644 --- a/cps/templates/read.html +++ b/cps/templates/read.html @@ -82,7 +82,7 @@

{{_('Settings')}}

- {{_('Choose a theme below:')}}}
+ {{_('Choose a theme below:')}}
@@ -645,11 +645,11 @@ - + TestCoverEditBooks 2 - 1 - 1 + 2 + 0 0 0 @@ -668,31 +668,11 @@ - +
TestCoverEditBooks - test_upload_jpg
- -
- FAIL -
- - - - + PASS @@ -1220,11 +1200,11 @@ AssertionError: 0.005658288961589503 not greater than 0.009 - + TestEditBooks 38 - 36 - 1 + 37 + 0 0 1 @@ -1575,31 +1555,11 @@ AssertionError: 0.005658288961589503 not greater than 0.009 - +
TestEditBooks - test_upload_cover_hdd
- -
- FAIL -
- - - - + PASS @@ -2289,13 +2249,13 @@ AssertionError: 0.00645269357807853 not greater than 0.009 - + TestLoadMetadataScholar 1 - 0 1 0 0 + 0 Detail @@ -2303,31 +2263,11 @@ AssertionError: 0.00645269357807853 not greater than 0.009 - +
TestLoadMetadataScholar - test_load_metadata
- -
- FAIL -
- - - - + PASS @@ -2755,11 +2695,11 @@ AssertionError: 30 != 20 - + TestKoboSync 12 - 12 - 0 + 11 + 1 0 0 @@ -2850,11 +2790,31 @@ AssertionError: 30 != 20 - +
TestKoboSync - test_sync_shelf
- PASS + +
+ FAIL +
+ + + + @@ -5991,8 +5951,8 @@ AssertionError: 30 != 20 Total 538 - 528 - 3 + 530 + 1 0 7   @@ -6544,7 +6504,7 @@ AssertionError: 30 != 20
From 269ab0e04ef2a309faed62fa48c402683a99ed0d Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 17 Jan 2026 12:27:16 +0100 Subject: [PATCH 15/28] Fix for #3522 (Public registration does not apply default Allowed/Denied tags to new users ) --- cps/web.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cps/web.py b/cps/web.py index dc75754e..9466dc9d 100644 --- a/cps/web.py +++ b/cps/web.py @@ -1319,6 +1319,10 @@ def register_post(): content.role = config.config_default_role content.locale = config.config_default_locale content.sidebar_view = config.config_default_show + content.allowed_tags = config.config_allowed_tags + content.denied_tags = config.config_denied_tags + content.allowed_column_value = config.config_allowed_column_value + content.denied_column_value = config.config_denied_column_value try: ub.session.add(content) ub.session.commit() From 85d1aab6a88e509facb2c0d9830910272ce4987c Mon Sep 17 00:00:00 2001 From: Kugeleis Date: Sun, 18 Jan 2026 18:07:51 +0100 Subject: [PATCH 16/28] Add German translations for several UI strings --- cps/translations/de/LC_MESSAGES/messages.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index f7817820..0fcbffd2 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -3181,7 +3181,7 @@ msgstr "Sepia" #: cps/templates/read.html:95 msgid "Amber" -msgstr "" +msgstr "Amber" #: cps/templates/read.html:97 msgid "Black" @@ -3193,11 +3193,11 @@ msgstr "Text umbrechen, wenn Seitenleiste geöffnet ist." #: cps/templates/read.html:114 msgid "Show pages count" -msgstr "" +msgstr "Zeige Seitenanzahl" #: cps/templates/read.html:118 msgid "Font Size" -msgstr "" +msgstr "Schriftgröße" #: cps/templates/read.html:126 msgid "Font" From 832ec80f1a54b36427c89a3ccbfc99f2103ec634 Mon Sep 17 00:00:00 2001 From: Tom Chiverton Date: Wed, 21 Jan 2026 15:01:00 +0000 Subject: [PATCH 17/28] Update README.md Highlight how to enable uploads, as it's a FAQ --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d9c7d18..e32fe7f8 100755 --- a/README.md +++ b/README.md @@ -143,6 +143,7 @@ in your Docker run/compose file. Omit this variable for a lightweight image. - **Common Issues**: - If you experience issues starting the application, check the log files located in the `logs` directory for error messages. - If eBooks fail to load, verify that the `Location of Calibre database` is correctly set and that the database file is accessible. + - You need to enable uploads under `Basic settings` for this option to appear - **Configuration Errors**: Ensure that your Calibre database is compatible and properly formatted. Refer to the Calibre documentation for guidance on maintaining the database. From eb20db55a40ccc2dd12b57c83b94b5b8a5f61fae Mon Sep 17 00:00:00 2001 From: Kamille Date: Sat, 31 Jan 2026 11:25:50 +0800 Subject: [PATCH 18/28] Update Simplified Chinese --- .../zh_Hans_CN/LC_MESSAGES/messages.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index dbff92cb..ace050ec 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -1184,22 +1184,22 @@ msgstr "此书籍已被添加到书架:%(sname)s" #: cps/shelf.py:116 msgid "You are not allowed to remove a book from the shelf" -msgstr "" +msgstr "您没有权限从书架中删除书籍" #: cps/shelf.py:129 #, python-format msgid "No Books are part of the shelf: %(name)s" -msgstr "" +msgstr "书架 %(name)s 中没有书籍" #: cps/shelf.py:140 #, python-format msgid "Books have been removed from shelf: %(sname)s" -msgstr "" +msgstr "书籍已从书架 %(name)s 中删除" #: cps/shelf.py:147 #, python-format msgid "Could not remove books from shelf: %(sname)s" -msgstr "" +msgstr "不能从书架 %(name)s 中删除书籍" #: cps/shelf.py:162 msgid "You are not allowed to add a book to the shelf" @@ -3200,7 +3200,7 @@ msgstr "棕色" #: cps/templates/read.html:95 msgid "Amber" -msgstr "" +msgstr "琥珀色" #: cps/templates/read.html:97 msgid "Black" @@ -3212,11 +3212,11 @@ msgstr "打开侧栏时重排文本。" #: cps/templates/read.html:114 msgid "Show pages count" -msgstr "" +msgstr "显示页数" #: cps/templates/read.html:118 msgid "Font Size" -msgstr "" +msgstr "字体大小" #: cps/templates/read.html:126 msgid "Font" @@ -3440,7 +3440,7 @@ msgstr "结果:" #: cps/templates/search.html:29 msgid "Remove from shelf" -msgstr "" +msgstr "从书架中移除" #: cps/templates/search_form.html:21 msgid "Published Date From" From 9ed0774d19458907baaf670e09a586ce837a1c42 Mon Sep 17 00:00:00 2001 From: Webysther Sperandio Date: Sat, 31 Jan 2026 05:19:48 +0100 Subject: [PATCH 19/28] doc: pt-br translation --- .../pt_BR/LC_MESSAGES/messages.po | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po index 9dea8388..b9608f9e 100644 --- a/cps/translations/pt_BR/LC_MESSAGES/messages.po +++ b/cps/translations/pt_BR/LC_MESSAGES/messages.po @@ -21,15 +21,15 @@ msgstr "Estatísticas" #: cps/admin.py:151 msgid "Server restarted, please reload page." -msgstr "" +msgstr "Servidor reiniciado, por favor recarregue a página." #: cps/admin.py:153 msgid "Performing Server shutdown, please close window." -msgstr "" +msgstr "Desligando o servidor, por favor feche a janela." #: cps/admin.py:161 msgid "Success! Database Reconnected" -msgstr "" +msgstr "Sucesso! Banco de dados reconectado" #: cps/admin.py:164 msgid "Unknown command" @@ -37,7 +37,7 @@ msgstr "Comando desconhecido" #: cps/admin.py:175 msgid "Success! Books queued for Metadata Backup, please check Tasks for result" -msgstr "" +msgstr "Sucesso! Livros enfileirados para backup de Metadados, por favor verifique Tarefas para o resultado" #: cps/admin.py:208 cps/editbooks.py:808 cps/editbooks.py:852 #: cps/editbooks.py:1520 cps/updater.py:615 cps/uploader.py:108 @@ -161,7 +161,7 @@ msgstr "Você realmente quer apagar este usuário?" #: cps/admin.py:621 msgid "Do you really want to delete this book?" -msgstr "" +msgstr "Você realmente quer apagar este livro?" #: cps/admin.py:623 msgid "Are you sure you want to delete this shelf?" @@ -181,11 +181,11 @@ msgstr "Tem certeza que quer alterar a função selecionada para o(s) usuário(s #: cps/admin.py:631 msgid "Are you sure you want to change the archive status for the selected book(s)?" -msgstr "" +msgstr "Tem certeza que quer alterar o status de arquivamento do(s) livro(s) selecionado(s)?" #: cps/admin.py:633 msgid "Are you sure you want to change the read status for the selected book(s)?" -msgstr "" +msgstr "Tem certeza que quer alterar o status de leitura do(s) livro(s) selecionado(s)?" #: cps/admin.py:635 msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" @@ -301,7 +301,7 @@ msgstr "Editar configurações do servidor de e-mail" #: cps/admin.py:1319 msgid "Success! Gmail Account Verified." -msgstr "" +msgstr "Sucesso! Conta do Gmail verificada." #: cps/admin.py:1339 cps/admin.py:1342 cps/admin.py:1727 cps/admin.py:1886 #: cps/admin.py:1984 cps/admin.py:2105 cps/editbooks.py:169 @@ -362,11 +362,11 @@ msgstr "Editar Usuário %(nick)s" #: cps/admin.py:1462 #, python-format msgid "Success! Password for user %(user)s reset" -msgstr "" +msgstr "Sucesso! Senha do usuário %(user)s redefinida" #: cps/admin.py:1468 msgid "Oops! Please configure the SMTP mail settings." -msgstr "" +msgstr "Ops! Por favor, altere as configurações SMTP do servidor de e-mail." #: cps/admin.py:1479 msgid "Logfile viewer" @@ -457,7 +457,7 @@ msgstr "{} Usuário Importado com Sucesso" #: cps/admin.py:1739 msgid "Books path not valid" -msgstr "" +msgstr "A localização dos livros não é válida" #: cps/admin.py:1745 msgid "DB Location is not Valid, Please Enter Correct Path" @@ -523,7 +523,7 @@ msgstr "Nenhum usuário administrador restante, não é possível apagar o usuá #: cps/admin.py:2071 cps/web.py:1493 msgid "Email can't be empty and has to be a valid Email" -msgstr "" +msgstr "O e-mail não pode ficar vazio e deve ser um endereço de e-mail válido" #: cps/admin.py:2097 #, python-format @@ -579,7 +579,7 @@ msgstr "" #: cps/editbooks.py:317 msgid "Value is missing on request" -msgstr "" +msgstr "Valor ausente na requisição" #: cps/editbooks.py:319 cps/editbooks.py:326 cps/editbooks.py:627 #: cps/editbooks.py:1146 cps/web.py:535 cps/web.py:1585 cps/web.py:1631 @@ -615,7 +615,7 @@ msgstr "O livro carregado provavelmente existe na biblioteca, considere alterar #: cps/editbooks.py:950 cps/editbooks.py:1420 msgid "File type isn't allowed to be uploaded to this server" -msgstr "" +msgstr "Este tipo de arquivo não pode ser enviado para este servidor" #: cps/editbooks.py:956 cps/editbooks.py:1431 #, python-format @@ -651,7 +651,7 @@ msgstr "Você não tem permissão para apagar livros" #: cps/editbooks.py:1139 #, python-brace-format msgid "Book with id \"{}\" could not be deleted: not found" -msgstr "" +msgstr "Livro com id \"{}\" não pôde ser apagado: não encontrado" #: cps/editbooks.py:1181 msgid "edit metadata" @@ -660,7 +660,7 @@ msgstr "editar metadados" #: cps/editbooks.py:1234 #, python-format msgid "Seriesindex: %(seriesindex)s is not a valid number, skipping" -msgstr "" +msgstr "Seriesindex: %(seriesindex)s não é um número válido, ignorando" #: cps/editbooks.py:1425 msgid "User has no rights to upload additional file formats" @@ -710,15 +710,15 @@ msgstr "Enviar para E-Reader" #: cps/helper.py:105 cps/helper.py:125 cps/helper.py:235 msgid "This Email has been sent via Calibre-Web." -msgstr "" +msgstr "Este e-mail foi enviado via Calibre-Web." #: cps/helper.py:123 msgid "Calibre-Web Test Email" -msgstr "" +msgstr "E-mail de teste do Calibre-Web" #: cps/helper.py:124 msgid "Test Email" -msgstr "" +msgstr "E-mail de teste" #: cps/helper.py:141 msgid "Get Started with Calibre-Web" @@ -727,22 +727,22 @@ msgstr "Comece a usar o calibre-web" #: cps/helper.py:146 #, python-format msgid "Registration Email for user: %(name)s" -msgstr "" +msgstr "E-mail de registro para o usuário: %(name)s" #: cps/helper.py:157 cps/helper.py:163 #, python-format msgid "Convert %(orig)s to %(format)s and send to eReader" -msgstr "" +msgstr "Converter %(orig)s para %(format)s e enviar para E-Reader" #: cps/helper.py:182 cps/helper.py:186 cps/helper.py:190 #, python-format msgid "Send %(format)s to eReader" -msgstr "" +msgstr "Enviar %(format)s para E-Reader" #: cps/helper.py:230 #, python-format msgid "%(book)s send to eReader" -msgstr "" +msgstr "%(book)s enviado para E-Reader" #: cps/helper.py:237 msgid "The requested file could not be read. Maybe wrong permissions?" @@ -771,7 +771,7 @@ msgstr "Excluindo livro %(id)s somente do banco de dados, caminho do livro invá #: cps/helper.py:404 #, python-format msgid "Moving book path of Book %(book_id)s to: '%(src)s' failed with error: %(error)s" -msgstr "" +msgstr "Falha ao mover o caminho do livro %(book_id)s para '%(src)s': %(error)s" #: cps/helper.py:443 #, python-format @@ -795,7 +795,7 @@ msgstr "Caminho do livro %(path)s não encontrado no Google Drive" #: cps/helper.py:643 msgid "Found an existing account for this Email address" -msgstr "" +msgstr "Encontrada uma conta existente para este endereço de e-mail." #: cps/helper.py:651 msgid "This username is already taken" @@ -803,11 +803,11 @@ msgstr "Este nome de usuário já está registrado" #: cps/helper.py:665 msgid "Invalid Email address format" -msgstr "" +msgstr "Formato de endereço de e-mail inválido" #: cps/helper.py:687 msgid "Password doesn't comply with password validation rules" -msgstr "" +msgstr "A senha não atende às regras de validação de senha" #: cps/helper.py:833 msgid "Python module 'advocate' is not installed but is needed for cover uploads" @@ -847,7 +847,7 @@ msgstr "Apenas arquivos jpg/jpeg são suportados como arquivos de capa" #: cps/helper.py:975 cps/helper.py:1133 msgid "Cover" -msgstr "" +msgstr "Capa" #: cps/helper.py:992 msgid "UnRar binary file not found" @@ -855,37 +855,37 @@ msgstr "Binário UnRar não encontrado" #: cps/helper.py:1003 msgid "Error executing UnRar" -msgstr "" +msgstr "Erro ao executar UnRar" #: cps/helper.py:1011 msgid "Could not find the specified directory" -msgstr "" +msgstr "Não foi possível encontrar o diretório especificado" #: cps/helper.py:1014 msgid "Please specify a directory, not a file" -msgstr "" +msgstr "Por favor, especifique um diretório, não um arquivo" #: cps/helper.py:1028 msgid "Calibre binaries not viable" -msgstr "" +msgstr "Binários do Calibre não são utilizáveis" #: cps/helper.py:1037 #, python-format msgid "Missing calibre binaries: %(missing)s" -msgstr "" +msgstr "Binários do Calibre ausentes: %(missing)s" #: cps/helper.py:1039 #, python-format msgid "Missing executable permissions: %(missing)s" -msgstr "" +msgstr "Permissões de execução ausentes: %(missing)s" #: cps/helper.py:1044 msgid "Error executing Calibre" -msgstr "" +msgstr "Erro ao executar Calibre" #: cps/helper.py:1135 cps/templates/admin.html:216 msgid "Queue all books for metadata backup" -msgstr "" +msgstr "Enfileirar todos os livros para backup de Metadados" #: cps/kobo_auth.py:92 msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" @@ -3743,5 +3743,5 @@ msgstr "Sincronizar Estantes Selecionadas com Kobo" #: cps/templates/user_table.html:156 msgid "Show Read/Unread Section" -msgstr "" +msgstr "Mostrar seção Lidos/Não Lidos" From f00471baf5a283a2b4aae72eff898d35d27cefe7 Mon Sep 17 00:00:00 2001 From: Webysther Sperandio Date: Sat, 31 Jan 2026 05:44:18 +0100 Subject: [PATCH 20/28] =?UTF-8?q?=F0=9F=8C=90=20i18n(translations):=20add?= =?UTF-8?q?=20missing=20pt=5FBR=20translations=20in=20messages.po?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pt_BR/LC_MESSAGES/messages.po | 228 +++++++++--------- 1 file changed, 114 insertions(+), 114 deletions(-) diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po index b9608f9e..17912e73 100644 --- a/cps/translations/pt_BR/LC_MESSAGES/messages.po +++ b/cps/translations/pt_BR/LC_MESSAGES/messages.po @@ -477,7 +477,7 @@ msgstr "Localização do Certfile Inválida, Insira o Caminho Correto" #: cps/admin.py:1871 msgid "Password length has to be between 1 and 40" -msgstr "" +msgstr "O comprimento da senha deve estar entre 1 e 40" #: cps/admin.py:1925 msgid "Database Settings updated" @@ -575,7 +575,7 @@ msgstr "Ocorreu um erro ao converter este livro: %(res)s" #: cps/editbooks.py:297 msgid "Changes successfully applied" -msgstr "" +msgstr "Alterações aplicadas com sucesso" #: cps/editbooks.py:317 msgid "Value is missing on request" @@ -1026,7 +1026,7 @@ msgstr "Livros Lidos" #: cps/render_template.py:63 msgid "Show Read and Unread" -msgstr "" +msgstr "Mostrar lidos e não lidos" #: cps/render_template.py:65 cps/templates/index.xml:70 #: cps/templates/index.xml:74 cps/web.py:775 @@ -1053,7 +1053,7 @@ msgstr "Categorias" #: cps/render_template.py:73 cps/templates/user_table.html:158 msgid "Show Category Section" -msgstr "" +msgstr "Mostrar seção de categorias" #: cps/render_template.py:74 cps/templates/book_edit.html:86 #: cps/templates/book_table.html:94 cps/templates/index.xml:106 @@ -1063,7 +1063,7 @@ msgstr "Série" #: cps/render_template.py:76 cps/templates/user_table.html:157 msgid "Show Series Section" -msgstr "" +msgstr "Mostrar seção de séries" #: cps/render_template.py:77 cps/templates/book_table.html:92 #: cps/templates/index.xml:79 @@ -1072,7 +1072,7 @@ msgstr "Autores" #: cps/render_template.py:79 cps/templates/user_table.html:160 msgid "Show Author Section" -msgstr "" +msgstr "Mostrar seção de autores" #: cps/render_template.py:81 cps/templates/book_table.html:98 #: cps/templates/index.xml:88 cps/web.py:1004 @@ -1081,7 +1081,7 @@ msgstr "Editoras" #: cps/render_template.py:83 cps/templates/user_table.html:163 msgid "Show Publisher Section" -msgstr "" +msgstr "Mostrar seção de editoras" #: cps/render_template.py:84 cps/templates/book_table.html:96 #: cps/templates/index.xml:115 cps/templates/search_form.html:108 @@ -1091,7 +1091,7 @@ msgstr "Idiomas" #: cps/render_template.py:87 cps/templates/user_table.html:155 msgid "Show Language Section" -msgstr "" +msgstr "Mostrar seção de idiomas" #: cps/render_template.py:88 cps/templates/index.xml:124 msgid "Ratings" @@ -1099,7 +1099,7 @@ msgstr "Avaliações" #: cps/render_template.py:90 cps/templates/user_table.html:164 msgid "Show Ratings Section" -msgstr "" +msgstr "Mostrar seção de avaliações" #: cps/render_template.py:91 cps/templates/index.xml:133 msgid "File formats" @@ -1107,7 +1107,7 @@ msgstr "Formatos de arquivo" #: cps/render_template.py:93 cps/templates/user_table.html:165 msgid "Show File Formats Section" -msgstr "" +msgstr "Mostrar seção de formatos de arquivo" #: cps/render_template.py:95 cps/web.py:798 msgid "Archived Books" @@ -1115,7 +1115,7 @@ msgstr "Livros Arquivados" #: cps/render_template.py:97 cps/templates/user_table.html:166 msgid "Show Archived Books" -msgstr "" +msgstr "Mostrar livros arquivados" #: cps/render_template.py:100 cps/web.py:834 msgid "Books List" @@ -1146,7 +1146,7 @@ msgstr "Avaliação >= %(rating)s" #: cps/search.py:247 #, python-format msgid "Read Status = '%(status)s'" -msgstr "" +msgstr "Status de leitura = '%(status)s'" #: cps/search.py:366 msgid "Error on search for custom columns, please restart Calibre-Web" @@ -1172,7 +1172,7 @@ msgstr "O livro já faz parte da estante: %(shelfname)s" #: cps/shelf.py:77 #, python-format msgid "%(book_id)s is a invalid Book Id. Could not be added to Shelf" -msgstr "" +msgstr "%(book_id)s é um ID de livro inválido. Não foi possível adicionar à estante" #: cps/shelf.py:97 #, python-format @@ -1181,22 +1181,22 @@ msgstr "O livro foi adicionado à estante: %(sname)s" #: cps/shelf.py:116 msgid "You are not allowed to remove a book from the shelf" -msgstr "" +msgstr "Você não tem permissão para remover um livro da estante" #: cps/shelf.py:129 #, python-format msgid "No Books are part of the shelf: %(name)s" -msgstr "" +msgstr "Nenhum livro faz parte da estante: %(name)s" #: cps/shelf.py:140 #, python-format msgid "Books have been removed from shelf: %(sname)s" -msgstr "" +msgstr "Livros foram removidos da estante: %(sname)s" #: cps/shelf.py:147 #, python-format msgid "Could not remove books from shelf: %(sname)s" -msgstr "" +msgstr "Não foi possível remover livros da estante: %(sname)s" #: cps/shelf.py:162 msgid "You are not allowed to add a book to the shelf" @@ -1416,7 +1416,7 @@ msgstr "Lista de formatos de arquivo" #: cps/web.py:1264 msgid "Please configure the SMTP mail settings first..." -msgstr "" +msgstr "Por favor, configure primeiro as configurações de e-mail SMTP..." #: cps/web.py:1270 #, python-format @@ -1430,11 +1430,11 @@ msgstr "Ops! Ocorreu um erro ao enviar este livro: %(res)s" #: cps/web.py:1275 msgid "Oops! Please update your profile with a valid eReader Email." -msgstr "" +msgstr "Ops! Atualize seu perfil com um e-mail de eReader válido." #: cps/web.py:1291 msgid "Please wait one minute to register next user" -msgstr "" +msgstr "Aguarde um minuto para registrar o próximo usuário" #: cps/templates/layout.html:69 cps/templates/layout.html:104 #: cps/templates/login.html:27 cps/templates/register.html:17 cps/web.py:1292 @@ -1445,7 +1445,7 @@ msgstr "Registe-se" #: cps/web.py:1295 cps/web.py:1402 msgid "Connection error to limiter backend, please contact your administrator" -msgstr "" +msgstr "Erro de conexão com o backend do limitador; entre em contato com o administrador" #: cps/web.py:1300 cps/web.py:1351 msgid "Oops! Email server is not configured, please contact your administrator." @@ -1461,47 +1461,47 @@ msgstr "O e-mail de confirmação foi enviado para a sua conta de e-mail." #: cps/web.py:1385 cps/web.py:1408 msgid "Cannot activate LDAP authentication" -msgstr "" +msgstr "Não foi possível ativar a autenticação LDAP" #: cps/web.py:1398 msgid "Please wait one minute before next login" -msgstr "" +msgstr "Aguarde um minuto antes do próximo login" #: cps/web.py:1417 #, python-format msgid "you are now logged in as: '%(nickname)s'" -msgstr "" +msgstr "agora você está conectado como: '%(nickname)s'" #: cps/web.py:1424 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" -msgstr "" +msgstr "Login de contingência como: '%(nickname)s'; servidor LDAP inacessível ou usuário desconhecido" #: cps/web.py:1429 #, python-format msgid "Could not login: %(message)s" -msgstr "" +msgstr "Não foi possível fazer login: %(message)s" #: cps/web.py:1433 cps/web.py:1458 msgid "Wrong Username or Password" -msgstr "" +msgstr "Nome de usuário ou senha incorretos" #: cps/web.py:1440 msgid "New Password was sent to your email address" -msgstr "" +msgstr "Uma nova senha foi enviada para o seu endereço de e-mail" #: cps/web.py:1444 msgid "An unknown error occurred. Please try again later." -msgstr "" +msgstr "Ocorreu um erro desconhecido. Tente novamente mais tarde." #: cps/web.py:1446 msgid "Please enter valid username to reset password" -msgstr "" +msgstr "Digite um nome de usuário válido para redefinir a senha" #: cps/web.py:1454 #, python-format msgid "You are now logged in as: '%(nickname)s'" -msgstr "" +msgstr "Agora você está conectado como: '%(nickname)s'" #: cps/web.py:1519 cps/web.py:1569 #, python-format @@ -1510,7 +1510,7 @@ msgstr "Perfil de %(name)s" #: cps/web.py:1535 msgid "Success! Profile Updated" -msgstr "" +msgstr "Sucesso! Perfil atualizado" #: cps/web.py:1539 msgid "Oops! An account already exists for this Email." @@ -1522,7 +1522,7 @@ msgstr "Não foi encontrado nenhum arquivo gmail.json válido com informações #: cps/tasks/clean.py:29 msgid "Delete temp folder contents" -msgstr "" +msgstr "Excluir conteúdo da pasta temporária" #: cps/tasks/convert.py:112 #, python-format @@ -1577,7 +1577,7 @@ msgstr "E-mail" #: cps/tasks/metadata_backup.py:34 msgid "Backing up Metadata" -msgstr "" +msgstr "Fazendo backup dos metadados" #: cps/tasks/thumbnail.py:97 #, python-format @@ -1689,7 +1689,7 @@ msgstr "Do E-mail" #: cps/templates/admin.html:90 msgid "Email Service" -msgstr "" +msgstr "Serviço de e-mail" #: cps/templates/admin.html:91 msgid "Gmail via Oauth2" @@ -1783,7 +1783,7 @@ msgstr "Reconectar à Biblioteca do Calibre" #: cps/templates/admin.html:190 cps/templates/schedule_edit.html:41 msgid "Generate Metadata Backup Files" -msgstr "" +msgstr "Gerar arquivos de backup de metadados" #: cps/templates/admin.html:197 msgid "Refresh Thumbnail Cache" @@ -1970,7 +1970,7 @@ msgstr "Sair" #: cps/templates/basic_layout.html:35 msgid "Normal Theme" -msgstr "" +msgstr "Tema normal" #: cps/templates/book_edit.html:11 msgid "Delete Book" @@ -2144,19 +2144,19 @@ msgstr "Este campo é obrigatório" #: cps/templates/book_table.html:25 msgid "Archive selected books" -msgstr "" +msgstr "Arquivar livros selecionados" #: cps/templates/book_table.html:28 msgid "Unarchive selected books" -msgstr "" +msgstr "Desarquivar livros selecionados" #: cps/templates/book_table.html:34 msgid "Mark selected books as read" -msgstr "" +msgstr "Marcar livros selecionados como lidos" #: cps/templates/book_table.html:37 msgid "Mark selected books as unread" -msgstr "" +msgstr "Marcar livros selecionados como não lidos" #: cps/templates/book_table.html:57 msgid "Merge selected books" @@ -2164,11 +2164,11 @@ msgstr "Mesclar livros selecionados" #: cps/templates/book_table.html:60 cps/templates/user_table.html:124 msgid "Clear selections" -msgstr "" +msgstr "Limpar seleções" #: cps/templates/book_table.html:63 msgid "Edit selected books" -msgstr "" +msgstr "Editar livros selecionados" #: cps/templates/book_table.html:67 msgid "Exchange author and title" @@ -2260,7 +2260,7 @@ msgstr "Entrar " #: cps/templates/book_table.html:128 msgid "Delete selected books" -msgstr "" +msgstr "Excluir livros selecionados" #: cps/templates/book_table.html:148 cps/templates/book_table.html:172 #: cps/templates/book_table.html:192 cps/templates/book_table.html:212 @@ -2283,39 +2283,39 @@ msgstr "Mesclar" #: cps/templates/book_table.html:176 msgid "The following books will be deleted:" -msgstr "" +msgstr "Os seguintes livros serão excluídos:" #: cps/templates/book_table.html:196 msgid "The following books will be archived:" -msgstr "" +msgstr "Os seguintes livros serão arquivados:" #: cps/templates/book_table.html:200 cps/templates/detail.html:275 msgid "Archive" -msgstr "" +msgstr "Arquivar" #: cps/templates/book_table.html:216 msgid "The following books will be unarchived:" -msgstr "" +msgstr "Os seguintes livros serão desarquivados:" #: cps/templates/book_table.html:220 msgid "Unarchive" -msgstr "" +msgstr "Desarquivar" #: cps/templates/book_table.html:236 msgid "The following books will be marked read:" -msgstr "" +msgstr "Os seguintes livros serão marcados como lidos:" #: cps/templates/book_table.html:240 msgid "Mark as read" -msgstr "" +msgstr "Marcar como lido" #: cps/templates/book_table.html:256 msgid "The following books will be marked unread:" -msgstr "" +msgstr "Os seguintes livros serão marcados como não lidos:" #: cps/templates/book_table.html:260 msgid "Mark as unread" -msgstr "" +msgstr "Marcar como não lido" #: cps/templates/book_table.html:272 cps/templates/detail.html:348 msgid "Edit Metadata" @@ -2323,7 +2323,7 @@ msgstr "Editar Metadados" #: cps/templates/book_table.html:275 msgid "Edit the fields you want changed. Blank fields will be ignored:" -msgstr "" +msgstr "Edite os campos que você deseja alterar. Campos em branco serão ignorados:" #: cps/templates/config_db.html:12 msgid "Location of Calibre Database" @@ -2331,7 +2331,7 @@ msgstr "Localização da Base de Dados Calibre" #: cps/templates/config_db.html:21 msgid "Separate Book Files from Library" -msgstr "" +msgstr "Separar arquivos de livros da biblioteca" #: cps/templates/config_db.html:34 msgid "Use Google Drive?" @@ -2415,7 +2415,7 @@ msgstr "Converta caracteres não ingleses em título e autor enquanto salva em d #: cps/templates/config_edit.html:108 msgid "Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/Kepubify binaries)" -msgstr "" +msgstr "Incorporar metadados no arquivo do eBook ao baixar/converter/enviar por e-mail (requer binários do Calibre/Kepubify)" #: cps/templates/config_edit.html:112 msgid "Enable Uploads" @@ -2467,7 +2467,7 @@ msgstr "Chave API Goodreads" #: cps/templates/config_edit.html:167 msgid "Google Books API Key" -msgstr "" +msgstr "Chave da API do Google Books" #: cps/templates/config_edit.html:172 msgid "Allow Reverse Proxy Authentication" @@ -2610,7 +2610,7 @@ msgstr "Binários externos" #: cps/templates/config_edit.html:329 msgid "Path to Calibre Binaries" -msgstr "" +msgstr "Caminho para os binários do Calibre" #: cps/templates/config_edit.html:337 msgid "Calibre E-Book Converter Settings" @@ -2622,67 +2622,67 @@ msgstr "Caminho para Kepubify E-Book Converter" #: cps/templates/config_edit.html:348 msgid "Location of Unrar binary" -msgstr "" +msgstr "Localização do binário do Unrar" #: cps/templates/config_edit.html:364 msgid "Security Settings" -msgstr "" +msgstr "Configurações de segurança" #: cps/templates/config_edit.html:372 msgid "Limit failed login attempts" -msgstr "" +msgstr "Limitar tentativas de login malsucedidas" #: cps/templates/config_edit.html:376 msgid "Configure Backend for Limiter" -msgstr "" +msgstr "Configurar backend do limitador" #: cps/templates/config_edit.html:380 msgid "Options for Limiter Backend" -msgstr "" +msgstr "Opções do backend do limitador" #: cps/templates/config_edit.html:386 msgid "Check if file extensions matches file content on upload" -msgstr "" +msgstr "Verificar se a extensão do arquivo corresponde ao conteúdo no upload" #: cps/templates/config_edit.html:389 msgid "Session protection" -msgstr "" +msgstr "Proteção de sessão" #: cps/templates/config_edit.html:391 msgid "Basic" -msgstr "" +msgstr "Básica" #: cps/templates/config_edit.html:392 msgid "Strong" -msgstr "" +msgstr "Forte" #: cps/templates/config_edit.html:397 msgid "User Password policy" -msgstr "" +msgstr "Política de senha do usuário" #: cps/templates/config_edit.html:401 msgid "Minimum password length" -msgstr "" +msgstr "Comprimento mínimo da senha" #: cps/templates/config_edit.html:406 msgid "Enforce number" -msgstr "" +msgstr "Exigir número" #: cps/templates/config_edit.html:410 msgid "Enforce lowercase characters" -msgstr "" +msgstr "Exigir letras minúsculas" #: cps/templates/config_edit.html:414 msgid "Enforce uppercase characters" -msgstr "" +msgstr "Exigir letras maiúsculas" #: cps/templates/config_edit.html:418 msgid "Enforce characters (needed For Chinese/Japanese/Korean Characters)" -msgstr "" +msgstr "Exigir caracteres (necessário para caracteres chineses/japoneses/coreanos)" #: cps/templates/config_edit.html:422 msgid "Enforce special characters" -msgstr "" +msgstr "Exigir caracteres especiais" #: cps/templates/config_view_edit.html:17 msgid "View Configuration" @@ -2803,7 +2803,7 @@ msgstr "Marcar como Lido" #: cps/templates/detail.html:262 msgid "Mark Book as Read or Unread" -msgstr "" +msgstr "Marcar livro como lido ou não lido" #: cps/templates/detail.html:262 cps/templates/listenmp3.html:159 msgid "Read" @@ -2819,7 +2819,7 @@ msgstr "Adicionar ao arquivo" #: cps/templates/detail.html:275 msgid "Mark Book as archived or not, to hide it in Calibre-Web and delete it from Kobo Reader" -msgstr "" +msgstr "Marcar o livro como arquivado ou não, para ocultá-lo no Calibre-Web e excluí-lo do Kobo Reader" #: cps/templates/detail.html:301 cps/templates/listenmp3.html:190 #: cps/templates/search.html:16 @@ -2839,15 +2839,15 @@ msgstr "Escolha o Tipo do Servidor" #: cps/templates/email_edit.html:15 msgid "Standard Email Account" -msgstr "" +msgstr "Conta de e-mail padrão" #: cps/templates/email_edit.html:16 msgid "Gmail Account" -msgstr "" +msgstr "Conta do Gmail" #: cps/templates/email_edit.html:22 msgid "Setup Gmail Account" -msgstr "" +msgstr "Configurar conta do Gmail" #: cps/templates/email_edit.html:24 msgid "Revoke Gmail Access" @@ -2871,7 +2871,7 @@ msgstr "Limite do Tamanho do Anexo" #: cps/templates/email_edit.html:66 msgid "Save and Send Test Email" -msgstr "" +msgstr "Salvar e enviar e-mail de teste" #: cps/templates/email_edit.html:70 cps/templates/layout.html:26 #: cps/templates/shelf_order.html:42 cps/templates/user_table.html:174 @@ -2921,7 +2921,7 @@ msgstr "Criar Issue" #: cps/templates/http_error.html:52 msgid "Return to Database config" -msgstr "" +msgstr "Voltar para a configuração do banco de dados" #: cps/templates/http_error.html:54 msgid "Return to Home" @@ -3032,7 +3032,7 @@ msgstr "Alternar Navegação" #: cps/templates/layout.html:58 msgid "Simple Theme" -msgstr "" +msgstr "Tema simples" #: cps/templates/layout.html:66 cps/templates/layout.html:96 msgid "Account" @@ -3133,7 +3133,7 @@ msgstr "Este formato de livro será apagado permanentemente do banco de dados" #: cps/templates/modal_dialogs.html:51 msgid "This book will be permanently erased from database and hard disk" -msgstr "" +msgstr "Este livro será apagado permanentemente do banco de dados e do disco rígido" #: cps/templates/modal_dialogs.html:55 msgid "Important Kobo Note: deleted books will remain on any paired Kobo device." @@ -3177,11 +3177,11 @@ msgstr "Catálogo de e-books Calibre-Web" #: cps/templates/read.html:7 msgid "epub Reader" -msgstr "leitor de epub" +msgstr "Leitor EPUB" #: cps/templates/read.html:85 msgid "Choose a theme below:" -msgstr "" +msgstr "Escolha um tema abaixo:" #: cps/templates/read.html:89 cps/templates/readcbr.html:104 msgid "Light" @@ -3197,7 +3197,7 @@ msgstr "Sépia" #: cps/templates/read.html:95 msgid "Amber" -msgstr "" +msgstr "Âmbar" #: cps/templates/read.html:97 msgid "Black" @@ -3209,47 +3209,47 @@ msgstr "Refluir o texto quando as barras laterais estiverem abertas." #: cps/templates/read.html:114 msgid "Show pages count" -msgstr "" +msgstr "Mostrar contagem de páginas" #: cps/templates/read.html:118 msgid "Font Size" -msgstr "" +msgstr "Tamanho da fonte" #: cps/templates/read.html:126 msgid "Font" -msgstr "" +msgstr "Fonte" #: cps/templates/read.html:127 msgid "Default" -msgstr "" +msgstr "Padrão" #: cps/templates/read.html:128 msgid "Yahei" -msgstr "" +msgstr "Yahei" #: cps/templates/read.html:129 msgid "SimSun" -msgstr "" +msgstr "SimSun" #: cps/templates/read.html:130 msgid "KaiTi" -msgstr "" +msgstr "KaiTi" #: cps/templates/read.html:131 msgid "Arial" -msgstr "" +msgstr "Arial" #: cps/templates/read.html:134 msgid "Spread" -msgstr "" +msgstr "Espalhar" #: cps/templates/read.html:135 msgid "Two columns" -msgstr "" +msgstr "Duas colunas" #: cps/templates/read.html:136 msgid "One column" -msgstr "" +msgstr "Uma coluna" #: cps/templates/readcbr.html:8 msgid "Comic Reader" @@ -3269,11 +3269,11 @@ msgstr "Página seguinte" #: cps/templates/readcbr.html:80 msgid "Single Page Display" -msgstr "" +msgstr "Exibição de página única" #: cps/templates/readcbr.html:81 msgid "Long Strip Display" -msgstr "" +msgstr "Exibição em tira longa" #: cps/templates/readcbr.html:82 msgid "Scale to Best" @@ -3305,15 +3305,15 @@ msgstr "Inverter Imagem" #: cps/templates/readcbr.html:110 msgid "Display" -msgstr "" +msgstr "Exibição" #: cps/templates/readcbr.html:113 msgid "Single Page" -msgstr "" +msgstr "Página única" #: cps/templates/readcbr.html:114 msgid "Long Strip" -msgstr "" +msgstr "Tira longa" #: cps/templates/readcbr.html:119 msgid "Scale" @@ -3365,11 +3365,11 @@ msgstr "Direita para a esquerda" #: cps/templates/readcbr.html:162 msgid "Reset to Top" -msgstr "" +msgstr "Redefinir para o topo" #: cps/templates/readcbr.html:163 msgid "Remember Position" -msgstr "" +msgstr "Lembrar posição" #: cps/templates/readcbr.html:168 msgid "Scrollbar" @@ -3437,7 +3437,7 @@ msgstr "Resultados para:" #: cps/templates/search.html:29 msgid "Remove from shelf" -msgstr "" +msgstr "Remover da estante" #: cps/templates/search_form.html:21 msgid "Published Date From" @@ -3449,11 +3449,11 @@ msgstr "Data de Publicação Até" #: cps/templates/search_form.html:44 cps/templates/search_form.html:165 msgid "Any" -msgstr "" +msgstr "Qualquer" #: cps/templates/search_form.html:45 cps/templates/search_form.html:166 msgid "Empty" -msgstr "" +msgstr "Vazio" #: cps/templates/search_form.html:60 msgid "Exclude Tags" @@ -3519,11 +3519,11 @@ msgstr "Habilitar Alterar Ordem" #: cps/templates/shelf.html:28 msgid "Sort according to book added to shelf, newest first" -msgstr "" +msgstr "Ordenar de acordo com o livro adicionado à estante, o mais recente primeiro" #: cps/templates/shelf.html:29 msgid "Sort according to book added to shelf, oldest first" -msgstr "" +msgstr "Ordenar de acordo com o livro adicionado à estante, o mais antigo primeiro" #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" @@ -3595,7 +3595,7 @@ msgstr "Tempo de execução" #: cps/templates/tasks.html:19 msgid "Message" -msgstr "" +msgstr "Mensagem" #: cps/templates/tasks.html:21 msgid "Actions" @@ -3615,7 +3615,7 @@ msgstr "Redefinir senha do usuário" #: cps/templates/user_edit.html:28 msgid "Send to eReader Email Address. Use comma to separate emails for multiple eReaders" -msgstr "" +msgstr "Enviar para o endereço de e-mail do E-Reader. Use vírgula para separar e-mails de vários eReaders" #: cps/templates/user_edit.html:43 msgid "Language of Books" @@ -3675,15 +3675,15 @@ msgstr "Escolha um nome de usuário" #: cps/templates/user_table.html:135 msgid "Enter Email" -msgstr "" +msgstr "Digite o e-mail" #: cps/templates/user_table.html:136 msgid "Enter eReader Email" -msgstr "" +msgstr "Digite o e-mail do eReader" #: cps/templates/user_table.html:136 msgid "eReader Email" -msgstr "" +msgstr "E-mail do eReader" #: cps/templates/user_table.html:137 msgid "Locale" From 92084bab71cee539a60f811884819fb90846ea81 Mon Sep 17 00:00:00 2001 From: Webysther Sperandio Date: Sat, 31 Jan 2026 05:51:04 +0100 Subject: [PATCH 21/28] =?UTF-8?q?=F0=9F=8C=90=20i18n(translations):=20typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cps/translations/pt_BR/LC_MESSAGES/messages.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po index 17912e73..21c0de13 100644 --- a/cps/translations/pt_BR/LC_MESSAGES/messages.po +++ b/cps/translations/pt_BR/LC_MESSAGES/messages.po @@ -3177,7 +3177,7 @@ msgstr "Catálogo de e-books Calibre-Web" #: cps/templates/read.html:7 msgid "epub Reader" -msgstr "Leitor EPUB" +msgstr "leitor de epub" #: cps/templates/read.html:85 msgid "Choose a theme below:" From 7f7fc884c27f4ac86ba3dcbf0abbc25585185889 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 31 Jan 2026 12:31:44 +0100 Subject: [PATCH 22/28] Fix for calibre 9.0 --- cps/db.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cps/db.py b/cps/db.py index ccf28a7a..e8a7415d 100644 --- a/cps/db.py +++ b/cps/db.py @@ -416,8 +416,8 @@ class Books(Base): path = Column(String, default="", nullable=False) has_cover = Column(Integer, default=0) uuid = Column(String) - isbn = Column(String(collation='NOCASE'), default="") - flags = Column(Integer, nullable=False, default=1) + # isbn = Column(String(collation='NOCASE'), default="") + # flags = Column(Integer, nullable=False, default=1) authors = relationship(Authors, secondary=books_authors_link, backref='books') tags = relationship(Tags, secondary=books_tags_link, backref='books', order_by="Tags.name") From 5a1f3d8eec42d03228b1e5dec9bc750ca10bbc94 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Fri, 6 Feb 2026 20:39:07 +0100 Subject: [PATCH 23/28] Version bump --- cps/constants.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/constants.py b/cps/constants.py index 21fecebe..1a5af135 100644 --- a/cps/constants.py +++ b/cps/constants.py @@ -175,7 +175,7 @@ BookMeta = namedtuple('BookMeta', 'file_path, extension, title, author, cover, d 'series_id, languages, publisher, pubdate, identifiers') # python build process likes to have x.y.zbw -> b for beta and w a counting number -STABLE_VERSION = '0.6.26b' +STABLE_VERSION = '0.6.26' NIGHTLY_VERSION = dict() NIGHTLY_VERSION[0] = '$Format:%H$' From 0ce8c19e88ca4d13dd7b9d9cc56a4b3be7d75dd0 Mon Sep 17 00:00:00 2001 From: Ozzie Fernandez Isaacs Date: Fri, 6 Feb 2026 21:59:49 +0100 Subject: [PATCH 24/28] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6b9ad462..1eb2b38c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "calibreweb" description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database." authors = [{name = "@OzzieIsaacs", email = "Ozzie.Fernandez.Isaacs@googlemail.com"}] maintainers = [{name = "@OzzieIsaacs"}] -license = {text = "GPLv3+"} +license = "GPL-3.0-or-later" classifiers = [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: GNU Affero General Public License v3", From bed8957eaec8889ac1e37bc2c32abbc8f9a039e8 Mon Sep 17 00:00:00 2001 From: Ozzie Fernandez Isaacs Date: Sat, 7 Feb 2026 09:22:39 +0100 Subject: [PATCH 25/28] Update pyproject.toml --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1eb2b38c..b5d54ad4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,6 @@ maintainers = [{name = "@OzzieIsaacs"}] license = "GPL-3.0-or-later" classifiers = [ "Development Status :: 5 - Production/Stable", - "License :: OSI Approved :: GNU Affero General Public License v3", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", From b64645e5f55413368137cb418038ce6d4c2875a1 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sun, 8 Feb 2026 12:12:34 +0100 Subject: [PATCH 26/28] Cover path is now selected based on correct setting and not if split_path is present or not (fix for #3527) Version bump Updated requirements --- cps/config_sql.py | 2 +- cps/constants.py | 2 +- optional-requirements.txt | 14 +++++++------- requirements.txt | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cps/config_sql.py b/cps/config_sql.py index bbca3241..c73a6cf0 100644 --- a/cps/config_sql.py +++ b/cps/config_sql.py @@ -403,7 +403,7 @@ class ConfigSQL(object): self.save() def get_book_path(self): - return self.config_calibre_split_dir if self.config_calibre_split_dir else self.config_calibre_dir + return self.config_calibre_split_dir if self.config_calibre_split else self.config_calibre_dir def store_calibre_uuid(self, calibre_db, Library_table): from . import app diff --git a/cps/constants.py b/cps/constants.py index 1a5af135..1ddef87c 100644 --- a/cps/constants.py +++ b/cps/constants.py @@ -175,7 +175,7 @@ BookMeta = namedtuple('BookMeta', 'file_path, extension, title, author, cover, d 'series_id, languages, publisher, pubdate, identifiers') # python build process likes to have x.y.zbw -> b for beta and w a counting number -STABLE_VERSION = '0.6.26' +STABLE_VERSION = '0.6.27b' NIGHTLY_VERSION = dict() NIGHTLY_VERSION[0] = '$Format:%H$' diff --git a/optional-requirements.txt b/optional-requirements.txt index 6d75d572..5d0da219 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -1,8 +1,8 @@ # GDrive Integration google-api-python-client>=2.73.00,<2.200.0 -gevent>20.6.0,<24.12.0 -greenlet>=0.4.17,<3.3.0 -httplib2>=0.9.2,<0.23.0 +gevent>20.6.0,<25.9.2 +greenlet>=0.4.17,<3.4.0 +httplib2>=0.9.2,<0.32.0 oauth2client>=4.0.0,<4.1.4 uritemplate>=3.0.0,<4.3.0 pyasn1-modules>=0.0.8,<0.7.0 @@ -21,19 +21,19 @@ python-Levenshtein>=0.12.0,<0.28.0 # ldap login python-ldap>=3.0.0,<3.5.0 -Flask-SimpleLDAP>=1.4.0,<2.1.0 +Flask-SimpleLDAP>=1.4.0,<2.2.0 # oauth Flask-Dance>=2.0.0,<7.2.0 -SQLAlchemy-Utils>=0.33.5,<0.42.0 +SQLAlchemy-Utils>=0.33.5,<0.43.0 # metadata extraction rarfile>=3.2,<5.0 scholarly>=1.2.0,<1.8 markdown2>=2.0.0,<2.6.0 -html2text>=2020.1.16,<2025.2.26 +html2text>=2020.1.16,<2025.4.16 python-dateutil>=2.1,<2.10.0 -beautifulsoup4>=4.0.1,<4.14.0 +beautifulsoup4>=4.0.1,<4.15.0 faust-cchardet>=2.1.18,<2.1.20 py7zr>=0.15.0,<0.21.0 mutagen>=1.40.0,<1.50.0 diff --git a/requirements.txt b/requirements.txt index 9c858ede..60ceea4b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,23 +5,23 @@ Flask-Principal>=0.3.2,<0.5.1 Flask>=1.0.2,<3.2.0 iso-639>=0.4.5,<0.5.0;python_version<'3.12' pycountry>=20.0.0,<25.0.0;python_version>='3.12' -PyPDF>=6.1.3,<6.5.0 +PyPDF>=6.1.3,<6.7.0 pytz>=2016.10 requests>=2.32.0,<2.33.0 SQLAlchemy>=1.3.0,<2.1.0 tornado>=6.4.2,<6.6 Wand>=0.4.4,<0.7.0 -unidecode>=0.04.19,<1.4.0 +unidecode>=0.04.19,<1.5.0 lxml>=4.9.1,<5.4.0 flask-wtf>=0.14.2,<1.3.0 chardet>=3.0.0,<5.3.0 netifaces-plus>=0.12.0,<0.13.0 urllib3>=1.22,<3.0 -Flask-Limiter>=2.3.0,<3.13.0 -regex>=2022.3.2,<2025.3.20 -bleach>=6.0.0,<6.3.0 +Flask-Limiter>=2.3.0,<4.2.0 +regex>=2022.3.2,<2026.1.16 +bleach>=6.0.0,<6.4.0 python-magic>=0.4.27,<0.5.0 python-magic-bin>=0.4.0,<0.5.0;sys_platform=='win32' flask-httpAuth>=4.4.0,<5.0.0 -cryptography>=39.0.0,<45.0.0 -certifi>=2024.7.4,<2025.8.24 +cryptography>=39.0.0,<47.0.0 +certifi>=2024.7.4,<2026.1.5 From 51a2f36966b54fceb91ed4fe8f4e4718d863ec44 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Fri, 13 Feb 2026 19:16:18 +0100 Subject: [PATCH 27/28] Revert flask_limiter version --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 60ceea4b..0644d14d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,7 +17,7 @@ flask-wtf>=0.14.2,<1.3.0 chardet>=3.0.0,<5.3.0 netifaces-plus>=0.12.0,<0.13.0 urllib3>=1.22,<3.0 -Flask-Limiter>=2.3.0,<4.2.0 +Flask-Limiter>=2.3.0,<4.0.0 regex>=2022.3.2,<2026.1.16 bleach>=6.0.0,<6.4.0 python-magic>=0.4.27,<0.5.0 From 9c7a834cec7cb9122c2d2548a66f39d748ff2397 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Fri, 13 Feb 2026 19:18:00 +0100 Subject: [PATCH 28/28] Fix italian translation error --- cps/translations/ar/LC_MESSAGES/messages.mo | Bin 75567 -> 75567 bytes cps/translations/ar/LC_MESSAGES/messages.po | 2 +- cps/translations/cs/LC_MESSAGES/messages.mo | Bin 35143 -> 35143 bytes cps/translations/cs/LC_MESSAGES/messages.po | 2 +- cps/translations/de/LC_MESSAGES/messages.mo | Bin 67032 -> 67032 bytes cps/translations/de/LC_MESSAGES/messages.po | 2 +- cps/translations/el/LC_MESSAGES/messages.mo | Bin 51454 -> 51454 bytes cps/translations/el/LC_MESSAGES/messages.po | 2 +- cps/translations/es/LC_MESSAGES/messages.mo | Bin 68845 -> 68845 bytes cps/translations/es/LC_MESSAGES/messages.po | 2 +- cps/translations/fi/LC_MESSAGES/messages.mo | Bin 24224 -> 24224 bytes cps/translations/fi/LC_MESSAGES/messages.po | 2 +- cps/translations/fr/LC_MESSAGES/messages.mo | Bin 71576 -> 71576 bytes cps/translations/fr/LC_MESSAGES/messages.po | 2 +- cps/translations/gl/LC_MESSAGES/messages.mo | Bin 68215 -> 68215 bytes cps/translations/gl/LC_MESSAGES/messages.po | 2 +- cps/translations/hu/LC_MESSAGES/messages.mo | Bin 22150 -> 22150 bytes cps/translations/hu/LC_MESSAGES/messages.po | 2 +- cps/translations/id/LC_MESSAGES/messages.mo | Bin 52769 -> 52769 bytes cps/translations/id/LC_MESSAGES/messages.po | 2 +- cps/translations/it/LC_MESSAGES/messages.mo | Bin 68102 -> 68103 bytes cps/translations/it/LC_MESSAGES/messages.po | 4 ++-- cps/translations/ja/LC_MESSAGES/messages.mo | Bin 58319 -> 58319 bytes cps/translations/ja/LC_MESSAGES/messages.po | 2 +- cps/translations/km/LC_MESSAGES/messages.mo | Bin 21926 -> 21926 bytes cps/translations/km/LC_MESSAGES/messages.po | 2 +- cps/translations/ko/LC_MESSAGES/messages.mo | Bin 66213 -> 66213 bytes cps/translations/ko/LC_MESSAGES/messages.po | 2 +- cps/translations/nl/LC_MESSAGES/messages.mo | Bin 53703 -> 53703 bytes cps/translations/nl/LC_MESSAGES/messages.po | 2 +- cps/translations/no/LC_MESSAGES/messages.mo | Bin 35671 -> 35671 bytes cps/translations/no/LC_MESSAGES/messages.po | 2 +- cps/translations/pl/LC_MESSAGES/messages.mo | Bin 67771 -> 67771 bytes cps/translations/pl/LC_MESSAGES/messages.po | 2 +- cps/translations/pt/LC_MESSAGES/messages.mo | Bin 57707 -> 57707 bytes cps/translations/pt/LC_MESSAGES/messages.po | 2 +- .../pt_BR/LC_MESSAGES/messages.mo | Bin 68057 -> 68057 bytes .../pt_BR/LC_MESSAGES/messages.po | 2 +- cps/translations/ru/LC_MESSAGES/messages.mo | Bin 42528 -> 42528 bytes cps/translations/ru/LC_MESSAGES/messages.po | 2 +- cps/translations/sk/LC_MESSAGES/messages.mo | Bin 61313 -> 61313 bytes cps/translations/sk/LC_MESSAGES/messages.po | 2 +- cps/translations/sl/LC_MESSAGES/messages.mo | Bin 63335 -> 63335 bytes cps/translations/sl/LC_MESSAGES/messages.po | 2 +- cps/translations/sv/LC_MESSAGES/messages.mo | Bin 43915 -> 43915 bytes cps/translations/sv/LC_MESSAGES/messages.po | 2 +- cps/translations/tr/LC_MESSAGES/messages.mo | Bin 20029 -> 20029 bytes cps/translations/tr/LC_MESSAGES/messages.po | 2 +- cps/translations/uk/LC_MESSAGES/messages.mo | Bin 22242 -> 22242 bytes cps/translations/uk/LC_MESSAGES/messages.po | 2 +- cps/translations/vi/LC_MESSAGES/messages.mo | Bin 29285 -> 29285 bytes cps/translations/vi/LC_MESSAGES/messages.po | 2 +- .../zh_Hans_CN/LC_MESSAGES/messages.mo | Bin 60851 -> 60851 bytes .../zh_Hans_CN/LC_MESSAGES/messages.po | 2 +- .../zh_Hant_TW/LC_MESSAGES/messages.mo | Bin 52248 -> 52248 bytes .../zh_Hant_TW/LC_MESSAGES/messages.po | 2 +- messages.pot | 2 +- 57 files changed, 30 insertions(+), 30 deletions(-) diff --git a/cps/translations/ar/LC_MESSAGES/messages.mo b/cps/translations/ar/LC_MESSAGES/messages.mo index 6e6b2ccb46bbc6c614e566cb577f8bb6efaf5368..62900ec3a67cfc4b8c72ac1df864ce3f874726d1 100644 GIT binary patch delta 25 hcmZ2~j%EEhmJJ7bxr}rTjTH^#%3IPBB delta 25 hcmZ2~j%EEhmJJ7bxeRrU4HXQHtW1nIpXyDW2>^!-3HSg2 diff --git a/cps/translations/ar/LC_MESSAGES/messages.po b/cps/translations/ar/LC_MESSAGES/messages.po index 9876eb97..a36fe3a4 100644 --- a/cps/translations/ar/LC_MESSAGES/messages.po +++ b/cps/translations/ar/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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2025-06-07 14:44+0300\n" "Last-Translator: UsamaFoad \n" "Language: ar\n" diff --git a/cps/translations/cs/LC_MESSAGES/messages.mo b/cps/translations/cs/LC_MESSAGES/messages.mo index cd352e5a6b7ad3b1bb0eefc159997e77dddcfc9c..bad9411ac438b73e84d578c96d5289f3578900be 100644 GIT binary patch delta 25 gcmX>;iRt(xrVU#DTt>Qv#tMd(R)*%AP5gze0B#}&TmS$7 delta 25 gcmX>;iRt(xrVU#DT!y;Fh6;v8Rwl-qP5gze0BzF;Qvd(} diff --git a/cps/translations/cs/LC_MESSAGES/messages.po b/cps/translations/cs/LC_MESSAGES/messages.po index 5a61701e..1bbeeba3 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2020-06-09 21:11+0100\n" "Last-Translator: Lukas Heroudek \n" "Language: cs_CZ\n" diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo index 827856e52c26cde0ffe6b35a798719441fd46808..033101d8c34f7e1902b0a9a919e916635da9d31f 100644 GIT binary patch delta 25 gcmcc7&2pogWrOo%E+bt-V+BJ?D?{_mzLUF)0C@Tc-T(jq delta 25 gcmcc7&2pogWrOo%E<;^oLj^-4D-+|*zLUF)0C=ki)c^nh diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index e1a7b10a..09c2459c 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2025-10-22 19:56+0200\n" "Last-Translator: Sebastian Holzer\n" "Language: de\n" diff --git a/cps/translations/el/LC_MESSAGES/messages.mo b/cps/translations/el/LC_MESSAGES/messages.mo index a75cd6355a4c452d8d3a09d6166ca7d7a48dbdeb..0d7fbe5fdef55f4b8b94b85c786c6050eee46429 100644 GIT binary patch delta 25 hcmex2k@??5<_#SoTt>Qv#tMd(R)*%ACxzsc004oV2_pai delta 25 hcmex2k@??5<_#SoT!y;Fh6;v8Rwl-qCxzsc004nb2^s(Z diff --git a/cps/translations/el/LC_MESSAGES/messages.po b/cps/translations/el/LC_MESSAGES/messages.po index 8b9e34b3..44af81e1 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Depountis Georgios\n" "Language: el\n" diff --git a/cps/translations/es/LC_MESSAGES/messages.mo b/cps/translations/es/LC_MESSAGES/messages.mo index bfc3e566e01741920054a0e4f2bda50288d8eacd..e7d9b22c9577066c2f621be2b072b204168e3d2b 100644 GIT binary patch delta 25 hcmaDmljZG9mJJIhaT)0v8Y>uDS{a&eUOmaF3IK+|37r4{ delta 25 hcmaDmljZG9mJJIhaT)3w8!8wYS(zAbUOmaF3IK+336uZ; diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po index 8271111d..52aa59fb 100644 --- a/cps/translations/es/LC_MESSAGES/messages.po +++ b/cps/translations/es/LC_MESSAGES/messages.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2024-10-29 15:26+0100\n" "Last-Translator: adruki \n" "Language: es\n" diff --git a/cps/translations/fi/LC_MESSAGES/messages.mo b/cps/translations/fi/LC_MESSAGES/messages.mo index 56638bf72f37b6806c349f1172603830e22a5c5c..9155f5d06d204f6eecaf257a4a4a0fb0c0246f3a 100644 GIT binary patch delta 25 gcmZ3mmvO;f#trHgTt>Qv#tMd(R)*%A4K4E30BrLIb^rhX delta 25 gcmZ3mmvO;f#trHgT!y;Fh6;v8Rwl-q4K4E30BocOZ2$lO diff --git a/cps/translations/fi/LC_MESSAGES/messages.po b/cps/translations/fi/LC_MESSAGES/messages.po index c998bc21..e8f3eb94 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2020-01-12 13:56+0100\n" "Last-Translator: Samuli Valavuo \n" "Language: fi\n" diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo index 22bacfa81b519ec049d6b5b5db660685fb18f618..697d317387623cc2e5ce11caf7bf9f6478968444 100644 GIT binary patch delta 25 hcmbQSo@K^*mJOPdxr}rTjTH\n" "Language: fr\n" diff --git a/cps/translations/gl/LC_MESSAGES/messages.mo b/cps/translations/gl/LC_MESSAGES/messages.mo index 79c47a364022b41e026eb3ba04234abc0b002040..8db1456e3344b755f0eeb418325bd8b8387b5687 100644 GIT binary patch delta 25 hcmex9h2{GcmJJIhaT)0v8Y>uDS{a&eUOnkdIRJ>q3N8Qu delta 25 hcmex9h2{GcmJJIhaT)3w8!8wYS(zAbUOnkdIRJ=w3MBvl diff --git a/cps/translations/gl/LC_MESSAGES/messages.po b/cps/translations/gl/LC_MESSAGES/messages.po index 8a9cc454..c3994040 100644 --- a/cps/translations/gl/LC_MESSAGES/messages.po +++ b/cps/translations/gl/LC_MESSAGES/messages.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2024-12-08 13:50+0100\n" "Last-Translator: pollitor@gmx.com\n" "Language: gl\n" diff --git a/cps/translations/hu/LC_MESSAGES/messages.mo b/cps/translations/hu/LC_MESSAGES/messages.mo index 03c3377ceae4cdd9c19c0720a73b0a5e5bb991f4..bbfac0997e04d59af391e18ed121baae484e08f8 100644 GIT binary patch delta 25 gcmZo$%hQv#tMd(R)*%Al`8*-003;m2wVUF delta 25 hcmZ2Dhk4-~<_!{+T!y;Fh6;v8Rwl-ql`8*-003-s2vYz6 diff --git a/cps/translations/id/LC_MESSAGES/messages.po b/cps/translations/id/LC_MESSAGES/messages.po index 942e2abc..8148a0a7 100644 --- a/cps/translations/id/LC_MESSAGES/messages.po +++ b/cps/translations/id/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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2023-01-21 10:00+0700\n" "Last-Translator: Arief Hidayat\n" "Language: id\n" diff --git a/cps/translations/it/LC_MESSAGES/messages.mo b/cps/translations/it/LC_MESSAGES/messages.mo index e4e82029d4e86ffd15742267b559c16335744db3..9979eda30d908beef8eb5d4592342456c40cf17d 100644 GIT binary patch delta 1026 zcmZph!qPs4Wy2ApdM5@3hLgV-7<3sJ7o)^KDFXw;sox9?Dhvz^4u2qY>K_IM zV+IC>u0IS677Ppw`~EO6m@qIfeE-8x&mh3Sz@YP&fdS+Y+rJD9EDQ_`4SyLJL>L$t zTK_UIxG*p<%=*i~;LO0laQ`pFAmx7y3^EK14B`J67~B{b7)t&zF!(VrFzo)vz>vtm zz`*sNfkBmlfg$HV1A`s|1H+{M3=BF93=9YVGcd3*FfhFP&%hwaz`*eJe?0>O69WSS zI|C!wKrRMG24MyU26YBTumWo+?aRQ(pvJ(!5YNEKzzqrsD1Q_9z6h`v%rh`Ei75PK%qGcq!8FfcGIXJlkhXJBC1z{tp; z3^It35gamq7#YD)!^_0TV93D0V9mtHAjZJJkPGFvFflSnGcYi0V`60RVqjpn#Kg#8 z#=yWJ%M4K;!VIyvjhPV~C6kyL8Tc3&7`8Jrf}^_r7&9Y7G6Ms{H)cj~oJX-hG!(Hg zGRQJ8Fx0UyGVp@poCV^bRV<7QlAxewVFagzt1J))+-G3~2kmbbNJufULOi6&3h_`N zDQe|UgPy(e5Hbw?b1_lOyHb_WS zvOz3tVuLtf9vdSA7Xt&s3O0y^o7o@^z0C%3=o>bOkJ;E687vtX7)042;{NQ64D1Z` z3=Em<5Q7TYAwI5VXJlYyU|^WZ&InHZ^Vu00j2IXg7PB)lL@_WhTw`ZsFlAt1Fyvqa zC$e-7NC@?EFoF~9Yz{^SD^OH&K;rl{l>X1b$iTzEz#z=Y2u|b*oQw>7F$@e0s+6{P;<#0kQF5rYXd>SVsgCYY1!vd)IAx=o5e6e|^*@PG_ bBV9vd1w%_KL-WnXlQ*X`mTZ3ZOMxE%A8UW| delta 1024 zcmZpl!qPT{Wy2ApdPfEZhLgV-7<3sJ7`T5kFz7QdFj)R(U=U|uV95Ng@FeEZC zFmV27U{GaXV95T@z@W##z%cPY1A`6&1H*y;3=C`x3=D7oGcX7;Ffe@iU(dk6!~hax z1RKc7z{nuXz`&r!zz9}g1*Lr$7#Y+U7#QLh7#X-hApzx2WME{FV_;y|!NABM!N9<9 zoq-W-(FX=baEQnTRg8O#_M z7-X0s>Vugf7Pm4pf}><2Ga~~Z0|Uc0W=3#S*B@nOWJqRUVED?+2#)he7KnyI7DfhH z1_p*&7DfhMP@J!kwFp^)GUnPv~Yz5;(&WBjNqXC#R3T_MplT2G*}@X3SfnV zPzfs|II4SD89`~Fp5X#3BZCkF0|P4?#9|3Hh(RiBj0{Skw86&6pvl0%;Kv3DsR}lT zg^g?w2h3$-WZ+_8U|7xuv2YU`#G$v?AP#-a2JtZ~J0pW70|SEyJ4D=%osof^p`L*u zgB@Z}0XxLURqTumtPBhcGuRoysec|jBZCnG1H&SAMusQ`28OHbj0~m>3=9SwjNn9; z#sLYT9u7uuqMgOT$Y2GEN)AXIzk<^LI2ajt7#J9YI2pl-T%MDWfiH%EfkA~6;$ve@ zhyhld5Fhz-LP8`8sv(UN;-G9!h{gGw5Qk6YWMoieU|^UJ6+g%cNtDkw&orA5!)2&z XY^Y#pWMyK!*?98i^v%zIDewaTDRO@L diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index babe7857..7f3b4894 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2026-01-04 02:22+0100\n" "Last-Translator: Massimo Pissarello \n" "Language: it\n" @@ -3654,7 +3654,7 @@ msgstr "Aggiungi valori personali consentiti/negati nelle colonne" #: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" -msgstr "Sincronizza con Kobo unicamene i libri negli scaffali selezionati" +msgstr "Sincronizza con Kobo unicamente i libri negli scaffali selezionati" #: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" diff --git a/cps/translations/ja/LC_MESSAGES/messages.mo b/cps/translations/ja/LC_MESSAGES/messages.mo index ee8c6bf838560ae8d3066f6e558a6375332dfb05..3fd8e6788509e07585301dba04cc9079d50adb94 100644 GIT binary patch delta 25 hcmX?qoca85<_(K0xQuiSjTH\n" "Language: ja\n" diff --git a/cps/translations/km/LC_MESSAGES/messages.mo b/cps/translations/km/LC_MESSAGES/messages.mo index 9bb3fb06a291f5c9201ad4e17120496d1c42265f..84b71b8dfe3f73b6a9a43838c4ff14b8eae23242 100644 GIT binary patch delta 25 hcmZ3snsM1`#tl~$xQuiSjTHQv#tMd(R)*%AS5Nwt4*+*+36cN+ delta 25 hcmZ45%CfYTWy8WrT!y;Fh6;v8Rwl-qS5Nwt4*+)?35fsz diff --git a/cps/translations/ko/LC_MESSAGES/messages.po b/cps/translations/ko/LC_MESSAGES/messages.po index eaf2c19a..a368958a 100644 --- a/cps/translations/ko/LC_MESSAGES/messages.po +++ b/cps/translations/ko/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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2024-11-01 17:50+0900\n" "Last-Translator: limeade23 \n" "Language: ko\n" diff --git a/cps/translations/nl/LC_MESSAGES/messages.mo b/cps/translations/nl/LC_MESSAGES/messages.mo index ca8539d46b11c6287f0e32c2ad03a626e0cd95db..f359f031bf15709cb10d5df2b427a94a9046569b 100644 GIT binary patch delta 25 gcmX@UnECi(<_!@QTt>Qv#tMd(R)*%AlPXdp0eLkDp8x;= delta 25 gcmX@UnECi(<_!@QT!y;Fh6;v8Rwl-qlPXdp0eI#JmH+?% diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 50f6537f..607f8580 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2023-12-20 22:00+0100\n" "Last-Translator: Michiel Cornelissen \n" "Language: nl\n" diff --git a/cps/translations/no/LC_MESSAGES/messages.mo b/cps/translations/no/LC_MESSAGES/messages.mo index 5e43d7fca101fb20a1571768e42fffd85f1d1561..e42b87ba679a475f83ee0888d22fbcd7cbbb2c30 100644 GIT binary patch delta 25 hcmcaUjp_O{rVWLGTt>Qv#tMd(R)*%As{`*?0swiL2;Kky delta 25 hcmcaUjp_O{rVWLGT!y;Fh6;v8Rwl-qs{`*?0swhR2-N@p diff --git a/cps/translations/no/LC_MESSAGES/messages.po b/cps/translations/no/LC_MESSAGES/messages.po index d8dddbd4..6ea433d7 100644 --- a/cps/translations/no/LC_MESSAGES/messages.po +++ b/cps/translations/no/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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2023-01-06 11:00+0000\n" "Last-Translator: Vegard Fladby \n" "Language: no\n" diff --git a/cps/translations/pl/LC_MESSAGES/messages.mo b/cps/translations/pl/LC_MESSAGES/messages.mo index de7343aafa48ae6ee390f0fb72a26eba520bf15c..dfcf240458f42f6c87b06c2a238199fc981afe21 100644 GIT binary patch delta 25 hcmdlzk!ANpmJObhxr}rTjTH\n" "Language: pl\n" diff --git a/cps/translations/pt/LC_MESSAGES/messages.mo b/cps/translations/pt/LC_MESSAGES/messages.mo index 807f4b72a91b24edfae9d8a4d54fa81cf2547ef6..4752c43ec6e7e3e46674ef57299754b964ae457c 100644 GIT binary patch delta 25 hcmaETi23y)<_&cQv#tMd(R)*%AJ8B-M004>K3IYHC delta 25 hcmaETi23y)<_&c\n" "Language: pt\n" diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.mo b/cps/translations/pt_BR/LC_MESSAGES/messages.mo index 998401d0d87877ac074d019fe875b1aab91d928f..30c1f5da90a07b811781a028a2fbfc112651155f 100644 GIT binary patch delta 25 hcmcaPndRnWmJM!GxQuiSjTHH2>Ad2 delta 25 hcmcaPndRnWmJM!GxD0iT4HXQHtW1nI2TbWK1ps=N2=D*^ diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po index 91980cd8..a08c2c79 100644 --- a/cps/translations/pt_BR/LC_MESSAGES/messages.po +++ b/cps/translations/pt_BR/LC_MESSAGES/messages.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: br\n" diff --git a/cps/translations/ru/LC_MESSAGES/messages.mo b/cps/translations/ru/LC_MESSAGES/messages.mo index e5dbb267c129ebea76bf1988892c0d5e9046f693..3591639e9ec6ebae07f42c7bb9d3c9e6046b707d 100644 GIT binary patch delta 25 hcmZ2*hH1eWrVVPITt>Qv#tMd(R)*%A4Lm=@0043~2yFlW delta 25 hcmZ2*hH1eWrVVPIT!y;Fh6;v8Rwl-q4Lm=@004352xI^N diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index 6c44d78d..808c69cd 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2020-04-29 01:20+0400\n" "Last-Translator: ZIZA\n" "Language: ru\n" diff --git a/cps/translations/sk/LC_MESSAGES/messages.mo b/cps/translations/sk/LC_MESSAGES/messages.mo index ca23351e651a56c2736eee1d81f2670f8cff33be..03edaf1c6e8b84f2009987a825eb81fd748ed906 100644 GIT binary patch delta 25 hcmZp?&)j&QdBeU|E+bt-V+BJ?D?{_mCt7!A0sw($3Dp1q delta 25 hcmZp?&)j&QdBeU|E<;^oLj^-4D-+|*Ct7!A0sw&+3CsWh diff --git a/cps/translations/sk/LC_MESSAGES/messages.po b/cps/translations/sk/LC_MESSAGES/messages.po index de420e1d..c4464d81 100644 --- a/cps/translations/sk/LC_MESSAGES/messages.po +++ b/cps/translations/sk/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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2023-11-01 06:12+0100\n" "Last-Translator: Branislav Hanáček \n" "Language: sk_SK\n" diff --git a/cps/translations/sl/LC_MESSAGES/messages.mo b/cps/translations/sl/LC_MESSAGES/messages.mo index a8845c91f6d10234296028700729bec203c67eec..cee5866324a9be6e09d00215d6e30f1e394dda11 100644 GIT binary patch delta 25 gcmaFQv#tMd(R)*%A9eUNX0E&?bE&u=k delta 25 gcmaF(^b diff --git a/cps/translations/sl/LC_MESSAGES/messages.po b/cps/translations/sl/LC_MESSAGES/messages.po index 8d225b5a..36d0680e 100644 --- a/cps/translations/sl/LC_MESSAGES/messages.po +++ b/cps/translations/sl/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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2024-09-18 19:45+0200\n" "Last-Translator: Andrej Kralj\n" "Language: sl\n" diff --git a/cps/translations/sv/LC_MESSAGES/messages.mo b/cps/translations/sv/LC_MESSAGES/messages.mo index bce13f6c738090e9a61c96d1aa2b16115edcb59a..038ccccc4284f9a90a56dd0173eb6b2031c80c12 100644 GIT binary patch delta 25 hcmeCa&eVOKX~X^$E+bt-V+BJ?D?{_mCsPi&0RVp+34H(n delta 25 hcmeCa&eVOKX~X^$E<;^oLj^-4D-+|*CsPi&0RVo?33LDe diff --git a/cps/translations/sv/LC_MESSAGES/messages.po b/cps/translations/sv/LC_MESSAGES/messages.po index fdb81e23..9a12eba3 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2021-05-13 11:00+0000\n" "Last-Translator: Jonatan Nyberg \n" "Language: sv\n" diff --git a/cps/translations/tr/LC_MESSAGES/messages.mo b/cps/translations/tr/LC_MESSAGES/messages.mo index 784724debe44119b7d540eec97787920268a6ab3..474e9bedf2177352201122b9ea89e7d7ac3912f6 100644 GIT binary patch delta 25 hcmdlxhjH&5#tpZ1xr}rTjTH\n" "Language: tr\n" diff --git a/cps/translations/uk/LC_MESSAGES/messages.mo b/cps/translations/uk/LC_MESSAGES/messages.mo index be75580ab38df3b6e9a85c0e742da79fd7e1b2ee..55a4a235b98104b1d3188292f4bd0028ce20cb76 100644 GIT binary patch delta 25 hcmaE~mhsVA#to-6xQuiSjTH\n" "Language: uk\n" diff --git a/cps/translations/vi/LC_MESSAGES/messages.mo b/cps/translations/vi/LC_MESSAGES/messages.mo index 0422aba1fe933c16a1dcfe93973fddcaf26f1ef4..0cc4b13f06c918be67e4da7166125fe832cd1c3c 100644 GIT binary patch delta 25 gcmaF*gz@PU#tjQv#tMd(R)*%AjqHt$0f4XwF8}}l delta 25 gcmaF*gz@PU#tj\n" "Language: vi\n" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index e2715a313d92b1e7722498156d4eecd9a65e7ba4..6f3f26fb541233a24a3c7de0b16cf6449b09ec3c 100644 GIT binary patch delta 25 hcmdmdn|bqX<_*qMxQuiSjTH diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index dbe54ba9..fc9843f1 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2025-12-06 13:53+0800\n" "Last-Translator: qx100\n" "Language: zh_CN\n" diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo index 3bd5575b88f6028c1918667bad99a5e00a65ac96..13d1a366a6cebf8a00373ae238badb3577049177 100644 GIT binary patch delta 25 hcmbO+gL%db<_(YQxr}rTjTH$>8 diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po index 6e50ee9e..eba101f3 100644 --- a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: 2025-09-10 03:46+0000\n" "Last-Translator: finrodchen \n" "Language: zh_TW\n" diff --git a/messages.pot b/messages.pot index a7220d62..a020a01c 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: 2026-01-31 12:43+0100\n" +"POT-Creation-Date: 2026-02-13 19:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n"