From fd993b506353c28ff48c62d86c61efb82e7cc4f7 Mon Sep 17 00:00:00 2001 From: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com> Date: Sat, 3 Aug 2024 14:25:15 +0200 Subject: [PATCH 01/21] feat: use lazy loading for images --- cps/templates/image.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cps/templates/image.html b/cps/templates/image.html index 0bdba9a51..f84fa12b2 100644 --- a/cps/templates/image.html +++ b/cps/templates/image.html @@ -6,6 +6,7 @@ srcset="{{ srcset }}" src="{{ url_for('web.get_cover', book_id=book.id, resolution='og', c=book|last_modified) }}" alt="{{ image_alt }}" + loading="lazy" /> {%- endmacro %} @@ -16,5 +17,6 @@ srcset="{{ srcset }}" src="{{ url_for('web.get_series_cover', series_id=series.id, resolution='og', c='day'|cache_timestamp) }}" alt="{{ book_title }}" + loading="lazy" /> {%- endmacro %} From 26c8e15436ccad567c91214e92404fe6314cd065 Mon Sep 17 00:00:00 2001 From: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com> Date: Sat, 3 Aug 2024 14:59:16 +0200 Subject: [PATCH 02/21] feat: resize and convert images to webp using Flask-Image-Resizer --- cps/__init__.py | 6 +++++- cps/templates/image.html | 4 ++-- requirements.txt | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cps/__init__.py b/cps/__init__.py index 157dd14e5..f945b97a7 100755 --- a/cps/__init__.py +++ b/cps/__init__.py @@ -26,12 +26,13 @@ import os import mimetypes from flask import Flask +from flask_image_resizer import Images + from .MyLoginManager import MyLoginManager from flask_principal import Principal from . import logger from .cli import CliParameter -from .constants import CONFIG_DIR from .reverseproxy import ReverseProxied from .server import WebServer from .dep_check import dependency_check @@ -124,6 +125,9 @@ def create_app(): config_sql.load_configuration(ub.session, encrypt_key) config.init_config(ub.session, encrypt_key, cli_param) + # Initialize Flask-Images + Images(app) + if error: log.error(error) diff --git a/cps/templates/image.html b/cps/templates/image.html index f84fa12b2..088e6b99b 100644 --- a/cps/templates/image.html +++ b/cps/templates/image.html @@ -4,7 +4,7 @@ {% set srcset = book|get_cover_srcset %} {{ image_alt }} @@ -15,7 +15,7 @@ {% set srcset = series|get_series_srcset %} {{ book_title }} diff --git a/requirements.txt b/requirements.txt index 460a73578..965d039fa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,3 +20,4 @@ regex>=2022.3.2,<2024.6.25 bleach>=6.0.0,<6.2.0 python-magic>=0.4.27,<0.5.0 flask-httpAuth>=4.4.0,<5.0.0 +Flask-Image-Resizer==3.0.6 From ba383643f50b2672884a465a139207513482ee05 Mon Sep 17 00:00:00 2001 From: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com> Date: Sat, 3 Aug 2024 15:49:15 +0200 Subject: [PATCH 03/21] feat: resize images directly at cover endpoint --- cps/helper.py | 30 ++++++++++++++++++++++-------- cps/templates/image.html | 4 ++-- cps/web.py | 24 ++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 10 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index 004e1b0e0..37ee7bb2e 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -30,10 +30,12 @@ import requests import unidecode from uuid import uuid4 -from flask import send_from_directory, make_response, abort, url_for, Response +from flask import send_from_directory, make_response, abort, url_for, Response, redirect from flask_babel import gettext as _ from flask_babel import lazy_gettext as N_ from flask_babel import get_locale +from flask_image_resizer import resized_img_src + from .cw_login import current_user from sqlalchemy.sql.expression import true, false, and_, or_, text, func from sqlalchemy.exc import InvalidRequestError, OperationalError @@ -749,6 +751,8 @@ def get_book_cover_with_uuid(book_uuid, resolution=None): def get_book_cover_internal(book, resolution=None): + """returns an optimized version of the cover, unless using google drive""" + if book and book.has_cover: # Send the book cover thumbnail if it exists in cache @@ -757,8 +761,13 @@ def get_book_cover_internal(book, resolution=None): if thumbnail: cache = fs.FileSystem() if cache.get_cache_file_exists(thumbnail.filename, CACHE_TYPE_THUMBNAILS): - return send_from_directory(cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), - thumbnail.filename) + return redirect(resized_img_src( + os.path.join( + cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), + thumbnail.filename + ), + format="webp" + )) # Send the book cover from Google Drive if configured if config.config_use_google_drive: @@ -777,9 +786,9 @@ def get_book_cover_internal(book, resolution=None): # Send the book cover from the Calibre directory else: - cover_file_path = os.path.join(config.get_book_path(), book.path) - if os.path.isfile(os.path.join(cover_file_path, "cover.jpg")): - return send_from_directory(cover_file_path, "cover.jpg") + cover_file_path = os.path.join(config.get_book_path(), book.path, "cover.jpg") + if os.path.isfile(cover_file_path): + return redirect(resized_img_src(cover_file_path, format="webp")) else: return get_cover_on_failure() else: @@ -820,8 +829,13 @@ def get_series_cover_internal(series_id, resolution=None): if thumbnail: cache = fs.FileSystem() if cache.get_cache_file_exists(thumbnail.filename, CACHE_TYPE_THUMBNAILS): - return send_from_directory(cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), - thumbnail.filename) + return redirect(resized_img_src( + os.path.join( + cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), + thumbnail.filename + ), + format="webp" + )) return get_series_thumbnail_on_failure(series_id, resolution) diff --git a/cps/templates/image.html b/cps/templates/image.html index 088e6b99b..f84fa12b2 100644 --- a/cps/templates/image.html +++ b/cps/templates/image.html @@ -4,7 +4,7 @@ {% set srcset = book|get_cover_srcset %} {{ image_alt }} @@ -15,7 +15,7 @@ {% set srcset = series|get_series_srcset %} {{ book_title }} diff --git a/cps/web.py b/cps/web.py index 2519ebd5b..fa15b3fc3 100644 --- a/cps/web.py +++ b/cps/web.py @@ -29,6 +29,8 @@ from flask import request, redirect, send_from_directory, make_response, flash, from flask import session as flask_session from flask_babel import gettext as _ from flask_babel import get_locale +from flask_image_resizer import resized_img_src + from .cw_login import login_user, logout_user, current_user from flask_limiter import RateLimitExceeded from flask_limiter.util import get_remote_address @@ -1147,6 +1149,17 @@ def category_list(): @web.route("/cover//") @login_required_if_no_ano def get_cover(book_id, resolution=None): + return redirect( + resized_img_src( + url_for("web.get_raw_cover", book_id=book_id, resolution=resolution) + ) + ) + + +@web.route("/raw_cover/") +@web.route("/raw_cover//") +@login_required_if_no_ano +def get_raw_cover(book_id, resolution=None): resolutions = { 'og': constants.COVER_THUMBNAIL_ORIGINAL, 'sm': constants.COVER_THUMBNAIL_SMALL, @@ -1161,6 +1174,17 @@ def get_cover(book_id, resolution=None): @web.route("/series_cover//") @login_required_if_no_ano def get_series_cover(series_id, resolution=None): + return redirect( + resized_img_src( + url_for("web.get_raw_series_cover", series_id=series_id, resolution=resolution) + ) + ) + + +@web.route("/raw_series_cover/") +@web.route("/raw_series_cover//") +@login_required_if_no_ano +def get_raw_series_cover(series_id, resolution=None): resolutions = { 'og': constants.COVER_THUMBNAIL_ORIGINAL, 'sm': constants.COVER_THUMBNAIL_SMALL, From 26fb9921b20e8515199958e505356b57574ec7d9 Mon Sep 17 00:00:00 2001 From: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com> Date: Sat, 3 Aug 2024 15:49:55 +0200 Subject: [PATCH 04/21] fix: typo --- cps/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/__init__.py b/cps/__init__.py index f945b97a7..e6843fa0c 100644 --- a/cps/__init__.py +++ b/cps/__init__.py @@ -125,7 +125,7 @@ def create_app(): config_sql.load_configuration(ub.session, encrypt_key) config.init_config(ub.session, encrypt_key, cli_param) - # Initialize Flask-Images + # Initialize Flask-Image-Resizer Images(app) if error: From 9955e348a03331ff019b30a06cc3f61cda8e305f Mon Sep 17 00:00:00 2001 From: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com> Date: Sat, 3 Aug 2024 16:28:13 +0200 Subject: [PATCH 05/21] Revert "feat: resize images directly at cover endpoint" This reverts commit ba383643f50b2672884a465a139207513482ee05. --- cps/helper.py | 30 ++++++++---------------------- cps/templates/image.html | 4 ++-- cps/web.py | 24 ------------------------ 3 files changed, 10 insertions(+), 48 deletions(-) diff --git a/cps/helper.py b/cps/helper.py index 37ee7bb2e..004e1b0e0 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -30,12 +30,10 @@ import requests import unidecode from uuid import uuid4 -from flask import send_from_directory, make_response, abort, url_for, Response, redirect +from flask import send_from_directory, make_response, abort, url_for, Response from flask_babel import gettext as _ from flask_babel import lazy_gettext as N_ from flask_babel import get_locale -from flask_image_resizer import resized_img_src - from .cw_login import current_user from sqlalchemy.sql.expression import true, false, and_, or_, text, func from sqlalchemy.exc import InvalidRequestError, OperationalError @@ -751,8 +749,6 @@ def get_book_cover_with_uuid(book_uuid, resolution=None): def get_book_cover_internal(book, resolution=None): - """returns an optimized version of the cover, unless using google drive""" - if book and book.has_cover: # Send the book cover thumbnail if it exists in cache @@ -761,13 +757,8 @@ def get_book_cover_internal(book, resolution=None): if thumbnail: cache = fs.FileSystem() if cache.get_cache_file_exists(thumbnail.filename, CACHE_TYPE_THUMBNAILS): - return redirect(resized_img_src( - os.path.join( - cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), - thumbnail.filename - ), - format="webp" - )) + return send_from_directory(cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), + thumbnail.filename) # Send the book cover from Google Drive if configured if config.config_use_google_drive: @@ -786,9 +777,9 @@ def get_book_cover_internal(book, resolution=None): # Send the book cover from the Calibre directory else: - cover_file_path = os.path.join(config.get_book_path(), book.path, "cover.jpg") - if os.path.isfile(cover_file_path): - return redirect(resized_img_src(cover_file_path, format="webp")) + cover_file_path = os.path.join(config.get_book_path(), book.path) + if os.path.isfile(os.path.join(cover_file_path, "cover.jpg")): + return send_from_directory(cover_file_path, "cover.jpg") else: return get_cover_on_failure() else: @@ -829,13 +820,8 @@ def get_series_cover_internal(series_id, resolution=None): if thumbnail: cache = fs.FileSystem() if cache.get_cache_file_exists(thumbnail.filename, CACHE_TYPE_THUMBNAILS): - return redirect(resized_img_src( - os.path.join( - cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), - thumbnail.filename - ), - format="webp" - )) + return send_from_directory(cache.get_cache_file_dir(thumbnail.filename, CACHE_TYPE_THUMBNAILS), + thumbnail.filename) return get_series_thumbnail_on_failure(series_id, resolution) diff --git a/cps/templates/image.html b/cps/templates/image.html index f84fa12b2..088e6b99b 100644 --- a/cps/templates/image.html +++ b/cps/templates/image.html @@ -4,7 +4,7 @@ {% set srcset = book|get_cover_srcset %} {{ image_alt }} @@ -15,7 +15,7 @@ {% set srcset = series|get_series_srcset %} {{ book_title }} diff --git a/cps/web.py b/cps/web.py index fa15b3fc3..2519ebd5b 100644 --- a/cps/web.py +++ b/cps/web.py @@ -29,8 +29,6 @@ from flask import request, redirect, send_from_directory, make_response, flash, from flask import session as flask_session from flask_babel import gettext as _ from flask_babel import get_locale -from flask_image_resizer import resized_img_src - from .cw_login import login_user, logout_user, current_user from flask_limiter import RateLimitExceeded from flask_limiter.util import get_remote_address @@ -1149,17 +1147,6 @@ def category_list(): @web.route("/cover//") @login_required_if_no_ano def get_cover(book_id, resolution=None): - return redirect( - resized_img_src( - url_for("web.get_raw_cover", book_id=book_id, resolution=resolution) - ) - ) - - -@web.route("/raw_cover/") -@web.route("/raw_cover//") -@login_required_if_no_ano -def get_raw_cover(book_id, resolution=None): resolutions = { 'og': constants.COVER_THUMBNAIL_ORIGINAL, 'sm': constants.COVER_THUMBNAIL_SMALL, @@ -1174,17 +1161,6 @@ def get_raw_cover(book_id, resolution=None): @web.route("/series_cover//") @login_required_if_no_ano def get_series_cover(series_id, resolution=None): - return redirect( - resized_img_src( - url_for("web.get_raw_series_cover", series_id=series_id, resolution=resolution) - ) - ) - - -@web.route("/raw_series_cover/") -@web.route("/raw_series_cover//") -@login_required_if_no_ano -def get_raw_series_cover(series_id, resolution=None): resolutions = { 'og': constants.COVER_THUMBNAIL_ORIGINAL, 'sm': constants.COVER_THUMBNAIL_SMALL, From c53a5168874ea44f46abf76a1b227374111d71fa Mon Sep 17 00:00:00 2001 From: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com> Date: Mon, 5 Aug 2024 12:02:43 +0200 Subject: [PATCH 06/21] feat: revert all the resizing stuff --- cps/__init__.py | 5 ----- cps/templates/image.html | 4 ++-- requirements.txt | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/cps/__init__.py b/cps/__init__.py index e6843fa0c..d003ed5a8 100644 --- a/cps/__init__.py +++ b/cps/__init__.py @@ -26,8 +26,6 @@ import os import mimetypes from flask import Flask -from flask_image_resizer import Images - from .MyLoginManager import MyLoginManager from flask_principal import Principal @@ -125,9 +123,6 @@ def create_app(): config_sql.load_configuration(ub.session, encrypt_key) config.init_config(ub.session, encrypt_key, cli_param) - # Initialize Flask-Image-Resizer - Images(app) - if error: log.error(error) diff --git a/cps/templates/image.html b/cps/templates/image.html index 088e6b99b..f84fa12b2 100644 --- a/cps/templates/image.html +++ b/cps/templates/image.html @@ -4,7 +4,7 @@ {% set srcset = book|get_cover_srcset %} {{ image_alt }} @@ -15,7 +15,7 @@ {% set srcset = series|get_series_srcset %} {{ book_title }} diff --git a/requirements.txt b/requirements.txt index 965d039fa..460a73578 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,4 +20,3 @@ regex>=2022.3.2,<2024.6.25 bleach>=6.0.0,<6.2.0 python-magic>=0.4.27,<0.5.0 flask-httpAuth>=4.4.0,<5.0.0 -Flask-Image-Resizer==3.0.6 From 9d3b2b007b6e6c812ac8fa17285e210bfcff5031 Mon Sep 17 00:00:00 2001 From: Tobias Bayer Date: Sun, 12 Jan 2025 14:23:23 +0100 Subject: [PATCH 07/21] Fix German translation --- cps/translations/de/LC_MESSAGES/messages.po | 162 ++++++++++---------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index f727aea0b..3ccc11840 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -94,15 +94,15 @@ msgstr "Ungültige Anfrage" #: cps/admin.py:477 cps/admin.py:2069 msgid "Guest Name can't be changed" -msgstr "Guest Name kann nicht geändert werden" +msgstr "Gast Name kann nicht geändert werden" #: cps/admin.py:489 msgid "Guest can't have this role" -msgstr "Guest Benutzer kann diese Rolle nicht haben" +msgstr "Gast Benutzer kann diese Rolle nicht haben" #: cps/admin.py:501 cps/admin.py:2023 msgid "No admin user remaining, can't remove admin role" -msgstr "Kein Admin Benutzer verblieben Admin Berechtigung kann nicht entfernt werden" +msgstr "Kein Admin Benutzer verblieben. Admin Berechtigung kann nicht entfernt werden" #: cps/admin.py:505 cps/admin.py:519 msgid "Value has to be true or false" @@ -114,15 +114,15 @@ msgstr "Ungültige Rolle" #: cps/admin.py:511 msgid "Guest can't have this view" -msgstr "Guest Benutzer kann diese Sichtbarkeit nicht haben" +msgstr "Gast Benutzer kann diese Ansicht nicht haben" #: cps/admin.py:521 msgid "Invalid view" -msgstr "Ungültige Sichtbarkeit" +msgstr "Ungültige Ansicht" #: cps/admin.py:524 msgid "Guest's Locale is determined automatically and can't be set" -msgstr "Guest Sprache wird automatisch bestimmt und kann nicht eingestellt werden" +msgstr "Gast Sprache wird automatisch bestimmt und kann nicht eingestellt werden" #: cps/admin.py:528 msgid "No Valid Locale Given" @@ -138,7 +138,7 @@ msgstr "Parameter wurde nicht gefunden" #: cps/admin.py:578 msgid "Invalid Read Column" -msgstr "Ungültige Lese Spalte" +msgstr "Ungültige Gelesen Spalte" #: cps/admin.py:584 msgid "Invalid Restricted Column" @@ -150,43 +150,43 @@ msgstr "Konfiguration von Calibre-Web wurde aktualisiert" #: cps/admin.py:616 msgid "Do you really want to delete the Kobo Token?" -msgstr "Möchten Sie wirklich den Kobo Token löschen?" +msgstr "Möchten Sie den Kobo Token wirklich löschen?" #: cps/admin.py:618 msgid "Do you really want to delete this domain?" -msgstr "Möchten Sie wirklich diese Domain löschen?" +msgstr "Möchten Sie diese Domain wirklich löschen?" #: cps/admin.py:620 msgid "Do you really want to delete this user?" -msgstr "Möchten Sie wirklich diesen Benutzer löschen?" +msgstr "Möchten Sie diesen Benutzer wirklich löschen?" #: cps/admin.py:622 msgid "Are you sure you want to delete this shelf?" -msgstr "Möchten Sie wirklich dieses Bücherregal löschen?" +msgstr "Möchten Sie dieses Bücherregal wirklich löschen?" #: cps/admin.py:624 msgid "Are you sure you want to change locales of selected user(s)?" -msgstr "Möchten Sie wirklich die Anzeigesprache der ausgewählten Benutzer ändern?" +msgstr "Möchten Sie die Anzeigesprache der ausgewählten Benutzer wirklich ändern?" #: cps/admin.py:626 msgid "Are you sure you want to change visible book languages for selected user(s)?" -msgstr "Möchten Sie wirklich die Büchersprachen für die ausgewählten Benutzer ändern?" +msgstr "Möchten Sie die Büchersprachen für die ausgewählten Benutzer wirklich ändern?" #: cps/admin.py:628 msgid "Are you sure you want to change the selected role for the selected user(s)?" -msgstr "Möchten Sie wirklich die ausgewählte Rolle für die ausgewählten Benutzer verändern?" +msgstr "Möchten Sie die ausgewählte Rolle für die ausgewählten Benutzer wirklich verändern?" #: cps/admin.py:630 msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" -msgstr "Möchten Sie wirklich die ausgewählten Sichtbarkeitsbeschränkungen der ausgewählten Benutzer ändern?" +msgstr "Möchten Sie die ausgewählten Sichtbarkeitsbeschränkungen der ausgewählten Benutzer wirklich ändern?" #: cps/admin.py:632 msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" -msgstr "Möchten Sie wirklich die Sichtbarkeiten für die ausgewählten Benutzer verändern?" +msgstr "Möchten Sie die Sichtbarkeiten für die ausgewählten Benutzer wirklich verändern?" #: cps/admin.py:635 msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" -msgstr "Möchten Sie wirklich die Synchronisation von Bücherregalen für die ausgewählten Benutzer verändern?" +msgstr "Möchten Sie die Synchronisation von Bücherregalen für die ausgewählten Benutzer wirklich verändern?" #: cps/admin.py:637 msgid "Are you sure you want to change Calibre library location?" @@ -198,7 +198,7 @@ msgstr "Calibre-Web wird nach neuen Covern suchen und Cover Miniaturansichten ak #: cps/admin.py:642 msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" -msgstr "Möchten Sie wirklich die Synchronisationsdatenbank von Calibre-Web löschen, um eine komplette Synchronisation zu erzwingen?" +msgstr "Möchten Sie die Synchronisationsdatenbank von Calibre-Web wirklich löschen, um eine komplette Synchronisation zu erzwingen?" #: cps/admin.py:885 cps/admin.py:891 cps/admin.py:901 cps/admin.py:911 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 @@ -234,15 +234,15 @@ msgstr "Logdatei Pfad ist ungültig, bitte einen gültigen Pfad angeben" #: cps/admin.py:1183 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" -msgstr "Zugriffs Logdatei Pfad ist ungültig, bitte einen gültigen Pfad angeben" +msgstr "Zugriffs-Logdatei Pfad ist ungültig, bitte einen gültigen Pfad angeben" #: cps/admin.py:1217 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" -msgstr "Bitte einen LDAP Server, Port, DN und Benutzer Objekt angeben" +msgstr "Bitte einen LDAP Server, Port, DN und Benutzer Objekt Identifikator angeben" #: cps/admin.py:1223 msgid "Please Enter a LDAP Service Account and Password" -msgstr "Bitte einen LDAP Service Account und Password eingeben" +msgstr "Bitte einen LDAP Service Account und Passwort eingeben" #: cps/admin.py:1226 msgid "Please Enter a LDAP Service Account" @@ -354,7 +354,7 @@ msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt" #: cps/admin.py:1463 msgid "Oops! Please configure the SMTP mail settings." -msgstr "Bitte zuerst die SMTP-Einstellung konfigurieren." +msgstr "Bitte zuerst die SMTP-Einstellungen konfigurieren." #: cps/admin.py:1474 msgid "Logfile viewer" @@ -411,7 +411,7 @@ msgstr "Allgemeiner Fehler" #: cps/admin.py:1551 msgid "Update file could not be saved in temp dir" -msgstr "Updatedatei konnte nicht in Temporärem Ordner gespeichert werden" +msgstr "Updatedatei konnte nicht in temporärem Ordner gespeichert werden" #: cps/admin.py:1552 msgid "Files could not be replaced during update" @@ -493,7 +493,7 @@ msgstr "Benutzer '%(user)s' angelegt" #: cps/admin.py:1972 msgid "Oops! An account already exists for this Email. or name." -msgstr "Es existiert bereits ein Account für diese E-Mailadresse oder diesen Benutzernamen." +msgstr "Es existiert bereits ein Account für diese E-Mail Adresse oder diesen Benutzernamen." #: cps/admin.py:2002 #, python-format @@ -502,7 +502,7 @@ msgstr "Benutzer '%(nick)s' gelöscht" #: cps/admin.py:2005 msgid "Can't delete Guest User" -msgstr "Guest Benutzer kann nicht gelöscht werden" +msgstr "Gast Benutzer kann nicht gelöscht werden" #: cps/admin.py:2008 msgid "No admin user remaining, can't delete user" @@ -523,7 +523,7 @@ msgstr "Benutzer '%(nick)s' aktualisiert" #: cps/templates/layout.html:47 cps/templates/layout.html:50 #: cps/templates/search_form.html:247 msgid "Search" -msgstr "Suche" +msgstr "Suchen" #: cps/converter.py:31 msgid "not installed" @@ -531,7 +531,7 @@ msgstr "Nicht installiert" #: cps/converter.py:32 msgid "Execution permissions missing" -msgstr "Ausführeberechtigung fehlt" +msgstr "Ausführberechtigung fehlt" #: cps/db.py:1033 cps/templates/config_edit.html:203 #: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41 @@ -563,7 +563,7 @@ msgstr "Es trat ein Fehler beim Konvertieren des Buches auf: %(res)s" #: cps/editbooks.py:433 cps/editbooks.py:928 cps/web.py:535 cps/web.py:1571 #: cps/web.py:1617 cps/web.py:1667 msgid "Oops! Selected book is unavailable. File does not exist or is not accessible" -msgstr "Öffnen des Buchs fehlgeschlagen. Datei existiert nicht oder ist nicht zugänglich" +msgstr "Öffnen des Buches fehlgeschlagen. Datei existiert nicht oder ist nicht zugänglich" #: cps/editbooks.py:479 cps/editbooks.py:1285 msgid "User has no rights to upload cover" @@ -571,7 +571,7 @@ msgstr "Benutzer hat keine Berechtigung Cover hochzuladen" #: cps/editbooks.py:500 cps/editbooks.py:743 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" -msgstr "IDs unterscheiden nicht Groß-Kleinschreibung, alte ID wird überschrieben" +msgstr "IDs unterscheiden nicht zwischen Groß- und Kleinschreibung, alte ID wird überschrieben" #: cps/editbooks.py:515 cps/editbooks.py:717 cps/editbooks.py:1055 #, python-format @@ -584,7 +584,7 @@ msgstr "Metadaten wurden erfolgreich aktualisiert" #: cps/editbooks.py:566 msgid "Error editing book: {}" -msgstr "Fehler beim editieren des Buches: {}" +msgstr "Fehler beim Editieren des Buches: {}" #: cps/editbooks.py:661 msgid "Uploaded book probably exists in the library, consider to change before upload new: " @@ -623,7 +623,7 @@ msgstr "Buch erfolgreich gelöscht" #: cps/editbooks.py:913 msgid "You are missing permissions to delete books" -msgstr "Keine Erlaubnis zum Bücher löschen" +msgstr "Keine Erlaubnis zum löschen von Büchern" #: cps/editbooks.py:963 msgid "edit metadata" @@ -632,7 +632,7 @@ msgstr "Metadaten editieren" #: cps/editbooks.py:1016 #, python-format msgid "Seriesindex: %(seriesindex)s is not a valid number, skipping" -msgstr "Serien index %(seriesindex)s ist keine gültige Zahl, Eintrag wird ignoriert" +msgstr "Serienindex %(seriesindex)s ist keine gültige Zahl, Eintrag wird ignoriert" #: cps/editbooks.py:1207 msgid "User has no rights to upload additional file formats" @@ -722,7 +722,7 @@ msgstr "Die angeforderte Datei konnte nicht gelesen werden. Evtl. falsche Zugrif #: cps/helper.py:352 msgid "Read status could not set: {}" -msgstr "Gelesenen Status konnte nicht aktualisiert werden: {}" +msgstr "Gelesen-Status konnte nicht aktualisiert werden: {}" #: cps/helper.py:375 #, python-format @@ -742,7 +742,7 @@ msgstr "Lösche Buch %(id)s nur aus Datenbank, Pfad zum Buch in Datenbank ist ni #: cps/helper.py:439 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "Umbenennen des Autors '%(src)s' zu '%(dest)s' schlug fehl: %(error)s" +msgstr "Umbenennen des Autors '%(src)s' zu '%(dest)s' fehlgeschlagen: %(error)s" #: cps/helper.py:507 cps/helper.py:516 #, python-format @@ -752,7 +752,7 @@ msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden" #: cps/helper.py:559 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "Umbenennen des Titels '%(src)s' zu '%(dest)s' schlug fehl: %(error)s" +msgstr "Umbenennen des Titels '%(src)s' zu '%(dest)s' fehlgeschlagen: %(error)s" #: cps/helper.py:597 #, python-format @@ -773,11 +773,11 @@ msgstr "Ungültiges E-Mail Adressformat" #: cps/helper.py:701 msgid "Password doesn't comply with password validation rules" -msgstr "Passwort stimmt nicht mit den Passwortregln überein" +msgstr "Passwort stimmt nicht mit den Passwortregeln überein" #: cps/helper.py:847 msgid "Python module 'advocate' is not installed but is needed for cover uploads" -msgstr "Python Module 'advocate' ist nicht installiert, wird aber für das Cover hochladen benötigt" +msgstr "Python Modul 'advocate' ist nicht installiert, wird aber für das Hochladen von Covern benötigt" #: cps/helper.py:857 msgid "Error Downloading Cover" @@ -789,7 +789,7 @@ msgstr "Coverdatei fehlerhaft" #: cps/helper.py:863 msgid "You are not allowed to access localhost or the local network for cover uploads" -msgstr "Keine Berechtigung Cover von Localhost oder dem lokalen Netzwerk hochzuladen" +msgstr "Keine Berechtigung Cover von localhost oder dem lokalen Netzwerk hochzuladen" #: cps/helper.py:873 msgid "Failed to create path for cover" @@ -797,7 +797,7 @@ msgstr "Fehler beim Erzeugen des Ordners für die Coverdatei" #: cps/helper.py:889 msgid "Cover-file is not a valid image file, or could not be stored" -msgstr "Cover Datei ist keine gültige Bilddatei, kann nicht gespeichert werden" +msgstr "Coverdatei ist keine gültige Bilddatei, kann nicht gespeichert werden" #: cps/helper.py:900 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" @@ -805,11 +805,11 @@ msgstr "Nur jpg/jpeg/png/webp/bmp Dateien werden als Coverdatei unterstützt" #: cps/helper.py:912 msgid "Invalid cover file content" -msgstr "Ungültiger Cover Dateiinhalt" +msgstr "Ungültiger Coverdatei-Inhalt" #: cps/helper.py:916 msgid "Only jpg/jpeg files are supported as coverfile" -msgstr "Es werden nur jpg/jpeg Dateien als Cover untertützt" +msgstr "Es werden nur jpg/jpeg Dateien als Cover unterstützt" #: cps/helper.py:989 cps/helper.py:1146 msgid "Cover" @@ -843,7 +843,7 @@ msgstr "Fehlende Calibre Binärdateien: %(missing)s" #: cps/helper.py:1053 #, python-format msgid "Missing executable permissions: %(missing)s" -msgstr "Ausführeberechtigung fehlt: %(missing)s" +msgstr "Ausführberechtigung fehlt: %(missing)s" #: cps/helper.py:1058 msgid "Error executing Calibre" @@ -855,7 +855,7 @@ msgstr "Alle Bücher für Metadaten Backup einreihen" #: cps/kobo_auth.py:92 msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" -msgstr "Bitte nicht von \"localhost\" auf Calibre-Web zugreifen, um einen gültigen api_endpoint für Kobo Geräte zu erhalten" +msgstr "Bitte nicht von \"localhost\" auf Calibre-Web zugreifen, um einen gültigen api_endpoint für Kobo Geräte zu erhalten" #: cps/kobo_auth.py:118 msgid "Kobo Setup" @@ -897,11 +897,11 @@ msgstr "Nicht mit %(oauth)s verbunden" #: cps/oauth_bb.py:263 msgid "Failed to log in with GitHub." -msgstr "Login mit Github fehlgeschlagen." +msgstr "Login mit GitHub fehlgeschlagen." #: cps/oauth_bb.py:269 msgid "Failed to fetch user info from GitHub." -msgstr "Laden der Benutzerinformationen von Github fehlgeschlagen." +msgstr "Laden der Benutzerinformationen von GitHub fehlgeschlagen." #: cps/oauth_bb.py:281 msgid "Failed to log in with Google." @@ -913,19 +913,19 @@ msgstr "Laden der Benutzerinformationen von Google fehlgeschlagen." #: cps/oauth_bb.py:335 msgid "GitHub Oauth error, please retry later." -msgstr "GitHub Oauth Fehler, bitte später erneut versuchen." +msgstr "GitHub OAuth Fehler, bitte später erneut versuchen." #: cps/oauth_bb.py:338 msgid "GitHub Oauth error: {}" -msgstr "Github Oauth Fehler {}" +msgstr "Github OAuth Fehler {}" #: cps/oauth_bb.py:359 msgid "Google Oauth error, please retry later." -msgstr "Google Oauth Fehler, bitte später erneut versuchen." +msgstr "Google OAuth Fehler, bitte später erneut versuchen." #: cps/oauth_bb.py:362 msgid "Google Oauth error: {}" -msgstr "Google Oauth Fehler: {}" +msgstr "Google OAuth Fehler: {}" #: cps/opds.py:299 msgid "{} Stars" @@ -976,11 +976,11 @@ msgstr "Zeige heruntergeladene Bücher" #: cps/render_template.py:58 cps/templates/index.xml:36 cps/web.py:439 msgid "Top Rated Books" -msgstr "Best bewertete Bücher" +msgstr "Am besten bewertete Bücher" #: cps/render_template.py:60 cps/templates/user_table.html:161 msgid "Show Top Rated Books" -msgstr "Bestbewertete Bücher anzeigen" +msgstr "Zeige am besten bewertete Bücher" #: cps/render_template.py:61 cps/templates/index.xml:63 #: cps/templates/index.xml:67 cps/web.py:772 @@ -998,11 +998,11 @@ msgstr "Ungelesene Bücher" #: cps/render_template.py:67 msgid "Show unread" -msgstr "Zeige Ungelesene" +msgstr "Zeige ungelesene Bücher" #: cps/render_template.py:68 msgid "Discover" -msgstr "Entdecke" +msgstr "Entdecken" #: cps/render_template.py:70 cps/templates/index.xml:58 #: cps/templates/user_table.html:159 cps/templates/user_table.html:162 @@ -1016,7 +1016,7 @@ msgstr "Kategorien" #: cps/render_template.py:73 cps/templates/user_table.html:158 msgid "Show Category Section" -msgstr "Zeige Kategorienauswahl" +msgstr "Zeige Kategorien" #: cps/render_template.py:74 cps/templates/book_edit.html:86 #: cps/templates/book_table.html:68 cps/templates/index.xml:106 @@ -1026,7 +1026,7 @@ msgstr "Serien" #: cps/render_template.py:76 cps/templates/user_table.html:157 msgid "Show Series Section" -msgstr "Zeige Serienauswahl" +msgstr "Zeige Serien" #: cps/render_template.py:77 cps/templates/book_table.html:66 #: cps/templates/index.xml:79 @@ -1035,7 +1035,7 @@ msgstr "Autoren" #: cps/render_template.py:79 cps/templates/user_table.html:160 msgid "Show Author Section" -msgstr "Zeige Autorenauswahl" +msgstr "Zeige Autoren" #: cps/render_template.py:81 cps/templates/book_table.html:72 #: cps/templates/index.xml:88 cps/web.py:999 @@ -1044,7 +1044,7 @@ msgstr "Verleger" #: cps/render_template.py:83 cps/templates/user_table.html:163 msgid "Show Publisher Section" -msgstr "Zeige Verlegerauswahl" +msgstr "Zeige Verleger" #: cps/render_template.py:84 cps/templates/book_table.html:70 #: cps/templates/index.xml:115 cps/templates/search_form.html:108 @@ -1054,7 +1054,7 @@ msgstr "Sprachen" #: cps/render_template.py:87 cps/templates/user_table.html:155 msgid "Show Language Section" -msgstr "Zeige Sprachauswahl" +msgstr "Zeige Sprachen" #: cps/render_template.py:88 cps/templates/index.xml:124 msgid "Ratings" @@ -1062,7 +1062,7 @@ msgstr "Bewertungen" #: cps/render_template.py:90 cps/templates/user_table.html:164 msgid "Show Ratings Section" -msgstr "Zeige Bewertungsauswahl" +msgstr "Zeige Bewertungen" #: cps/render_template.py:91 cps/templates/index.xml:133 msgid "File formats" @@ -1070,7 +1070,7 @@ msgstr "Dateiformate" #: cps/render_template.py:93 cps/templates/user_table.html:165 msgid "Show File Formats Section" -msgstr "Zeige Dateiformatauswahl" +msgstr "Zeige Dateiformate" #: cps/render_template.py:95 cps/web.py:798 msgid "Archived Books" @@ -1109,7 +1109,7 @@ msgstr "Bewertung >= %(rating)s" #: cps/search.py:234 #, python-format msgid "Read Status = '%(status)s'" -msgstr "Lesestatus = '%(status)s'" +msgstr "Gelesenstatus = '%(status)s'" #: cps/search.py:351 msgid "Error on search for custom columns, please restart Calibre-Web" @@ -1135,12 +1135,12 @@ msgstr "Buch ist bereits Teil des Bücherregals %(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 ist einen ungültige Buch ID. Buch konnte nicht zu Bücherregal hinzugefügt werden" +msgstr "%(book_id)s ist eine ungültige Buch ID. Buch konnte nicht zu Bücherregal hinzugefügt werden" #: cps/shelf.py:97 #, python-format msgid "Book has been added to shelf: %(sname)s" -msgstr "Das Buch wurde dem Bücherregal %(sname)s hinzugefügt" +msgstr "Das Buch wurde zum Bücherregal %(sname)s hinzugefügt" #: cps/shelf.py:116 msgid "You are not allowed to add a book to the shelf" @@ -1176,7 +1176,7 @@ msgstr "Bücherregal erzeugen" #: cps/shelf.py:226 msgid "Sorry you are not allowed to edit this shelf" -msgstr "Dir ist es nicht erlaubt, dieses Bücherregal zu editieren" +msgstr "Sie dürfen dieses Bücherregal nicht editieren" #: cps/shelf.py:228 msgid "Edit a shelf" @@ -1197,7 +1197,7 @@ msgstr "Reihenfolge in Bücherregal '%(name)s' verändern" #: cps/shelf.py:324 msgid "Sorry you are not allowed to create a public shelf" -msgstr "Sie haben keine Berechtigung um öffentliche Bücherregal zu erzeugen" +msgstr "Sie haben keine Berechtigung um ein öffentliches Bücherregal zu erzeugen" #: cps/shelf.py:341 #, python-format @@ -1216,12 +1216,12 @@ msgstr "Es trat ein Fehler auf" #: cps/shelf.py:380 #, python-format msgid "A public shelf with the name '%(title)s' already exists." -msgstr "Es existiert bereit ein öffentliches Bücherregal mit dem Name '%(title)s'." +msgstr "Es existiert bereit ein öffentliches Bücherregal mit dem Namen '%(title)s'." #: cps/shelf.py:391 #, python-format msgid "A private shelf with the name '%(title)s' already exists." -msgstr "Es existiert bereit ein privates Bücherregal mit dem Name '%(title)s'." +msgstr "Es existiert bereit ein privates Bücherregal mit dem Namen '%(title)s'." #: cps/shelf.py:481 #, python-format @@ -1251,7 +1251,7 @@ msgstr "Gestartet" #: cps/tasks_status.py:69 msgid "Finished" -msgstr "Beendet" +msgstr "Fertiggestellt" #: cps/tasks_status.py:71 msgid "Ended" @@ -1296,11 +1296,11 @@ msgstr "Keine Releaseinformationen verfügbar" #: cps/templates/index.html:6 cps/web.py:451 msgid "Discover (Random Books)" -msgstr "Entdecke (Zufällige Bücher)" +msgstr "Entdecken (Zufällige Bücher)" #: cps/web.py:487 msgid "Hot Books (Most Downloaded)" -msgstr "Beliebte Bücher (am meisten Downloads)" +msgstr "Beliebte Bücher (meiste Downloads)" #: cps/web.py:518 #, python-format @@ -1370,7 +1370,7 @@ msgstr "Buch erfolgreich zum Senden an %(eReadermail)s eingereiht" #: cps/web.py:1263 #, python-format msgid "Oops! There was an error sending book: %(res)s" -msgstr "Beim Senden des Buchs trat ein Fehler auf: %(res)s" +msgstr "Beim Senden des Buches trat ein Fehler auf: %(res)s" #: cps/web.py:1265 msgid "Oops! Please update your profile with a valid eReader Email." @@ -1393,7 +1393,7 @@ msgstr "Verbindugnsfehler zu Limiter Backend, bitte Administrator kontaktieren" #: cps/web.py:1290 cps/web.py:1337 msgid "Oops! Email server is not configured, please contact your administrator." -msgstr "Der E-Mail Server ist nicht konfigurierte, bitte den Administrator kontaktieren." +msgstr "Der E-Mail Server ist nicht konfiguriert, bitte den Administrator kontaktieren." #: cps/web.py:1323 msgid "Oops! Your Email is not allowed." @@ -1409,7 +1409,7 @@ msgstr "LDAP-Authentifizierung kann nicht aktiviert werden" #: cps/web.py:1384 msgid "Please wait one minute before next login" -msgstr "Bitte eine Minute vor dem nächsten Loginversuche warten" +msgstr "Bitte eine Minute vor dem nächsten Loginversuch warten" #: cps/web.py:1403 #, python-format @@ -1419,7 +1419,7 @@ msgstr "Du bist nun eingeloggt als '%(nickname)s'" #: cps/web.py:1410 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" -msgstr "Rückfall Login als: '%(nickname)s', LDAP Server ist nicht erreichbar, oder der Nutzer ist unbekannt" +msgstr "Fallback Login als: '%(nickname)s', LDAP Server ist nicht erreichbar, oder der Nutzer ist unbekannt" #: cps/web.py:1415 #, python-format @@ -1462,7 +1462,7 @@ msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse." #: cps/services/gmail.py:59 msgid "Found no valid gmail.json file with OAuth information" -msgstr "Keine gültige gmail.json Datei mit Oauth informationen gefunden" +msgstr "Keine gültige gmail.json Datei mit OAuth informationen gefunden" #: cps/tasks/clean.py:29 msgid "Delete temp folder contents" @@ -1531,7 +1531,7 @@ msgstr "%(count)s Cover Miniaturansichten erzeugt" #: cps/tasks/thumbnail.py:233 cps/tasks/thumbnail.py:448 #: cps/tasks/thumbnail.py:518 msgid "Cover Thumbnails" -msgstr "Cover Miniaturansichtern" +msgstr "Cover Miniaturansichten" #: cps/tasks/thumbnail.py:294 msgid "Generated {0} series thumbnails" @@ -1705,7 +1705,7 @@ msgstr "Geplante Aufgabe" #: cps/templates/admin.html:170 cps/templates/schedule_edit.html:12 #: cps/templates/tasks.html:18 msgid "Start Time" -msgstr "Zeitpunkt an dem die Aufgabe startet" +msgstr "Uhrzeit zu der die Aufgabe startet" #: cps/templates/admin.html:174 cps/templates/schedule_edit.html:20 msgid "Maximum Duration" @@ -1901,7 +1901,7 @@ msgstr "Home" #: cps/templates/basic_layout.html:21 cps/templates/layout.html:48 msgid "Search Library" -msgstr "Bibiliothek durchsuchen" +msgstr "Bibliothek durchsuchen" #: cps/templates/basic_layout.html:29 cps/templates/layout.html:73 #: cps/templates/layout.html:99 @@ -1922,7 +1922,7 @@ msgstr "Lösche Formate:" #: cps/templates/book_edit.html:25 msgid "Convert book format:" -msgstr "Konvertiere Buchformat:" +msgstr "Buchformat konvertieren:" #: cps/templates/book_edit.html:30 msgid "Convert from:" @@ -1938,7 +1938,7 @@ msgstr "Konvertiere nach:" #: cps/templates/book_edit.html:46 msgid "Convert book" -msgstr "Konvertiere Buch" +msgstr "Buch konvertieren" #: cps/templates/book_edit.html:53 cps/templates/layout.html:80 #: cps/templates/layout.html:137 @@ -2020,7 +2020,7 @@ msgstr "Cover-URL (jpg, Cover wird heruntergeladen und in der Datenbank gespeich #: cps/templates/book_edit.html:137 msgid "Upload Cover from Local Disk" -msgstr "Coverdatei von Lokalem Laufwerk hochladen" +msgstr "Coverdatei von lokalem Laufwerk hochladen" #: cps/templates/book_edit.html:149 cps/templates/search_form.html:46 #: cps/templates/search_form.html:167 From ff6b341c36fb55319e1f82b8f7dbcf7bb2a6834f Mon Sep 17 00:00:00 2001 From: Tobias Bayer Date: Mon, 13 Jan 2025 08:58:00 +0100 Subject: [PATCH 08/21] Fix more German translation strings --- cps/translations/de/LC_MESSAGES/messages.po | 84 ++++++++++----------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index 3ccc11840..ba4f94626 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -1485,7 +1485,7 @@ msgstr "%(format)s Format nicht gefunden" #: cps/tasks/convert.py:215 msgid "Ebook converter failed with unknown error" -msgstr "EBook Converter mit unbekanntem Fehler fehlgeschlagen" +msgstr "E-Book Converter mit unbekanntem Fehler fehlgeschlagen" #: cps/tasks/convert.py:234 #, python-format @@ -1505,7 +1505,7 @@ msgstr "Calibre fehlgeschlagen mit Fehler: %(error)s" #: cps/tasks/convert.py:317 #, python-format msgid "Ebook-converter failed: %(error)s" -msgstr "Fehler des EBook-Converters: %(error)s" +msgstr "Fehler des E-Book-Converters: %(error)s" #: cps/tasks/convert.py:345 msgid "Convert" @@ -1636,7 +1636,7 @@ msgstr "E-Mail Service" #: cps/templates/admin.html:91 msgid "Gmail via Oauth2" -msgstr "Gmail via Oauth2" +msgstr "Gmail via OAuth2" #: cps/templates/admin.html:106 msgid "Configuration" @@ -1644,7 +1644,7 @@ msgstr "Konfiguration" #: cps/templates/admin.html:109 msgid "Calibre Database Directory" -msgstr "Ordner der Calibre-DB" +msgstr "Ordner der Calibre Datenbank" #: cps/templates/admin.html:113 cps/templates/config_edit.html:68 msgid "Log Level" @@ -1705,7 +1705,7 @@ msgstr "Geplante Aufgabe" #: cps/templates/admin.html:170 cps/templates/schedule_edit.html:12 #: cps/templates/tasks.html:18 msgid "Start Time" -msgstr "Uhrzeit zu der die Aufgabe startet" +msgstr "Startzeit" #: cps/templates/admin.html:174 cps/templates/schedule_edit.html:20 msgid "Maximum Duration" @@ -1722,7 +1722,7 @@ msgstr "Seriencover Miniaturansichten erzeugen" #: cps/templates/admin.html:186 cps/templates/admin.html:208 #: cps/templates/schedule_edit.html:37 msgid "Reconnect Calibre Database" -msgstr "Mit Calibre Bibliothek neuverbinden" +msgstr "Mit Calibre Bibliothek neu verbinden" #: cps/templates/admin.html:190 cps/templates/schedule_edit.html:41 msgid "Generate Metadata Backup Files" @@ -1815,12 +1815,12 @@ msgstr "In Bibliothek" #: 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 "Sortiere nach Buchdatum, Neuestes zuerst" +msgstr "Sortiere nach Buchdatum, neuestes zuerst" #: 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 "Sortiere nach Buchdatum, Ältestes zuerst" +msgstr "Sortiere nach Buchdatum, ältestes zuerst" #: cps/templates/author.html:28 cps/templates/index.html:76 #: cps/templates/search.html:33 cps/templates/shelf.html:22 @@ -1835,12 +1835,12 @@ msgstr "Sortiere Titel in umgekehrt alphabetischer Reihenfolge" #: 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 "Sortiere nach Herausgabedatum, Neueste zuerst" +msgstr "Sortiere nach Herausgabedatum, neueste zuerst" #: 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 "Sortiere nach Herausgabedatum, Älteste zuerst" +msgstr "Sortiere nach Herausgabedatum, älteste zuerst" #: cps/templates/author.html:56 cps/templates/author.html:113 #: cps/templates/index.html:30 cps/templates/index.html:113 @@ -2050,7 +2050,7 @@ msgstr "Speichern" #: cps/templates/book_edit.html:239 msgid "Keyword" -msgstr "Suchbegriff" +msgstr "Schlüsselbegriff" #: cps/templates/book_edit.html:240 msgid "Search keyword" @@ -2217,7 +2217,7 @@ msgstr "Google Drive Calibre-Ordner" #: cps/templates/config_db.html:52 msgid "Metadata Watch Channel ID" -msgstr "Matadata Überwachungs-ID" +msgstr "Metadaten Überwachungs-ID" #: cps/templates/config_db.html:55 msgid "Revoke" @@ -2257,7 +2257,7 @@ msgstr "Nightly" #: cps/templates/config_edit.html:50 msgid "Trusted Hosts (Comma Separated)" -msgstr "Trusted Hosts (Komma separiert)" +msgstr "Trusted Hosts (kommasepariert)" #: cps/templates/config_edit.html:61 msgid "Logfile Configuration" @@ -2293,7 +2293,7 @@ msgstr "Hochladen aktivieren" #: cps/templates/config_edit.html:112 msgid "(Please ensure that users also have upload permissions)" -msgstr "(Bitte stellen Sie sicher das sie über die Upload Berechtigung verfügen)" +msgstr "(Bitte stellen Sie sicher, dass Sie über die Upload Berechtigung verfügen)" #: cps/templates/config_edit.html:116 msgid "Allowed Upload Fileformats" @@ -2321,11 +2321,11 @@ msgstr "Synchronisation mit Kobo aktivieren" #: cps/templates/config_edit.html:146 msgid "Proxy unknown requests to Kobo Store" -msgstr "Unbekannte Anfragen an Kobo.com weiterleiten" +msgstr "Unbekannte Anfragen an kobo.com weiterleiten" #: cps/templates/config_edit.html:149 msgid "Server External Port (for port forwarded API calls)" -msgstr "Externer Server Port (für Port Weiterleitung von API Aufrufen)" +msgstr "Externer Server Port (für Portweiterleitung von API-Aufrufen)" #: cps/templates/config_edit.html:157 msgid "Use Goodreads" @@ -2524,7 +2524,7 @@ msgstr "Stark" #: cps/templates/config_edit.html:393 msgid "User Password policy" -msgstr "Passwort Regeln" +msgstr "Passwortregeln" #: cps/templates/config_edit.html:397 msgid "Minimum password length" @@ -2532,7 +2532,7 @@ msgstr "Minimale Passwortlänge" #: cps/templates/config_edit.html:402 msgid "Enforce number" -msgstr "Erzwinge Nummer" +msgstr "Erzwinge Zahl" #: cps/templates/config_edit.html:406 msgid "Enforce lowercase characters" @@ -2689,7 +2689,7 @@ msgstr "Buch als archiviert oder nicht markieren, um es in Calibre-Web auszublen #: cps/templates/detail.html:275 msgid "Archive" -msgstr "Archiv" +msgstr "Archiviert" #: cps/templates/detail.html:301 cps/templates/listenmp3.html:190 #: cps/templates/search.html:16 @@ -2709,7 +2709,7 @@ msgstr "Metadaten bearbeiten" #: cps/templates/email_edit.html:13 msgid "Email Account Type" -msgstr "Wähle Server Typ" +msgstr "Wähle Servertyp" #: cps/templates/email_edit.html:15 msgid "Standard Email Account" @@ -2804,7 +2804,7 @@ msgstr "Zurück zur Hauptseite" #: cps/templates/http_error.html:57 msgid "Logout User" -msgstr "Benutzer ausloggem" +msgstr "Benutzer ausloggen" #: cps/templates/index.html:71 msgid "Sort ascending according to download count" @@ -2866,19 +2866,19 @@ msgstr "Zufällige Bücher" #: cps/templates/index.xml:83 msgid "Books ordered by Author" -msgstr "Bücher nach Autoren sortiert" +msgstr "Bücher nach Autor sortiert" #: cps/templates/index.xml:92 msgid "Books ordered by publisher" -msgstr "Bücher nach Verlegern sortiert" +msgstr "Bücher nach Verleger sortiert" #: cps/templates/index.xml:101 msgid "Books ordered by category" -msgstr "Bücher nach Kategorien sortiert" +msgstr "Bücher nach Kategorie sortiert" #: cps/templates/index.xml:110 msgid "Books ordered by series" -msgstr "Bücher nach Serien sortiert" +msgstr "Bücher nach Serie sortiert" #: cps/templates/index.xml:119 msgid "Books ordered by Languages" @@ -2886,11 +2886,11 @@ msgstr "Bücher nach Sprache sortiert" #: cps/templates/index.xml:128 msgid "Books ordered by Rating" -msgstr "Bücher nach Bewertungen sortiert" +msgstr "Bücher nach Bewertung sortiert" #: cps/templates/index.xml:137 msgid "Books ordered by file formats" -msgstr "Bücher nach Dateiformaten sortiert" +msgstr "Bücher nach Dateiformat sortiert" #: cps/templates/index.xml:142 cps/templates/layout.html:155 #: cps/templates/search_form.html:88 @@ -3009,7 +3009,7 @@ msgstr "Dieses Buchformat wird permanent aus der Datenbank gelöscht" #: cps/templates/modal_dialogs.html:51 msgid "This book will be permanently erased from database" -msgstr "Das Buch wird aus der Calibre-Datenbank" +msgstr "Das Buch wird endgültig aus der Datenbank" #: cps/templates/modal_dialogs.html:52 msgid "and hard disk" @@ -3017,7 +3017,7 @@ msgstr "und von der Festplatte gelöscht" #: cps/templates/modal_dialogs.html:56 msgid "Important Kobo Note: deleted books will remain on any paired Kobo device." -msgstr "Wichtiger Kobo Hinweis: Gelöschte Bücher bleiben auf auf allen verbundenen Kobo Geräten erhalten." +msgstr "Wichtiger Kobo Hinweis: Gelöschte Bücher bleiben auf allen verbundenen Kobo Geräten erhalten." #: cps/templates/modal_dialogs.html:57 msgid "Books must first be archived and the device synced before a book can safely be deleted." @@ -3057,11 +3057,11 @@ msgstr "Calibre-Web E-Book-Katalog" #: cps/templates/read.html:7 msgid "epub Reader" -msgstr "epub-Leser" +msgstr "EPUB-Leser" #: cps/templates/read.html:80 msgid "Choose a theme below:" -msgstr "Wähle eine Design:" +msgstr "Wähle ein Design:" #: cps/templates/read.html:84 cps/templates/readcbr.html:104 msgid "Light" @@ -3341,11 +3341,11 @@ msgstr "Sprachen ausschließen" #: cps/templates/search_form.html:127 msgid "Extensions" -msgstr "Datei Erweiterungen" +msgstr "Dateierweiterungen" #: cps/templates/search_form.html:135 msgid "Exclude Extensions" -msgstr "Datei Erweiterungen ausschliessen" +msgstr "Dateierweiterungen ausschliessen" #: cps/templates/search_form.html:145 msgid "Rating Above" @@ -3371,7 +3371,7 @@ msgstr "Lösche dieses Bücherregal" #: cps/templates/shelf.html:14 msgid "Edit Shelf Properties" -msgstr "Bücherregal Eigenschaften bearbeiten" +msgstr "Eigenschaften bearbeiten" #: cps/templates/shelf.html:17 msgid "Arrange books manually" @@ -3387,11 +3387,11 @@ msgstr "Manuelles Sortieren aktivieren" #: cps/templates/shelf.html:28 msgid "Sort according to book added to shelf, newest first" -msgstr "Sortiere nach Buch zu Bücherregal hinzugefügt, Neuestes zuerst" +msgstr "Sortiere nach Buch zu Bücherregal hinzugefügt, neuestes zuerst" #: cps/templates/shelf.html:29 msgid "Sort according to book added to shelf, oldest first" -msgstr "Sortiere nach Buch zu Bücherregal hinzugefügt, Ältestes zuerst" +msgstr "Sortiere nach Buch zu Bücherregal hinzugefügt, ältestes zuerst" #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" @@ -3403,7 +3403,7 @@ msgstr "Dieses Bücherregal mit Kobo synchronisieren" #: cps/templates/shelf_order.html:5 msgid "Drag to Rearrange Order" -msgstr "Drag 'n drop um Reihenfolge zu ändern" +msgstr "Ziehen und ablegen um Reihenfolge zu ändern" #: cps/templates/shelf_order.html:33 msgid "Hidden Book" @@ -3411,7 +3411,7 @@ msgstr "Verstecktes Buch" #: cps/templates/stats.html:7 msgid "Library Statistics" -msgstr "Bibiliotheksstatistiken" +msgstr "Bibliotheksstatistiken" #: cps/templates/stats.html:12 msgid "Books in this Library" @@ -3491,7 +3491,7 @@ msgstr "Zeige nur Bücher mit dieser Sprache" #: cps/templates/user_edit.html:54 msgid "OAuth Settings" -msgstr "Oauth Einstellungen" +msgstr "OAuth Einstellungen" #: cps/templates/user_edit.html:56 msgid "Link" @@ -3511,7 +3511,7 @@ msgstr "Erzeugen/Ansehen" #: cps/templates/user_edit.html:70 msgid "Force full kobo sync" -msgstr "Komplettsynchronisation Kobo erzwingen" +msgstr "Kobo Komplettsynchronisation erzwingen" #: cps/templates/user_edit.html:88 msgid "Add allowed/Denied Custom Column Values" @@ -3595,7 +3595,7 @@ msgstr "Verbotene Spaltennamen" #: cps/templates/user_table.html:144 msgid "Change Password" -msgstr "Passworts ändern" +msgstr "Passwort ändern" #: cps/templates/user_table.html:147 msgid "View" @@ -3611,5 +3611,5 @@ msgstr "Ausgesuchte Bücherregale mit Kobo synchronisieren" #: cps/templates/user_table.html:156 msgid "Show Read/Unread Section" -msgstr "Zeige Gelesen/Ungelesen Auswahl" +msgstr "Zeige Gelesen/Ungelesen" From 36a99b0b5cf0edea470b06e229ba6be1a22fac09 Mon Sep 17 00:00:00 2001 From: Missing Link Date: Sat, 12 Apr 2025 03:59:32 +0800 Subject: [PATCH 09/21] Fix traceback encoding --- cps/tasks/convert.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cps/tasks/convert.py b/cps/tasks/convert.py index dc0af0c44..9e9fbb4a6 100644 --- a/cps/tasks/convert.py +++ b/cps/tasks/convert.py @@ -285,6 +285,8 @@ class TaskConvert(CalibreTask): else: error_message = "" for ele in calibre_traceback: + ele = ele.decode('utf-8', errors="ignore").strip('\n') + log.debug(ele) if not ele.startswith('Traceback') and not ele.startswith(' File'): error_message = N_("Calibre failed with error: %(error)s", error=ele) return check, error_message From 521b46e60d27204841e13dd4e98b0c7209d7b37a Mon Sep 17 00:00:00 2001 From: Asher Max Schweigart Date: Mon, 3 Mar 2025 17:29:29 -0500 Subject: [PATCH 10/21] Adding eBooks.com identifier type --- cps/db.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/cps/db.py b/cps/db.py index 15921d7a4..9cdffdfbd 100644 --- a/cps/db.py +++ b/cps/db.py @@ -103,13 +103,13 @@ class Identifiers(Base): val = Column(String(collation='NOCASE'), nullable=False) book = Column(Integer, ForeignKey('books.id'), nullable=False) amazon = { - "jp": "co.jp", - "uk": "co.uk", - "us": "com", - "au": "com.au", - "be": "com.be", - "br": "com.br", - "tr": "com.tr", + "jp": "co.jp", + "uk": "co.uk", + "us": "com", + "au": "com.au", + "be": "com.be", + "br": "com.br", + "tr": "com.tr", "mx": "com.mx", } @@ -153,6 +153,8 @@ class Identifiers(Base): return "ISFDB" elif format_type == "storygraph": return "StoryGraph" + elif format_type == "ebooks": + return "eBooks.com" if format_type == "lubimyczytac": return "Lubimyczytac" if format_type == "databazeknih": @@ -198,6 +200,8 @@ class Identifiers(Base): return "https://www.databazeknih.cz/knihy/{0}".format(self.val) elif format_type == "storygraph": return "https://app.thestorygraph.com/books/{0}".format(self.val) + elif format_type == "ebooks": + return "https://www.ebooks.com/en-us/book/{0}".format(self.val) elif self.val.lower().startswith("javascript:"): return quote(self.val) elif self.val.lower().startswith("data:"): From 0d2611c8a0e5a8be5bcbd9afa3c5a66464c5e130 Mon Sep 17 00:00:00 2001 From: mapi68 <41143572+mapi68@users.noreply.github.com> Date: Tue, 15 Apr 2025 00:51:31 +0200 Subject: [PATCH 11/21] Update messages.po --- cps/translations/it/LC_MESSAGES/messages.po | 416 ++++++++++++++------ 1 file changed, 299 insertions(+), 117 deletions(-) diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 57889fc6b..ef53a23d9 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -2,21 +2,22 @@ # Copyright (C) 2016 Smart Cities Community # This file is distributed under the same license as the Calibre-Web # Juan F. Villa , 2016. -# SPDX-FileCopyrightText: 2023, 2024 Massimo Pissarello +# SPDX-FileCopyrightText: 2023, 2024, 2025 Massimo Pissarello msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" -"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-03-30 15:55+0200\n" -"PO-Revision-Date: 2024-12-15 06:37+0100\n" +"PO-Revision-Date: 2025-04-15 00:50+0200\n" "Last-Translator: Massimo Pissarello \n" -"Language: it\n" "Language-Team: Italian <>\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: it\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Generated-By: Babel 2.13.1\n" +"X-Generator: Lokalize 24.12.3\n" #: cps/about.py:85 msgid "Statistics" @@ -39,8 +40,11 @@ msgid "Unknown command" msgstr "Comando sconosciuto" #: cps/admin.py:175 -msgid "Success! Books queued for Metadata Backup, please check Tasks for result" -msgstr "Tutto OK! Libri in coda per il backup dei metadati, controlla le attività per il risultato" +msgid "" +"Success! Books queued for Metadata Backup, please check Tasks for result" +msgstr "" +"Tutto OK! Libri in coda per il backup dei metadati, controlla le attività " +"per il risultato" #: cps/admin.py:208 cps/editbooks.py:614 cps/editbooks.py:657 #: cps/editbooks.py:1302 cps/updater.py:615 cps/uploader.py:108 @@ -64,7 +68,8 @@ msgstr "Configurazione dell'interfaccia utente" #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" -msgstr "La colonna personalizzata no.%(column)d non esiste nel database di Calibre" +msgstr "" +"La colonna personalizzata no.%(column)d non esiste nel database di Calibre" #: cps/admin.py:333 cps/templates/admin.html:51 msgid "Edit Users" @@ -102,7 +107,9 @@ msgstr "L'utente Guest (ospite) non può avere questo ruolo" #: cps/admin.py:501 cps/admin.py:2023 msgid "No admin user remaining, can't remove admin role" -msgstr "Non rimarrebbe nessun utente amministratore, non è possibile rimuovere il ruolo di amministratore" +msgstr "" +"Non rimarrebbe nessun utente amministratore, non è possibile rimuovere il " +"ruolo di amministratore" #: cps/admin.py:505 cps/admin.py:519 msgid "Value has to be true or false" @@ -122,7 +129,9 @@ msgstr "Visualizzazione non valida" #: cps/admin.py:524 msgid "Guest's Locale is determined automatically and can't be set" -msgstr "Le impostazioni locali dell'utente Guest (ospite) sono determinate automaticamente e non possono essere configurate" +msgstr "" +"Le impostazioni locali dell'utente Guest (ospite) sono determinate " +"automaticamente e non possono essere configurate" #: cps/admin.py:528 msgid "No Valid Locale Given" @@ -166,39 +175,65 @@ msgstr "Sei sicuro di voler eliminare questo scaffale?" #: cps/admin.py:624 msgid "Are you sure you want to change locales of selected user(s)?" -msgstr "Sei sicuro di voler cambiare le impostazioni internazionali degli utenti selezionati?" +msgstr "" +"Sei sicuro di voler cambiare le impostazioni internazionali degli utenti " +"selezionati?" #: cps/admin.py:626 -msgid "Are you sure you want to change visible book languages for selected user(s)?" -msgstr "Sei sicuro di voler cambiare le lingue visibili del libro per gli utenti selezionati?" +msgid "" +"Are you sure you want to change visible book languages for selected user(s)?" +msgstr "" +"Sei sicuro di voler cambiare le lingue visibili del libro per gli utenti " +"selezionati?" #: cps/admin.py:628 -msgid "Are you sure you want to change the selected role for the selected user(s)?" -msgstr "Sei sicuro di voler cambiare il ruolo selezionato per gli utenti selezionati?" +msgid "" +"Are you sure you want to change the selected role for the selected user(s)?" +msgstr "" +"Sei sicuro di voler cambiare il ruolo selezionato per gli utenti selezionati?" #: cps/admin.py:630 -msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" -msgstr "Sei sicuro di voler cambiare le restrizioni selezionate per gli utenti selezionati?" +msgid "" +"Are you sure you want to change the selected restrictions for the selected " +"user(s)?" +msgstr "" +"Sei sicuro di voler cambiare le restrizioni selezionate per gli utenti " +"selezionati?" #: cps/admin.py:632 -msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" -msgstr "Sei sicuro di voler cambiare le restrizioni di visibilità selezionate per gli utenti selezionati?" +msgid "" +"Are you sure you want to change the selected visibility restrictions for the " +"selected user(s)?" +msgstr "" +"Sei sicuro di voler cambiare le restrizioni di visibilità selezionate per " +"gli utenti selezionati?" #: cps/admin.py:635 -msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" -msgstr "Sei sicuro di voler cambiare il comportamento di sincronizzazione dello scaffale per gli utenti selezionati?" +msgid "" +"Are you sure you want to change shelf sync behavior for the selected user(s)?" +msgstr "" +"Sei sicuro di voler cambiare il comportamento di sincronizzazione dello " +"scaffale per gli utenti selezionati?" #: cps/admin.py:637 msgid "Are you sure you want to change Calibre library location?" msgstr "Sei sicuro di voler cambiare la posizione della biblioteca di Calibre?" #: cps/admin.py:639 -msgid "Calibre-Web will search for updated Covers and update Cover Thumbnails, this may take a while?" -msgstr "Calibre-Web cercherà le copertine aggiornate e aggiornerà le miniature delle copertine, ma ci vorrà un po' di tempo." +msgid "" +"Calibre-Web will search for updated Covers and update Cover Thumbnails, this " +"may take a while?" +msgstr "" +"Calibre-Web cercherà le copertine aggiornate e aggiornerà le miniature delle " +"copertine, ma ci vorrà un po' di tempo." #: cps/admin.py:642 -msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" -msgstr "Sei sicuro di voler eliminare il database sincronizzato di Calibre-Web e forzare una sincronizzazione completa con il tuo lettore Kobo?" +msgid "" +"Are you sure you want delete Calibre-Web's sync database to force a full " +"sync with your Kobo Reader?" +msgstr "" +"Sei sicuro di voler eliminare il database sincronizzato di Calibre-Web e " +"forzare una sincronizzazione completa con il tuo lettore Kobo?" #: cps/admin.py:885 cps/admin.py:891 cps/admin.py:901 cps/admin.py:911 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 @@ -230,15 +265,21 @@ msgstr "client_secrets.json non è configurato per Web Application" #: cps/admin.py:1177 msgid "Logfile Location is not Valid, Please Enter Correct Path" -msgstr "La posizione del file di log non è valida, per favore indica il percorso corretto" +msgstr "" +"La posizione del file di log non è valida, per favore indica il percorso " +"corretto" #: cps/admin.py:1183 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" -msgstr "La posizione del file del log di accesso non è valida, indica il percorso corretto" +msgstr "" +"La posizione del file del log di accesso non è valida, indica il percorso " +"corretto" #: cps/admin.py:1217 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" -msgstr "Inserisci un provider LDAP, una porta, un DN e un identificatore oggetto utente" +msgstr "" +"Inserisci un provider LDAP, una porta, un DN e un identificatore oggetto " +"utente" #: cps/admin.py:1223 msgid "Please Enter a LDAP Service Account and Password" @@ -251,7 +292,8 @@ msgstr "Inserisci un account di servizio LDAP" #: cps/admin.py:1231 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" -msgstr "Il filtro oggetto gruppo LDAP deve avere un identificatore di formato \"%s\"" +msgstr "" +"Il filtro oggetto gruppo LDAP deve avere un identificatore di formato \"%s\"" #: cps/admin.py:1233 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" @@ -260,7 +302,8 @@ msgstr "Il filtro oggetto gruppo LDAP ha parentesi senza corrispondenza" #: cps/admin.py:1237 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" -msgstr "Il filtro oggetto utente LDAP deve avere un identificatore di formato \"%s\"" +msgstr "" +"Il filtro oggetto utente LDAP deve avere un identificatore di formato \"%s\"" #: cps/admin.py:1239 msgid "LDAP User Object Filter Has Unmatched Parenthesis" @@ -269,15 +312,20 @@ msgstr "Il filtro oggetto utente LDAP ha parentesi senza corrispondenza" #: cps/admin.py:1246 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" -msgstr "Il filtro utente membro LDAP deve avere un identificatore di formato \"%s\"" +msgstr "" +"Il filtro utente membro LDAP deve avere un identificatore di formato \"%s\"" #: cps/admin.py:1248 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "Il filtro utente membro LDAP ha parentesi senza corrispondenza" #: cps/admin.py:1255 -msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" -msgstr "Il certificato CA LDAP, il certificato o la posizione della chiave non sono validi. Inserisci il percorso corretto" +msgid "" +"LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter " +"Correct Path" +msgstr "" +"Il certificato CA LDAP, il certificato o la posizione della chiave non sono " +"validi. Inserisci il percorso corretto" #: cps/admin.py:1286 cps/templates/admin.html:53 msgid "Add New User" @@ -302,8 +350,11 @@ msgstr "Errore nel database: %(error)s." #: cps/admin.py:1344 #, python-format -msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" -msgstr "L'e-mail di prova è stato accodata correttamente per essere spedita a %(email)s, controlla il risultato in Attività" +msgid "" +"Test e-mail queued for sending to %(email)s, please check Tasks for result" +msgstr "" +"L'e-mail di prova è stato accodata correttamente per essere spedita a " +"%(email)s, controlla il risultato in Attività" #: cps/admin.py:1347 #, python-format @@ -411,7 +462,8 @@ msgstr "Errore generale" #: cps/admin.py:1551 msgid "Update file could not be saved in temp dir" -msgstr "Il file di aggiornamento non può essere salvato nella cartella temporanea" +msgstr "" +"Il file di aggiornamento non può essere salvato nella cartella temporanea" #: cps/admin.py:1552 msgid "Files could not be replaced during update" @@ -448,7 +500,8 @@ msgstr "Percorso dei libri non valido" #: cps/admin.py:1740 msgid "DB Location is not Valid, Please Enter Correct Path" -msgstr "La posizione del DB non è valida, per favore indica il percorso corretto" +msgstr "" +"La posizione del DB non è valida, per favore indica il percorso corretto" #: cps/admin.py:1768 msgid "DB is not Writeable" @@ -506,7 +559,9 @@ msgstr "Impossibile eliminare l'utente Guest (ospite)" #: cps/admin.py:2008 msgid "No admin user remaining, can't delete user" -msgstr "Non rimarrebbe nessun utente amministratore, non è possibile eliminare l'utente" +msgstr "" +"Non rimarrebbe nessun utente amministratore, non è possibile eliminare " +"l'utente" #: cps/admin.py:2063 cps/web.py:1484 msgid "Email can't be empty and has to be a valid Email" @@ -562,8 +617,11 @@ msgstr "Si è verificato un errore durante la conversione del libro: %(res)s" #: cps/editbooks.py:433 cps/editbooks.py:928 cps/web.py:535 cps/web.py:1576 #: cps/web.py:1622 cps/web.py:1672 -msgid "Oops! Selected book is unavailable. File does not exist or is not accessible" -msgstr "Il libro selezionato non è disponibile. Il file non esiste o non è accessibile" +msgid "" +"Oops! Selected book is unavailable. File does not exist or is not accessible" +msgstr "" +"Il libro selezionato non è disponibile. Il file non esiste o non è " +"accessibile" #: cps/editbooks.py:479 cps/editbooks.py:1285 msgid "User has no rights to upload cover" @@ -571,7 +629,9 @@ msgstr "L'utente non ha i permessi per caricare le copertine" #: cps/editbooks.py:500 cps/editbooks.py:743 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" -msgstr "Gli identificatori non fanno distinzione tra maiuscole e minuscole e sovrascrivono il vecchio identificatore" +msgstr "" +"Gli identificatori non fanno distinzione tra maiuscole e minuscole e " +"sovrascrivono il vecchio identificatore" #: cps/editbooks.py:515 cps/editbooks.py:717 cps/editbooks.py:1055 #, python-format @@ -587,8 +647,12 @@ msgid "Error editing book: {}" msgstr "Errore nella modifica del libro: {}" #: cps/editbooks.py:661 -msgid "Uploaded book probably exists in the library, consider to change before upload new: " -msgstr "Probabilmente il libro caricato esiste già nella biblioteca, cambialo prima di caricarlo di nuovo:" +msgid "" +"Uploaded book probably exists in the library, consider to change before " +"upload new: " +msgstr "" +"Probabilmente il libro caricato esiste già nella biblioteca, cambialo prima " +"di caricarlo di nuovo:" #: cps/editbooks.py:755 cps/editbooks.py:1202 msgid "File type isn't allowed to be uploaded to this server" @@ -597,7 +661,8 @@ msgstr "Non è consentito caricare questo tipo di file su questo server" #: cps/editbooks.py:761 cps/editbooks.py:1213 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" -msgstr "Non è consentito caricare l'estensione del file '%(ext)s' su questo server" +msgstr "" +"Non è consentito caricare l'estensione del file '%(ext)s' su questo server" #: cps/editbooks.py:765 cps/editbooks.py:1218 msgid "File to be uploaded must have an extension" @@ -654,12 +719,20 @@ msgid "File format %(ext)s added to %(book)s" msgstr "Formato file %(ext)s aggiunto a %(book)s" #: cps/gdrive.py:58 -msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again" -msgstr "Configurazione di Google Drive non completata, prova a disattivare e attivare nuovamente Google Drive" +msgid "" +"Google Drive setup not completed, try to deactivate and activate Google " +"Drive again" +msgstr "" +"Configurazione di Google Drive non completata, prova a disattivare e " +"attivare nuovamente Google Drive" #: cps/gdrive.py:96 -msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" -msgstr "Il dominio di callback non è stato verificato, segui i passaggi per verificare il dominio nella console per sviluppatori di Google" +msgid "" +"Callback domain is not verified, please follow steps to verify domain in " +"google developer console" +msgstr "" +"Il dominio di callback non è stato verificato, segui i passaggi per " +"verificare il dominio nella console per sviluppatori di Google" #: cps/helper.py:87 #, python-format @@ -726,8 +799,11 @@ msgstr "Impossibile impostare lo stato di lettura: {}" #: cps/helper.py:375 #, python-format -msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" -msgstr "Eliminazione della cartella di libri per il libro %(id)s non riuscita, il percorso ha sottocartelle: %(path)s" +msgid "" +"Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" +msgstr "" +"Eliminazione della cartella di libri per il libro %(id)s non riuscita, il " +"percorso ha sottocartelle: %(path)s" #: cps/helper.py:381 #, python-format @@ -736,13 +812,20 @@ msgstr "Eliminazione del libro %(id)s non riuscita: %(message)s" #: cps/helper.py:392 #, python-format -msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" -msgstr "Eliminazione del libro %(id)s solo dal database, percorso del libro nel database non valido: %(path)s" +msgid "" +"Deleting book %(id)s from database only, book path in database not valid: " +"%(path)s" +msgstr "" +"Eliminazione del libro %(id)s solo dal database, percorso del libro nel " +"database non valido: %(path)s" #: cps/helper.py:439 #, python-format -msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "La modifica dell'autore da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" +msgid "" +"Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "" +"La modifica dell'autore da '%(src)s' a '%(dest)s' è terminata con l'errore: " +"%(error)s" #: cps/helper.py:507 cps/helper.py:516 #, python-format @@ -752,7 +835,9 @@ msgstr "Il file %(file) non è stato trovato su Google Drive" #: cps/helper.py:559 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "La modifica del titolo da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" +msgstr "" +"La modifica del titolo da '%(src)s' a '%(dest)s' è terminata con l'errore: " +"%(error)s" #: cps/helper.py:597 #, python-format @@ -776,8 +861,11 @@ msgid "Password doesn't comply with password validation rules" msgstr "La password non è conforme alle regole di convalida della password" #: cps/helper.py:847 -msgid "Python module 'advocate' is not installed but is needed for cover uploads" -msgstr "Il modulo Python \"advocate\" non è installato ma è necessario per il caricamento delle copertine" +msgid "" +"Python module 'advocate' is not installed but is needed for cover uploads" +msgstr "" +"Il modulo Python \"advocate\" non è installato ma è necessario per il " +"caricamento delle copertine" #: cps/helper.py:857 msgid "Error Downloading Cover" @@ -788,8 +876,12 @@ msgid "Cover Format Error" msgstr "Errore nel formato della copertina" #: cps/helper.py:863 -msgid "You are not allowed to access localhost or the local network for cover uploads" -msgstr "Non ti è consentito accedere all'host locale o alla rete locale per caricare le copertine" +msgid "" +"You are not allowed to access localhost or the local network for cover " +"uploads" +msgstr "" +"Non ti è consentito accedere all'host locale o alla rete locale per caricare " +"le copertine" #: cps/helper.py:873 msgid "Failed to create path for cover" @@ -797,11 +889,14 @@ msgstr "Impossibile creare il percorso per la copertina" #: cps/helper.py:889 msgid "Cover-file is not a valid image file, or could not be stored" -msgstr "Il file della copertina non è in un formato di immagine valido o non può essere salvato" +msgstr "" +"Il file della copertina non è in un formato di immagine valido o non può " +"essere salvato" #: cps/helper.py:900 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" -msgstr "Solo i file jpg/jpeg/png/webp/bmp sono supportati come file di copertina" +msgstr "" +"Solo i file jpg/jpeg/png/webp/bmp sono supportati come file di copertina" #: cps/helper.py:912 msgid "Invalid cover file content" @@ -854,8 +949,12 @@ msgid "Queue all books for metadata backup" msgstr "Metti in coda tutti i libri per il backup dei metadati" #: cps/kobo_auth.py:92 -msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" -msgstr "Accedi a Calibre-Web da un host non locale per ottenere un api_endpoint valido per il dispositivo Kobo" +msgid "" +"Please access Calibre-Web from non localhost to get valid api_endpoint for " +"kobo device" +msgstr "" +"Accedi a Calibre-Web da un host non locale per ottenere un api_endpoint " +"valido per il dispositivo Kobo" #: cps/kobo_auth.py:118 msgid "Kobo Setup" @@ -878,7 +977,8 @@ msgstr "Collegamento riuscito a %(oauth)s" #: cps/oauth_bb.py:156 msgid "Login failed, No User Linked With OAuth Account" -msgstr "Accesso non riuscito, non c'è nessun utente collegato all'account OAuth" +msgstr "" +"Accesso non riuscito, non c'è nessun utente collegato all'account OAuth" #: cps/oauth_bb.py:198 #, python-format @@ -1113,7 +1213,9 @@ msgstr "Stato di lettura = '%(status)s'" #: cps/search.py:351 msgid "Error on search for custom columns, please restart Calibre-Web" -msgstr "Errore nella ricerca delle colonne personalizzate. Per favore riavvia Calibre-Web" +msgstr "" +"Errore nella ricerca delle colonne personalizzate. Per favore riavvia " +"Calibre-Web" #: cps/search.py:370 cps/search.py:402 cps/templates/layout.html:58 msgid "Advanced Search" @@ -1125,7 +1227,8 @@ msgstr "Scaffale specificato non valido" #: cps/shelf.py:55 msgid "Sorry you are not allowed to add a book to that shelf" -msgstr "Spiacente, ma non sei autorizzato ad aggiungere libri a questo scaffale" +msgstr "" +"Spiacente, ma non sei autorizzato ad aggiungere libri a questo scaffale" #: cps/shelf.py:64 #, python-format @@ -1135,7 +1238,8 @@ msgstr "Il libro è gia presente nello scaffale: %(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 non è un valido ID libro. Impossibile aggiungerlo allo scaffale" +msgstr "" +"%(book_id)s non è un valido ID libro. Impossibile aggiungerlo allo scaffale" #: cps/shelf.py:97 #, python-format @@ -1230,7 +1334,9 @@ msgstr "Scaffale: '%(name)s'" #: cps/shelf.py:487 msgid "Error opening shelf. Shelf does not exist or is not accessible" -msgstr "Errore nell'apertura dello scaffale. Lo scaffale non esiste o non è accessibile" +msgstr "" +"Errore nell'apertura dello scaffale. Lo scaffale non esiste o non è " +"accessibile" #: cps/tasks_status.py:47 cps/templates/layout.html:91 #: cps/templates/tasks.html:7 @@ -1274,8 +1380,12 @@ msgid "No update available. You already have the latest version installed" msgstr "Nessun aggiornamento disponibile. Hai già l'ultima versione installata" #: cps/updater.py:458 -msgid "A new update is available. Click on the button below to update to the latest version." -msgstr "È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per aggiornare all'ultima versione" +msgid "" +"A new update is available. Click on the button below to update to the latest " +"version." +msgstr "" +"È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per " +"aggiornare all'ultima versione" #: cps/updater.py:476 msgid "Could not fetch update information" @@ -1283,12 +1393,18 @@ msgstr "Impossibile recuperare le informazioni sull'aggiornamento" #: cps/updater.py:486 msgid "Click on the button below to update to the latest stable version." -msgstr "Fai clic sul pulsante in basso per eseguire l'aggiornamento all'ultima versione stabile." +msgstr "" +"Fai clic sul pulsante in basso per eseguire l'aggiornamento all'ultima " +"versione stabile." #: 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 "È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per aggiornare alla versione:%(version)s" +msgid "" +"A new update is available. Click on the button below to update to version: " +"%(version)s" +msgstr "" +"È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per " +"aggiornare alla versione:%(version)s" #: cps/updater.py:538 msgid "No release information available" @@ -1389,11 +1505,14 @@ msgstr "Registrati" #: cps/web.py:1290 cps/web.py:1393 msgid "Connection error to limiter backend, please contact your administrator" -msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore" +msgstr "" +"Il server e-mail non è configurato, per favore contatta l'amministratore" #: cps/web.py:1295 cps/web.py:1342 -msgid "Oops! Email server is not configured, please contact your administrator." -msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore" +msgid "" +"Oops! Email server is not configured, please contact your administrator." +msgstr "" +"Il server e-mail non è configurato, per favore contatta l'amministratore" #: cps/web.py:1328 msgid "Oops! Your Email is not allowed." @@ -1418,8 +1537,12 @@ msgstr "ora sei connesso come: '%(nickname)s'" #: cps/web.py:1415 #, python-format -msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" -msgstr "Accesso di riserva come: '%(nickname)s', il server LDAP non è raggiungibile o l'utente è sconosciuto" +msgid "" +"Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not " +"known" +msgstr "" +"Accesso di riserva come: '%(nickname)s', il server LDAP non è raggiungibile " +"o l'utente è sconosciuto" #: cps/web.py:1420 #, python-format @@ -2015,8 +2138,11 @@ msgid "Add Identifier" msgstr "Aggiungi identificatore" #: cps/templates/book_edit.html:133 -msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" -msgstr "Recupera la copertina dall'URL (JPEG: l'immagine verrà scaricata e archiviata nel database)" +msgid "" +"Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" +msgstr "" +"Recupera la copertina dall'URL (JPEG: l'immagine verrà scaricata e " +"archiviata nel database)" #: cps/templates/book_edit.html:137 msgid "Upload Cover from Local Disk" @@ -2225,7 +2351,8 @@ msgstr "Revoca" #: cps/templates/config_db.html:80 msgid "New db location is invalid, please enter valid path" -msgstr "La nuova posizione del database non è valida, inserisci un percorso valido" +msgstr "" +"La nuova posizione del database non è valida, inserisci un percorso valido" #: cps/templates/config_edit.html:18 msgid "Server Configuration" @@ -2237,11 +2364,15 @@ msgstr "Porta del server" #: cps/templates/config_edit.html:28 msgid "SSL certfile location (leave it empty for non-SSL Servers)" -msgstr "Posizione del file del certificato SSL (lascia vuoto per una configurazione del server senza SSL)" +msgstr "" +"Posizione del file del certificato SSL (lascia vuoto per una configurazione " +"del server senza SSL)" #: cps/templates/config_edit.html:35 msgid "SSL Keyfile location (leave it empty for non-SSL Servers)" -msgstr "Posizione del file della chiave SSL (lascia vuoto per una configurazione del server senza SSL)" +msgstr "" +"Posizione del file della chiave SSL (lascia vuoto per una configurazione del " +"server senza SSL)" #: cps/templates/config_edit.html:43 msgid "Update Channel" @@ -2265,7 +2396,8 @@ msgstr "Configurazione del file di log" #: cps/templates/config_edit.html:77 msgid "Location and name of logfile (calibre-web.log for no entry)" -msgstr "Posizione e nome del file di log (se non specificato sarà calibre-web.log)" +msgstr "" +"Posizione e nome del file di log (se non specificato sarà calibre-web.log)" #: cps/templates/config_edit.html:82 msgid "Enable Access Log" @@ -2273,7 +2405,9 @@ msgstr "Abilita il log degli accessi" #: cps/templates/config_edit.html:85 msgid "Location and name of access logfile (access.log for no entry)" -msgstr "Posizione e nome del file di log degli accessi (se non specificato sarà access.log)" +msgstr "" +"Posizione e nome del file di log degli accessi (se non specificato sarà " +"access.log)" #: cps/templates/config_edit.html:96 msgid "Feature Configuration" @@ -2281,11 +2415,17 @@ msgstr "Configurazione funzionalità" #: cps/templates/config_edit.html:104 msgid "Convert non-English characters in title and author while saving to disk" -msgstr "Converti caratteri non inglesi nel titolo e nell'autore durante il salvataggio su disco" +msgstr "" +"Converti caratteri non inglesi nel titolo e nell'autore durante il " +"salvataggio su disco" #: cps/templates/config_edit.html:108 -msgid "Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/Kepubify binaries)" -msgstr "Incorpora metadati nel file del libro al momento del download e della conversione per e-mail (sono necessari gli eseguibili Calibre/Kepubify)" +msgid "" +"Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/" +"Kepubify binaries)" +msgstr "" +"Incorpora metadati nel file del libro al momento del download e della " +"conversione per e-mail (sono necessari gli eseguibili Calibre/Kepubify)" #: cps/templates/config_edit.html:112 msgid "Enable Uploads" @@ -2293,7 +2433,9 @@ msgstr "Abilita il caricamento" #: cps/templates/config_edit.html:112 msgid "(Please ensure that users also have upload permissions)" -msgstr "(assicurati che gli utenti dispongano anche delle autorizzazioni di caricamento)" +msgstr "" +"(assicurati che gli utenti dispongano anche delle autorizzazioni di " +"caricamento)" #: cps/templates/config_edit.html:116 msgid "Allowed Upload Fileformats" @@ -2376,16 +2518,24 @@ msgid "SSL" msgstr "SSL" #: cps/templates/config_edit.html:209 -msgid "LDAP CACertificate Path (Only needed for Client Certificate Authentication)" -msgstr "Percorso certificato CA LDAP (necessario solo per l'autenticazione del certificato client)" +msgid "" +"LDAP CACertificate Path (Only needed for Client Certificate Authentication)" +msgstr "" +"Percorso certificato CA LDAP (necessario solo per l'autenticazione del " +"certificato client)" #: cps/templates/config_edit.html:216 -msgid "LDAP Certificate Path (Only needed for Client Certificate Authentication)" -msgstr "Percorso certificato LDAP (necessario solo per l'autenticazione del certificato client)" +msgid "" +"LDAP Certificate Path (Only needed for Client Certificate Authentication)" +msgstr "" +"Percorso certificato LDAP (necessario solo per l'autenticazione del " +"certificato client)" #: cps/templates/config_edit.html:223 msgid "LDAP Keyfile Path (Only needed for Client Certificate Authentication)" -msgstr "Percorso del file di chiavi LDAP (necessario solo per l'autenticazione del certificato client)" +msgstr "" +"Percorso del file di chiavi LDAP (necessario solo per l'autenticazione del " +"certificato client)" #: cps/templates/config_edit.html:232 msgid "LDAP Authentication" @@ -2425,7 +2575,8 @@ msgstr "Il server LDAP è OpenLDAP?" #: cps/templates/config_edit.html:263 msgid "Following Settings are Needed For User Import" -msgstr "Per l'importazione degli utenti sono necessarie le seguenti impostazioni" +msgstr "" +"Per l'importazione degli utenti sono necessarie le seguenti impostazioni" #: cps/templates/config_edit.html:265 msgid "LDAP Group Object Filter" @@ -2508,7 +2659,9 @@ msgstr "Opzioni per il limitatore del Backend" #: cps/templates/config_edit.html:382 msgid "Check if file extensions matches file content on upload" -msgstr "Controlla se le estensioni dei file corrispondono al contenuto del file al momento del caricamento" +msgstr "" +"Controlla se le estensioni dei file corrispondono al contenuto del file al " +"momento del caricamento" #: cps/templates/config_edit.html:385 msgid "Session protection" @@ -2544,7 +2697,8 @@ msgstr "Obbliga caratteri maiuscoli" #: cps/templates/config_edit.html:414 msgid "Enforce characters (needed For Chinese/Japanese/Korean Characters)" -msgstr "Obbliga caratteri (necessario per caratteri cinesi, giapponesi e coreani)" +msgstr "" +"Obbliga caratteri (necessario per caratteri cinesi, giapponesi e coreani)" #: cps/templates/config_edit.html:418 msgid "Enforce special characters" @@ -2560,7 +2714,8 @@ msgstr "Numero di libri casuali da mostrare" #: cps/templates/config_view_edit.html:36 msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" -msgstr "Numero di autori da mostrare prima di nascondere (0=disabilita nascondere)" +msgstr "" +"Numero di autori da mostrare prima di nascondere (0=disabilita nascondere)" #: cps/templates/config_view_edit.html:40 cps/templates/readcbr.html:101 msgid "Theme" @@ -2684,8 +2839,12 @@ msgid "Add to archive" msgstr "Aggiungi all'archivio" #: 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 "Contrassegna il libro come archiviato o no per nasconderlo in Calibre-Web ed eliminarlo da Kobo Reader" +msgid "" +"Mark Book as archived or not, to hide it in Calibre-Web and delete it from " +"Kobo Reader" +msgstr "" +"Contrassegna il libro come archiviato o no per nasconderlo in Calibre-Web ed " +"eliminarlo da Kobo Reader" #: cps/templates/detail.html:275 msgid "Archive" @@ -2774,8 +2933,12 @@ msgid "Denied Domains (Blacklist)" msgstr "Domini non consentiti (lista nera)" #: 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 "Apri il file .kobo/Kobo/Kobo eReader.conf in un editor di testo e aggiungi (o modifica):" +msgid "" +"Open the .kobo/Kobo/Kobo eReader.conf file in a text editor and add (or " +"edit):" +msgstr "" +"Apri il file .kobo/Kobo/Kobo eReader.conf in un editor di testo e aggiungi " +"(o modifica):" #: cps/templates/generate_kobo_auth_url.html:11 msgid "Kobo Token:" @@ -2787,7 +2950,8 @@ msgstr "Elenco" #: cps/templates/http_error.html:34 msgid "Calibre-Web Instance is unconfigured, please contact your administrator" -msgstr "L'istanza Calibre-Web non è configurata, per favore contatta l'amministratore" +msgstr "" +"L'istanza Calibre-Web non è configurata, per favore contatta l'amministratore" #: cps/templates/http_error.html:44 msgid "Create Issue" @@ -2991,7 +3155,8 @@ msgstr "Seleziona le categorie consentite/negate per l'utente" #: cps/templates/modal_dialogs.html:9 msgid "Select Allowed/Denied Custom Column Values of User" -msgstr "Seleziona i valori personali consentiti/negati per le colonne dell'utente" +msgstr "" +"Seleziona i valori personali consentiti/negati per le colonne dell'utente" #: cps/templates/modal_dialogs.html:15 msgid "Enter Tag" @@ -3014,12 +3179,19 @@ msgid "and hard disk" msgstr "e dal disco rigido" #: cps/templates/modal_dialogs.html:56 -msgid "Important Kobo Note: deleted books will remain on any paired Kobo device." -msgstr "Nota importante su Kobo: i libri eliminati rimarranno su qualsiasi dispositivo Kobo associato." +msgid "" +"Important Kobo Note: deleted books will remain on any paired Kobo device." +msgstr "" +"Nota importante su Kobo: i libri eliminati rimarranno su qualsiasi " +"dispositivo Kobo associato." #: cps/templates/modal_dialogs.html:57 -msgid "Books must first be archived and the device synced before a book can safely be deleted." -msgstr "I libri devono essere prima archiviati e il dispositivo sincronizzato prima che un libro possa essere eliminato in sicurezza." +msgid "" +"Books must first be archived and the device synced before a book can safely " +"be deleted." +msgstr "" +"I libri devono essere prima archiviati e il dispositivo sincronizzato prima " +"che un libro possa essere eliminato in sicurezza." #: cps/templates/modal_dialogs.html:76 msgid "Choose File Location" @@ -3468,20 +3640,31 @@ msgid "Actions" msgstr "Azioni" #: cps/templates/tasks.html:41 -msgid "This task will be cancelled. Any progress made by this task will be saved." -msgstr "Questa attività verrà annullata. Tutti i progressi compiuti da questa attività verranno salvati." +msgid "" +"This task will be cancelled. Any progress made by this task will be saved." +msgstr "" +"Questa attività verrà annullata. Tutti i progressi compiuti da questa " +"attività verranno salvati." #: cps/templates/tasks.html:42 -msgid "If this is a scheduled task, it will be re-ran during the next scheduled time." -msgstr "Se si tratta di un'attività pianificata, verrà eseguita nuovamente all'orario pianificato successivo." +msgid "" +"If this is a scheduled task, it will be re-ran during the next scheduled " +"time." +msgstr "" +"Se si tratta di un'attività pianificata, verrà eseguita nuovamente " +"all'orario pianificato successivo." #: cps/templates/user_edit.html:20 msgid "Reset user Password" msgstr "Reimposta la password dell'utente" #: cps/templates/user_edit.html:28 -msgid "Send to eReader Email Address. Use comma to separate emails for multiple eReaders" -msgstr "Invia all'indirizzo e-mail dell'eReader. Usa la virgola per separare le email per più eReader" +msgid "" +"Send to eReader Email Address. Use comma to separate emails for multiple " +"eReaders" +msgstr "" +"Invia all'indirizzo e-mail dell'eReader. Usa la virgola per separare le " +"email per più eReader" #: cps/templates/user_edit.html:43 msgid "Language of Books" @@ -3610,4 +3793,3 @@ msgstr "Sincronizza gli scaffali selezionati con Kobo" #: cps/templates/user_table.html:156 msgid "Show Read/Unread Section" msgstr "Mostra sezione Libri letti e Libri da leggere" - From 5127061775f5027e1688d4e740d0a18c38c83ad3 Mon Sep 17 00:00:00 2001 From: Asher Max Schweigart Date: Mon, 28 Apr 2025 12:22:28 -0400 Subject: [PATCH 12/21] Updating translation template --- messages.pot | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/messages.pot b/messages.pot index 646f3cc76..1b9c6f7d4 100644 --- a/messages.pot +++ b/messages.pot @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -59,7 +59,7 @@ msgstr "" msgid "UI Configuration" msgstr "" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -532,7 +532,7 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -665,12 +665,12 @@ msgstr "" msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" @@ -738,7 +738,7 @@ msgstr "" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" @@ -748,7 +748,7 @@ msgstr "" msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" @@ -1272,7 +1272,7 @@ msgstr "" msgid "No update available. You already have the latest version installed" msgstr "" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "" @@ -1280,7 +1280,7 @@ msgstr "" msgid "Could not fetch update information" msgstr "" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "" @@ -1491,7 +1491,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" From 50be750460b204e6bf6192f1009581db8670fbec Mon Sep 17 00:00:00 2001 From: Asher Max Schweigart Date: Mon, 28 Apr 2025 12:42:16 -0400 Subject: [PATCH 13/21] Updating translation files --- cps/translations/cs/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/de/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/el/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/es/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/fi/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/fr/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/gl/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/hu/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/id/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/it/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/ja/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/km/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/ko/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/nl/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/no/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/pl/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/pt/LC_MESSAGES/messages.po | 31 ++++++++++++------- .../pt_BR/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/ru/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/sk/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/sl/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/sv/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/tr/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/uk/LC_MESSAGES/messages.po | 31 ++++++++++++------- cps/translations/vi/LC_MESSAGES/messages.po | 31 ++++++++++++------- .../zh_Hans_CN/LC_MESSAGES/messages.po | 31 ++++++++++++------- .../zh_Hant_TW/LC_MESSAGES/messages.po | 31 ++++++++++++------- 27 files changed, 540 insertions(+), 297 deletions(-) diff --git a/cps/translations/cs/LC_MESSAGES/messages.po b/cps/translations/cs/LC_MESSAGES/messages.po index 3f29168af..794d1ed04 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2020-06-09 21:11+0100\n" "Last-Translator: Lukas Heroudek \n" "Language: cs_CZ\n" @@ -15,7 +15,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -62,7 +62,7 @@ msgstr "Základní konfigurace" msgid "UI Configuration" msgstr "Konfigurace uživatelského rozhraní" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "Uživatel nenalezen" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "" @@ -220,6 +221,7 @@ msgid "Allow" msgstr "Povolit" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -450,6 +452,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Nejméně jeden uživatel LDAP nenalezen v databázi" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -547,7 +550,7 @@ msgstr "není nainstalováno" msgid "Execution permissions missing" msgstr "Chybí povolení k exekuci" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -597,6 +600,7 @@ msgid "Metadata successfully updated" msgstr "Metadata úspěšně aktualizována" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -681,12 +685,12 @@ msgstr "Doména zpětného volání není ověřena, postupujte podle pokynů k msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formát pro knihu: %(book)d nenalezen" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s nenalezen na Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nenalezen: %(fn)s" @@ -740,6 +744,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Požadovaný soubor nelze přečíst. Možná nesprávná oprávnění?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -758,7 +763,7 @@ msgstr "Mazání knihy selhalo %(id)s failed: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Mazání knihy %(id)s, cesta ke knize není platná %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Přejmenování názvu z: '%(src)s' na '%(dest)s' selhalo chybou: %(error)s" @@ -768,7 +773,7 @@ msgstr "Přejmenování názvu z: '%(src)s' na '%(dest)s' selhalo chybou: %(err msgid "File %(file)s not found on Google Drive" msgstr "Soubor %(file)s nenalezen na Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Přejmenování názvu z: '%(src)s' na '%(dest)s' selhalo chybou: %(error)s" @@ -940,6 +945,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth chyba, prosím opakujte později." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -948,10 +954,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth chyba, prosím opakujte později." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "" @@ -1309,7 +1317,7 @@ msgstr "Neočekávaná data při čtení informací o aktualizaci" msgid "No update available. You already have the latest version installed" msgstr "Aktualizace není k dispozici. Máte nainstalovanou nejnovější verzi" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Nová aktualizace k dispozici. Klepnutím na tlačítko níže aktualizujte na nejnovější verzi." @@ -1317,7 +1325,7 @@ msgstr "Nová aktualizace k dispozici. Klepnutím na tlačítko níže aktualizu msgid "Could not fetch update information" msgstr "Nelze získat informace o aktualizaci" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Klepnutím na tlačítko níže aktualizujte na nejnovější stabilní verzi." @@ -1538,7 +1546,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-převaděč selhal: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Převedený soubor nebyl nalezen nebo více než jeden soubor ve složce %(folder)s" @@ -1581,6 +1589,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index 197d777db..ba4481d94 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2024-11-16 20:41+0100\n" "Last-Translator: Ozzie Isaacs\n" "Language: de\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "Basiskonfiguration" msgid "UI Configuration" msgstr "Benutzeroberflächenkonfiguration" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "Benutzer nicht gefunden" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} Benutzer erfolgreich gelöscht" @@ -213,6 +214,7 @@ msgid "Allow" msgstr "Erlauben" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} Synchronisationseinträge gelöscht" @@ -439,6 +441,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Mindestens ein LDAP Benutzer wurde nicht in der Datenbank gefudnen" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Benutzer erfolgreich importiert" @@ -533,7 +536,7 @@ msgstr "Nicht installiert" msgid "Execution permissions missing" msgstr "Ausführberechtigung fehlt" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -583,6 +586,7 @@ msgid "Metadata successfully updated" msgstr "Metadaten wurden erfolgreich aktualisiert" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Fehler beim Editieren des Buches: {}" @@ -666,12 +670,12 @@ msgstr "Callback Domain ist nicht verifiziert, bitte Domain in der Google Develo msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s Format für Buch-ID %(book)d nicht gefunden" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s von Buch %(fn)s nicht auf Google Drive gefunden" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nicht gefunden: %(fn)s" @@ -721,6 +725,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Die angeforderte Datei konnte nicht gelesen werden. Evtl. falsche Zugriffsrechte?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Gelesen-Status konnte nicht aktualisiert werden: {}" @@ -739,7 +744,7 @@ msgstr "Löschen von Buch %(id)s fehlgeschlagen: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Lösche Buch %(id)s nur aus Datenbank, Pfad zum Buch in Datenbank ist nicht gültig: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Umbenennen des Autors '%(src)s' zu '%(dest)s' fehlgeschlagen: %(error)s" @@ -749,7 +754,7 @@ msgstr "Umbenennen des Autors '%(src)s' zu '%(dest)s' fehlgeschlagen: %(error)s" msgid "File %(file)s not found on Google Drive" msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Umbenennen des Titels '%(src)s' zu '%(dest)s' fehlgeschlagen: %(error)s" @@ -916,6 +921,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub OAuth Fehler, bitte später erneut versuchen." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Github OAuth Fehler {}" @@ -924,10 +930,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google OAuth Fehler, bitte später erneut versuchen." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google OAuth Fehler: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Sterne" @@ -1273,7 +1281,7 @@ msgstr "Updateinformationen enthalten unbekannte Daten" msgid "No update available. You already have the latest version installed" msgstr "Kein Update verfügbar. Es ist bereits die aktuellste Version installiert" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Es sind Updates verfügbar. Klicke auf den Button unten, um auf die aktuellste Version zu aktualisieren." @@ -1281,7 +1289,7 @@ msgstr "Es sind Updates verfügbar. Klicke auf den Button unten, um auf die aktu msgid "Could not fetch update information" msgstr "Updateinformationen konnten nicht geladen werden" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Klicke auf den Button unten, um auf die letzte stabile Version zu aktualisieren." @@ -1492,7 +1500,7 @@ msgstr "E-Book Converter mit unbekanntem Fehler fehlgeschlagen" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify Konverter Aufruf fehlgeschlagen: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Konvertierte Datei nicht gefunden, oder mehr als eine Datei im Pfad %(folder)s" @@ -1534,6 +1542,7 @@ msgid "Cover Thumbnails" msgstr "Cover Miniaturansichten" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "{0} Serien Miniaturansichten erzeugt" diff --git a/cps/translations/el/LC_MESSAGES/messages.po b/cps/translations/el/LC_MESSAGES/messages.po index 1a5fd286c..cb7319079 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Depountis Georgios\n" "Language: el\n" @@ -15,7 +15,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -62,7 +62,7 @@ msgstr "Βασική Διαμόρφωση" msgid "UI Configuration" msgstr "UI Διαμόρφωση" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "Δεν βρέθηκε χρήστης" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "" @@ -220,6 +221,7 @@ msgid "Allow" msgstr "Επιτρέπεται" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -450,6 +452,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Τουλάχιστον Ένας Χρήστης LDAP Δεν Βρέθηκε Στη Βάση Δεδομένων" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -547,7 +550,7 @@ msgstr "δεν εγκαταστάθηκε" msgid "Execution permissions missing" msgstr "Λείπουν άδειες εκτέλεσης" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -597,6 +600,7 @@ msgid "Metadata successfully updated" msgstr "Τα μεταδεδομένα ενημερώθηκαν επιτυχώς" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -681,12 +685,12 @@ msgstr "Η ανάκληση ονόματος δεν έχει επαληθευτ msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s η δομή δεν βρέθηκε για την ταυτότητα βιβλίου: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s δεν βρέθηκε στο Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s δεν βρέθηκε: %(fn)s" @@ -740,6 +744,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Το αρχείου που χητήθηκε δεν μπορεί να διαβαστεί. Μπορεί να υπάρχουν λαθασμένες άδειες;" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -758,7 +763,7 @@ msgstr "Η διαγραφή βιβλίου %(id)s απέτυχε: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Διαγραφή βιβλίου %(id)s, η πορεία βιβλίου δεν είναι έγκυρη: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Η μετονομασία τίτλου από: '%(src)s' σε '%(dest)s' απέτυχε με σφάλμα: %(error)s" @@ -768,7 +773,7 @@ msgstr "Η μετονομασία τίτλου από: '%(src)s' σε '%(dest)s' msgid "File %(file)s not found on Google Drive" msgstr "Το αρχείο %(file)s δεν βρέθηκε στο Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Η μετονομασία τίτλου από: '%(src)s' σε '%(dest)s' απέτυχε με σφάλμα: %(error)s" @@ -940,6 +945,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth σφάλμα, παρακαλούμε δοκίμασε ξανά αργότερα." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -948,10 +954,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth σφάλμα, παρακαλούμε δοκίμασε ξανά αργότερα." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "" @@ -1309,7 +1317,7 @@ msgstr "Απρόβλεπτα δεδομένα κατά την ανάγνωση msgid "No update available. You already have the latest version installed" msgstr "Δεν υπάρχει διαθέσιμη ενημέρωση. Έχεις ήδη την τελευταία έκδοση εγκατεστημένη" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Μια νέα ενημέρωση είναι διαθέσιμη. Κάνε κλικ στο κουμπί πιο κάτω για να ενημερώσεις με την τελευταία έκδοση." @@ -1317,7 +1325,7 @@ msgstr "Μια νέα ενημέρωση είναι διαθέσιμη. Κάνε msgid "Could not fetch update information" msgstr "Δεν μπόρεσε να συγκεντρώσει τις πληροφορίες ενημέρωσης" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Κάνε κλικ στο κουμπί πιο κάτω για να ενημερώσεις με την τελευταία σταθερή έκδοση." @@ -1538,7 +1546,7 @@ msgstr "Ο μετατροπέας Ebook απέτυχε με άγνωστο σφ msgid "Kepubify-converter failed: %(error)s" msgstr "Ο μετατροπέας Kepubify απέτυχε: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Το τροποποιημένο αρχείο δεν βρέθηκε ή υπάρχουν περισσότερα από ένα αρχεία στο φάκελο %(folder)s" @@ -1581,6 +1589,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po index 1930273d6..704b58cae 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2024-10-29 15:26+0100\n" "Last-Translator: adruki \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "Configuración básica" msgid "UI Configuration" msgstr "Configuración de la interfaz de usuario" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "Usuario no encontrado" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} usuarios eliminados con éxito" @@ -216,6 +217,7 @@ msgid "Allow" msgstr "Permitir" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} entradas de sincronización eliminadas" @@ -442,6 +444,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Al menos, un usuario LDAP no se ha encontrado en la base de datos" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Usuario importado con éxito" @@ -536,7 +539,7 @@ msgstr "no instalado" msgid "Execution permissions missing" msgstr "Faltan permisos de ejecución" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -586,6 +589,7 @@ msgid "Metadata successfully updated" msgstr "Metadatos actualizados con éxito" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Error al editar el libro: {}" @@ -669,12 +673,12 @@ msgstr "El dominio de retorno (callback) no está verificado, por favor sigue lo msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formato no encontrado para el id del libro: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s no encontrado en Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s no encontrado: %(fn)s" @@ -724,6 +728,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "El archivo solicitado no puede ser leído. ¿Quizás existen problemas con los permisos?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "No se pudo establecer el estado de lectura: {}" @@ -742,7 +747,7 @@ msgstr "La eliminación del libro %(id)s falló: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Eliminando el libro %(id)s solo de la base de datos, la ruta del libro en la base de datos no es válida: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "El cambio de nombre del autor de '%(src)s' a '%(dest)s' falló con el error: %(error)s" @@ -752,7 +757,7 @@ msgstr "El cambio de nombre del autor de '%(src)s' a '%(dest)s' falló con el er msgid "File %(file)s not found on Google Drive" msgstr "Archivo %(file)s no encontrado en Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "El cambio de nombre del título de '%(src)s' a '%(dest)s' falló con el error: %(error)s" @@ -919,6 +924,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Error en GitHub Oauth, por favor, vuelve a intentarlo más tarde." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Error GitHub Oauth {}" @@ -927,10 +933,12 @@ msgid "Google Oauth error, please retry later." msgstr "Error en Google Oauth, por favor vuelve a intentarlo más tarde." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Error Google Oauth {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} estrellas" @@ -1276,7 +1284,7 @@ msgstr "Datos inesperados al leer la información de actualización" msgid "No update available. You already have the latest version installed" msgstr "Actualización no disponible. Ya tienes instalada la versión más reciente" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Hay una nueva actualización disponible. Haz clic en el botón de abajo para actualizar a la versión más reciente." @@ -1284,7 +1292,7 @@ msgstr "Hay una nueva actualización disponible. Haz clic en el botón de abajo msgid "Could not fetch update information" msgstr "No se puede conseguir información sobre la actualización" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Haz clic en el botón de abajo para actualizar a la última versión estable." @@ -1495,7 +1503,7 @@ msgstr "El conversor de ebook falló con un error desconocido" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-converter falló: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Archivo convertido no encontrado, o hay más de un archivo en la carpeta %(folder)s" @@ -1537,6 +1545,7 @@ msgid "Cover Thumbnails" msgstr "Miniaturas de portada" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Se generaron {0} miniaturas de series" diff --git a/cps/translations/fi/LC_MESSAGES/messages.po b/cps/translations/fi/LC_MESSAGES/messages.po index f794ee524..b0e57d958 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2020-01-12 13:56+0100\n" "Last-Translator: Samuli Valavuo \n" "Language: fi\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "Perusasetukset" msgid "UI Configuration" msgstr "Käyttöliittymän asetukset" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -84,6 +84,7 @@ msgid "User not found" msgstr "" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "" @@ -221,6 +222,7 @@ msgid "Allow" msgstr "" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -448,6 +450,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -545,7 +548,7 @@ msgstr "ei asennettu" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -595,6 +598,7 @@ msgid "Metadata successfully updated" msgstr "Metadata päivitetty onnistuneesti" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -679,12 +683,12 @@ msgstr "Paluuosoitteen domain ei ole varmistettu, seuraa ohjeita vamistaaksesi s msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s tiedostomuotoa ei löytynyt kirjalle: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s ei löytynyt Google Drivesta: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s ei löydy: %(fn)s" @@ -738,6 +742,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Haettua tiedostoa ei pystytty lukemaan. Ehkä vaäärät oikeudet?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -756,7 +761,7 @@ msgstr "" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Tiedon muuttaminen arvosta: '%(src)s' arvoon '%(dest)s' epäonnistui virheeseen: %(error)s" @@ -766,7 +771,7 @@ msgstr "Tiedon muuttaminen arvosta: '%(src)s' arvoon '%(dest)s' epäonnistui vir msgid "File %(file)s not found on Google Drive" msgstr "Tiedostoa %(file)s ei löytynyt Google Drivesta" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Tiedon muuttaminen arvosta: '%(src)s' arvoon '%(dest)s' epäonnistui virheeseen: %(error)s" @@ -934,6 +939,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth virhe, yritä myöhemmin uudelleen." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -942,10 +948,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth virhe, yritä myöhemmin uudelleen." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "" @@ -1303,7 +1311,7 @@ msgstr "Odottamatonta tietoa luettaessa päivitystietoa" msgid "No update available. You already have the latest version installed" msgstr "Ei päivitystä saatavilla. Sinulla on jo uusin versio" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi uusimpaan versioon." @@ -1311,7 +1319,7 @@ msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi uu msgid "Could not fetch update information" msgstr "Päivitystiedon hakeminen epäonnistui" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Paina alla olevaa nappia päivittääksesi uusimpaan vakaaseen versioon." @@ -1530,7 +1538,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" @@ -1573,6 +1581,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index 51221ecef..c70980764 100644 --- a/cps/translations/fr/LC_MESSAGES/messages.po +++ b/cps/translations/fr/LC_MESSAGES/messages.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2020-06-07 06:47+0200\n" "Last-Translator: \n" "Language: fr\n" @@ -31,7 +31,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -78,7 +78,7 @@ msgstr "Configuration principale" msgid "UI Configuration" msgstr "Configuration de l’interface utilisateur" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -99,6 +99,7 @@ msgid "User not found" msgstr "L'utilisateur n'a pas été trouvé" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} utilisateurs supprimés avec succès" @@ -236,6 +237,7 @@ msgid "Allow" msgstr "Autoriser" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} entrées de synchronisation supprimées" @@ -466,6 +468,7 @@ 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" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} utilisateur importé avec succès" @@ -563,7 +566,7 @@ msgstr "non installé" msgid "Execution permissions missing" msgstr "Les permissions d'exécutions manquantes" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -613,6 +616,7 @@ msgid "Metadata successfully updated" msgstr "Les métadonnées ont bien été mises à jour" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -697,12 +701,12 @@ msgstr "Le domaine de retour d’appel (Callback domain) est non vérifié, veui msgid "%(format)s format not found for book id: %(book)d" msgstr "le format %(format)s est introuvable pour le livre : %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "le %(format)s est introuvable sur Google Drive : %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s introuvable : %(fn)s" @@ -756,6 +760,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Le fichier demandé n’a pu être lu. Problème de permission d’accès ?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -774,7 +779,7 @@ msgstr "La suppression du livre %(id)s a échoué: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Suppression du livre %(id)s, le chemin du livre est invalide : %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author 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" @@ -784,7 +789,7 @@ msgstr "Renommer le titre de : '%(src)s' à '%(dest)s' a échoué avec l’erreu msgid "File %(file)s not found on Google Drive" msgstr "Le fichier %(file)s n'a pas été trouvé dans Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, 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" @@ -957,6 +962,7 @@ 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 : {}" @@ -965,10 +971,12 @@ 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:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Étoiles" @@ -1326,7 +1334,7 @@ msgstr "Données inattendues lors de la lecture des informations de mise à jour 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" -#: cps/updater.py:458 +#: 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." @@ -1334,7 +1342,7 @@ msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-desso msgid "Could not fetch update information" msgstr "Impossible d'extraire les informations de mise à jour" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Téléchargez la dernière version en cliquant sur le bouton ci-dessous." @@ -1555,7 +1563,7 @@ msgstr "Le convertisseur Ebook a échoué avec une erreur inconnue" msgid "Kepubify-converter failed: %(error)s" msgstr "La commande Kepubify-converter a échouée : %(error)s" -#: cps/tasks/convert.py:255 +#: 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" @@ -1598,6 +1606,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/gl/LC_MESSAGES/messages.po b/cps/translations/gl/LC_MESSAGES/messages.po index f08e1f168..28a244f1d 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2024-12-08 13:50+0100\n" "Last-Translator: pollitor@gmx.com\n" "Language: gl\n" @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -58,7 +58,7 @@ msgstr "Configuración Básica" msgid "UI Configuration" msgstr "Configuración da Interface de Usuario" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -78,6 +78,7 @@ msgid "User not found" msgstr "Usuario non atopado" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} usuarios borrados con éxito" @@ -211,6 +212,7 @@ msgid "Allow" msgstr "Permitir" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "Elimináronse {} entradas de sincronización" @@ -437,6 +439,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Non se atopou polo menos un usuario LDAP na base de datos" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "Usuario {} importado correctamente" @@ -531,7 +534,7 @@ msgstr "non instalado" msgid "Execution permissions missing" msgstr "Faltan permisos de execución" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -581,6 +584,7 @@ msgid "Metadata successfully updated" msgstr "Actualizáronse correctamente os metadatos" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Erro ao editar o libro: {}" @@ -664,12 +668,12 @@ msgstr "O dominio de devolución de chamada non está verificado. Sigue os pasos msgid "%(format)s format not found for book id: %(book)d" msgstr "Non se atopou o formato %(format)s para o ID do libro: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Non se atopou %(format)s en Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s non atopado: %(fn)s" @@ -719,6 +723,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Non se puido ler o ficheiro solicitado. Quizais permisos incorrectos?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Non se puido establecer o estado de lectura: {}" @@ -737,7 +742,7 @@ msgstr "Produciuse un erro ao eliminar o libro %(id)s: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Eliminando o libro %(id)s só da base de datos, a ruta do libro na base de datos non é válida: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "O cambio de nome do autor de: '%(src)s' a '%(dest)s' fallou co erro: %(error)s" @@ -747,7 +752,7 @@ msgstr "O cambio de nome do autor de: '%(src)s' a '%(dest)s' fallou co erro: %(e msgid "File %(file)s not found on Google Drive" msgstr "Non se atopou o ficheiro %(file)s en Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "O cambio de título de: '%(src)s' a '%(dest)s' produciu o erro: %(error)s" @@ -914,6 +919,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Erro de GitHub Oauth. Ténteo de novo máis tarde." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Erro de GitHub Oauth: {}" @@ -922,10 +928,12 @@ msgid "Google Oauth error, please retry later." msgstr "Erro de Google Oauth. Téntao de novo máis tarde." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Erro de Google Oauth: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} estrelas" @@ -1271,7 +1279,7 @@ msgstr "Datos inesperados ao ler a información de actualización" msgid "No update available. You already have the latest version installed" msgstr "Non hai ningunha actualización dispoñible. Xa tes instalada a última versión" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Hai unha nova actualización dispoñible. Fai clic no botón de abaixo para actualizar á última versión." @@ -1279,7 +1287,7 @@ msgstr "Hai unha nova actualización dispoñible. Fai clic no botón de abaixo p msgid "Could not fetch update information" msgstr "Non se puido recuperar a información de actualización" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Fai clic no botón de abaixo para actualizar á última versión estable." @@ -1490,7 +1498,7 @@ msgstr "Fallou o conversor de libros electrónicos cun erro descoñecido" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-converter fallou: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Non se atopou o ficheiro convertido ou hai máis dun ficheiro no cartafol %(folder)s" @@ -1532,6 +1540,7 @@ msgid "Cover Thumbnails" msgstr "Miniaturas de portada" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Xeráronse {0} miniaturas de series" diff --git a/cps/translations/hu/LC_MESSAGES/messages.po b/cps/translations/hu/LC_MESSAGES/messages.po index 4b32f85d8..eaed30657 100644 --- a/cps/translations/hu/LC_MESSAGES/messages.po +++ b/cps/translations/hu/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2019-04-06 23:36+0200\n" "Last-Translator: \n" "Language: hu\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -62,7 +62,7 @@ msgstr "Alapvető beállítások" msgid "UI Configuration" msgstr "Felhasználói felület beállításai" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "" @@ -220,6 +221,7 @@ msgid "Allow" msgstr "" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -447,6 +449,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -544,7 +547,7 @@ msgstr "nincs telepítve" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -594,6 +597,7 @@ msgid "Metadata successfully updated" msgstr "A metaadatok sikeresen frissültek" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -678,12 +682,12 @@ msgstr "A visszahívási tartomány nem ellenőrzött, kövesd az alábbi lépé msgid "%(format)s format not found for book id: %(book)d" msgstr "A(z) %(format)s formátum nem található a következő könyvhöz: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s nem található a Google Drive-on: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nem található: %(fn)s" @@ -737,6 +741,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "A kért fájl nem olvasható. Esetleg jogosultsági probléma lenne?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -755,7 +760,7 @@ msgstr "" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "A cím átnevezése \"%(src)s\"-ról \"%(dest)s\"-ra nem sikerült a következő hiba miatt: %(error)s" @@ -765,7 +770,7 @@ msgstr "A cím átnevezése \"%(src)s\"-ról \"%(dest)s\"-ra nem sikerült a kö msgid "File %(file)s not found on Google Drive" msgstr "A \"%(file)s\" fájl nem található a Google Drive-on" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "A cím átnevezése \"%(src)s\"-ról \"%(dest)s\"-ra nem sikerült a következő hiba miatt: %(error)s" @@ -933,6 +938,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "" #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -941,10 +947,12 @@ msgid "Google Oauth error, please retry later." msgstr "" #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "" @@ -1302,7 +1310,7 @@ msgstr "Ismeretlen adat a frissítési információk olvasásakor" msgid "No update available. You already have the latest version installed" msgstr "Nem érhető el újabb frissítés. Már a legújabb verzió van telepítve." -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Egy új frissítés érhető el. Kattints a lenti gombra a legújabb verzió frissítésére" @@ -1310,7 +1318,7 @@ msgstr "Egy új frissítés érhető el. Kattints a lenti gombra a legújabb ver msgid "Could not fetch update information" msgstr "Nem lehetett begyűjteni a frissítési információkat" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "" @@ -1528,7 +1536,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" @@ -1571,6 +1579,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/id/LC_MESSAGES/messages.po b/cps/translations/id/LC_MESSAGES/messages.po index ed319d43c..2ee857d01 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2023-01-21 10:00+0700\n" "Last-Translator: Arief Hidayat\n" "Language: id\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "Pengaturan Dasar" msgid "UI Configuration" msgstr "Pengaturan Antarmuka" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "Pengguna tidak ditemukan" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} pengguna berhasil dihapus" @@ -216,6 +217,7 @@ msgid "Allow" msgstr "Izinkan" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} entri sinkronisasi dihapus" @@ -443,6 +445,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Setidaknya Satu Pengguna LDAP Tidak Ditemukan di Basis Data" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Pengguna Berhasil Diimpor" @@ -537,7 +540,7 @@ msgstr "belum dipasang" msgid "Execution permissions missing" msgstr "Izin eksekusi hilang" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -587,6 +590,7 @@ msgid "Metadata successfully updated" msgstr "Metadata berhasil diperbarui" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Kesalahan pengeditan buku: {}" @@ -671,12 +675,12 @@ msgstr "Domain panggilan balik tidak diverifikasi, ikuti langkah-langkah untuk m msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s format tidak ditemukan untuk id buku: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s tidak ditemukan di Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s tidak ditemukan: %(fn)s" @@ -729,6 +733,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Berkas yang diminta tidak dapat dibaca. Mungkin izinnya salah?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Status baca tidak bisa disetel: {}" @@ -747,7 +752,7 @@ msgstr "Gagal menghapus buku %(id)s: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Menghapus buku %(id)s hanya dari basis data, jalur buku di basis data tidak valid: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Ganti nama pengarang dari: '%(src)s' menjadi '%(dest)s' gagal dengan kesalahan: %(error)s" @@ -757,7 +762,7 @@ msgstr "Ganti nama pengarang dari: '%(src)s' menjadi '%(dest)s' gagal dengan kes msgid "File %(file)s not found on Google Drive" msgstr "Berkas %(file)s tidak ditemukan di Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Ganti nama judul dari: '%(src)s' menjadi '%(dest)s' gagal dengan kesalahan: %(error)s" @@ -929,6 +934,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Kesalahan GitHub Oauth, silakan coba lagi nanti." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Kesalahan GitHub OAuth: {}" @@ -937,10 +943,12 @@ msgid "Google Oauth error, please retry later." msgstr "Kesalahan Google Oauth, harap coba lagi nanti." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Kesalahan Google OAuth: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{}★" @@ -1295,7 +1303,7 @@ msgstr "Data tak terduga saat membaca informasi pembaruan" msgid "No update available. You already have the latest version installed" msgstr "Tidak ada pembaruan yang tersedia. Anda telah memasang versi terbaru" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Pembaruan tersedia. Klik tombol di bawah untuk memperbarui ke versi terbaru." @@ -1303,7 +1311,7 @@ msgstr "Pembaruan tersedia. Klik tombol di bawah untuk memperbarui ke versi terb msgid "Could not fetch update information" msgstr "Tidak dapat mengambil informasi pembaruan" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Klik tombol di bawah untuk memperbarui ke versi stabil terbaru." @@ -1523,7 +1531,7 @@ msgstr "Konverter ebook gagal dengan kesalahan yang tidak diketahui." msgid "Kepubify-converter failed: %(error)s" msgstr "Kebupify-converter gagal: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Berkas yang telah dikonversi tidak ditemukan atau terdapat duplikat dalam folder %(folder)s" @@ -1566,6 +1574,7 @@ msgid "Cover Thumbnails" msgstr "Thumbnail Sampul" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "{0} thumbnail seri dihasilkan" diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 57889fc6b..2a574a162 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: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2024-12-15 06:37+0100\n" "Last-Translator: Massimo Pissarello \n" "Language: it\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "Configurazione di base" msgid "UI Configuration" msgstr "Configurazione dell'interfaccia utente" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "Utente non trovato" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "utenti eliminati correttamente" @@ -213,6 +214,7 @@ msgid "Allow" msgstr "Consenti" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} voci di sincronizzazione eliminate" @@ -439,6 +441,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Almeno un utente LDAP non è stato trovato nel database" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} utente importato correttamente" @@ -533,7 +536,7 @@ msgstr "non installato" msgid "Execution permissions missing" msgstr "Mancano i permessi di esecuzione" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -583,6 +586,7 @@ msgid "Metadata successfully updated" msgstr "Metadati aggiornati correttamente" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Errore nella modifica del libro: {}" @@ -666,12 +670,12 @@ msgstr "Il dominio di callback non è stato verificato, segui i passaggi per ver msgid "%(format)s format not found for book id: %(book)d" msgstr "Formato %(format)s non trovato per l'ID libro: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s non trovato su Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s non trovato: %(fn)s" @@ -721,6 +725,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Il file richiesto non può essere letto. I permessi sono corretti?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Impossibile impostare lo stato di lettura: {}" @@ -739,7 +744,7 @@ msgstr "Eliminazione del libro %(id)s non riuscita: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Eliminazione del libro %(id)s solo dal database, percorso del libro nel database non valido: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modifica dell'autore da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" @@ -749,7 +754,7 @@ msgstr "La modifica dell'autore da '%(src)s' a '%(dest)s' è terminata con l'err msgid "File %(file)s not found on Google Drive" msgstr "Il file %(file) non è stato trovato su Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modifica del titolo da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" @@ -916,6 +921,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Errore GitHub Oauth, riprova più tardi." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Errore GitHub Oauth: {}" @@ -924,10 +930,12 @@ msgid "Google Oauth error, please retry later." msgstr "Errore OAuth di Google, riprova più tardi." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Errore OAuth di Google: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} stelle" @@ -1273,7 +1281,7 @@ msgstr "Dati imprevisti durante la lettura delle informazioni di aggiornamento" msgid "No update available. You already have the latest version installed" msgstr "Nessun aggiornamento disponibile. Hai già l'ultima versione installata" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per aggiornare all'ultima versione" @@ -1281,7 +1289,7 @@ msgstr "È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso pe msgid "Could not fetch update information" msgstr "Impossibile recuperare le informazioni sull'aggiornamento" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Fai clic sul pulsante in basso per eseguire l'aggiornamento all'ultima versione stabile." @@ -1492,7 +1500,7 @@ msgstr "La conversione del libro è terminata con un errore sconosciuto" msgid "Kepubify-converter failed: %(error)s" msgstr "Errore con il convertitore Kepubify: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "File convertito non trovato o più di un file nella cartella %(folder)s" @@ -1534,6 +1542,7 @@ msgid "Cover Thumbnails" msgstr "Miniature delle copertine" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Sono state generate {0} miniature delle serie" diff --git a/cps/translations/ja/LC_MESSAGES/messages.po b/cps/translations/ja/LC_MESSAGES/messages.po index 79b1e1ac9..d395f5bb9 100644 --- a/cps/translations/ja/LC_MESSAGES/messages.po +++ b/cps/translations/ja/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2018-02-07 02:20-0500\n" "Last-Translator: subdiox \n" "Language: ja\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "基本設定" msgid "UI Configuration" msgstr "UI設定" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "ユーザーが見つかりません" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{}人のユーザーが削除されました" @@ -216,6 +217,7 @@ msgid "Allow" msgstr "許可" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{}件の同期項目を削除しました" @@ -443,6 +445,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "DB内にLDAPユーザーが1人も見つかりません" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{}人のユーザーをインポートしました" @@ -537,7 +540,7 @@ msgstr "インストールされていません" msgid "Execution permissions missing" msgstr "実行権限がありません" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -587,6 +590,7 @@ msgid "Metadata successfully updated" msgstr "メタデータを更新しました" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "本編集中のエラー: {}" @@ -671,12 +675,12 @@ msgstr "コールバックドメインが認証されていません。Google De msgid "%(format)s format not found for book id: %(book)d" msgstr "ID: %(book)d の本に %(format)s フォーマットはありません" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Googleドライブ: %(fn)s に %(format)s はありません" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s がありません: %(fn)s" @@ -729,6 +733,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "要求されたファイルを読み込めませんでした。権限設定が正しいか確認してください。" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "読み込みステータスを設定できません: {}" @@ -747,7 +752,7 @@ msgstr "本 %(id)s の削除に失敗しました: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "本 %(id)s はDBのみから削除されます。DB内の本のパスが有効ではありません: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "エラー: %(error)s により、著者名を %(src)s から %(dest)s に変更できませんでした" @@ -757,7 +762,7 @@ msgstr "エラー: %(error)s により、著者名を %(src)s から %(dest)s msgid "File %(file)s not found on Google Drive" msgstr "ファイル %(file)s はGoogleドライブ上にありません" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "エラー: %(error)s により、タイトルを %(src)s から %(dest)s に変更できませんでした" @@ -929,6 +934,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub OAuth エラー、再度お試しください。" #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "GitHub OAuth エラー: {}" @@ -937,10 +943,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google OAuth エラー、再度お試しください。" #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google OAuth エラー: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "星{}" @@ -1295,7 +1303,7 @@ msgstr "アップデート情報の読み込み中に予期しないデータが msgid "No update available. You already have the latest version installed" msgstr "アップデートはありません。すでに最新バージョンがインストールされています" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "アップデートが利用可能です。下のボタンをクリックして最新バージョンにアップデートしてください。" @@ -1303,7 +1311,7 @@ msgstr "アップデートが利用可能です。下のボタンをクリック msgid "Could not fetch update information" msgstr "アップデート情報を取得できません" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "下のボタンをクリックして最新の安定バージョンにアップデートしてください。" @@ -1523,7 +1531,7 @@ msgstr "Ebook converter が不明なエラーで失敗しました" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-converter が失敗しました: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "変換されたファイルが見つからないか、またはフォルダー %(folder)s 内に複数存在します" @@ -1566,6 +1574,7 @@ msgid "Cover Thumbnails" msgstr "表紙サムネイル" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "シリーズのサムネイルを{0}個生成しました" diff --git a/cps/translations/km/LC_MESSAGES/messages.po b/cps/translations/km/LC_MESSAGES/messages.po index ec5b6f6d0..db22a72ef 100644 --- a/cps/translations/km/LC_MESSAGES/messages.po +++ b/cps/translations/km/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2018-08-27 17:06+0700\n" "Last-Translator: \n" "Language: km_KH\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -64,7 +64,7 @@ msgstr "ការកំណត់សាមញ្ញ" msgid "UI Configuration" msgstr "ការកំណត់ផ្ទាំងប្រើប្រាស់" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -85,6 +85,7 @@ msgid "User not found" msgstr "" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "" @@ -222,6 +223,7 @@ msgid "Allow" msgstr "" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -449,6 +451,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -545,7 +548,7 @@ msgstr "មិនបានតម្លើង" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -595,6 +598,7 @@ msgid "Metadata successfully updated" msgstr "" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -679,12 +683,12 @@ msgstr "Callback domain មិនទាន់បានផ្ទៀងផ្ទ msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" @@ -735,6 +739,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "ឯកសារដែលបានស្នើសុំមិនអាចបើកបានទេ។ អាចនឹងខុសសិទ្ធិប្រើប្រាស់ទេដឹង?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -753,7 +758,7 @@ msgstr "" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "ប្តូរចំណងជើងពី “%(src)s” ទៅជា “%(dest)s” បរាជ័យដោយបញ្ហា: %(error)s" @@ -763,7 +768,7 @@ msgstr "ប្តូរចំណងជើងពី “%(src)s” ទៅជា msgid "File %(file)s not found on Google Drive" msgstr "ឯកសារ %(file)s រកមិនឃើញក្នុង Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "ប្តូរចំណងជើងពី “%(src)s” ទៅជា “%(dest)s” បរាជ័យដោយបញ្ហា: %(error)s" @@ -931,6 +936,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "" #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -939,10 +945,12 @@ msgid "Google Oauth error, please retry later." msgstr "" #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "" @@ -1299,7 +1307,7 @@ msgstr "" msgid "No update available. You already have the latest version installed" msgstr "" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "" @@ -1307,7 +1315,7 @@ msgstr "" msgid "Could not fetch update information" msgstr "" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "" @@ -1522,7 +1530,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" @@ -1565,6 +1573,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/ko/LC_MESSAGES/messages.po b/cps/translations/ko/LC_MESSAGES/messages.po index 2087879e9..f2d6f8063 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2024-11-01 17:50+0900\n" "Last-Translator: limeade23 \n" "Language: ko\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "기본 설정" msgid "UI Configuration" msgstr "UI 설정" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "사용자를 찾을 수 없습니다." #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} 사용자를 삭제했습니다." @@ -213,6 +214,7 @@ msgid "Allow" msgstr "허용" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} 동기화 항목이 삭제되었습니다." @@ -439,6 +441,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "데이터베이스에서 찾을 수 없는 LDAP 사용자가 있습니다." #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} 명의 사용자를 가져왔습니다." @@ -533,7 +536,7 @@ msgstr "설치되지 않았습니다." msgid "Execution permissions missing" msgstr "실행 권한이 없습니다." -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -583,6 +586,7 @@ msgid "Metadata successfully updated" msgstr "메타데이터가 업데이트되었습니다." #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "책 편집 중 오류가 발생했습니다: {}" @@ -666,12 +670,12 @@ msgstr "콜백 도메인이 인증되지 않았습니다. Google 개발자 콘 msgid "%(format)s format not found for book id: %(book)d" msgstr "책 ID %(book)d의 %(format)s 형식을 찾을 수 없습니다." -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Google 드라이브에서 %(format)s 파일을 찾을 수 없습니다: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s을(를) 찾을 수 없습니다: %(fn)s" @@ -721,6 +725,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "요청한 파일을 읽을 수 없습니다. 파일 접근 권한을 확인해주세요." #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "읽기 상태를 설정할 수 없습니다: {}" @@ -739,7 +744,7 @@ msgstr "책 %(id)s 삭제에 실패했습니다: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "데이터베이스 경로가 올바르지 않아 책 %(id)s을(를) 데이터베이스에서만 삭제합니다: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "저자명 '%(src)s'에서 '%(dest)s'(으)로 변경하지 못했습니다: %(error)s" @@ -749,7 +754,7 @@ msgstr "저자명 '%(src)s'에서 '%(dest)s'(으)로 변경하지 못했습니 msgid "File %(file)s not found on Google Drive" msgstr "Google 드라이브에서 %(file)s 파일을 찾을 수 없습니다." -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "제목을 '%(src)s'에서 '%(dest)s'(으)로 변경하지 못했습니다: %(error)s" @@ -916,6 +921,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth 오류입니다. 잠시 후 다시 시도해 주세요." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "GitHub 인증 오류가 발생했습니다: {}" @@ -924,10 +930,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google 인증 오류입니다. 잠시 후 다시 시도해 주세요." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google 인증 오류가 발생했습니다: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Stars" @@ -1273,7 +1281,7 @@ msgstr "업데이트 정보를 읽는 중 알 수 없는 문제가 발생했습 msgid "No update available. You already have the latest version installed" msgstr "업데이트가 없습니다. 최신 버전이 설치되어 있습니다." -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "새로운 업데이트가 있습니다. 아래 버튼을 클릭해 최신 버전으로 업데이트하세요." @@ -1281,7 +1289,7 @@ msgstr "새로운 업데이트가 있습니다. 아래 버튼을 클릭해 최 msgid "Could not fetch update information" msgstr "업데이트 정보를 가져올 수 없습니다." -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "아래 버튼을 클릭해 최신 버전으로 업데이트하세요." @@ -1492,7 +1500,7 @@ msgstr "알 수 없는 오류로 변환에 실패했습니다." msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify 변환에 실패했습니다: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "변환된 파일을 찾을 수 없거나 %(folder)s 폴더에 하나 이상의 파일이 존재합니다." @@ -1534,6 +1542,7 @@ msgid "Cover Thumbnails" msgstr "표지 섬네일" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "{0}개의 시리즈 섬네일을 생성했습니다." diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 5f7aadadf..f87c3ef44 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2023-12-20 22:00+0100\n" "Last-Translator: Michiel Cornelissen \n" "Language: nl\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -64,7 +64,7 @@ msgstr "Basisconfiguratie" msgid "UI Configuration" msgstr "Uiterlijk aanpassen" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -85,6 +85,7 @@ msgid "User not found" msgstr "Gebruiker niet gevonden" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} gebruikers succesvol verwijderd" @@ -222,6 +223,7 @@ msgid "Allow" msgstr "Toestaan" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} synchronisatie objecten verwijderd" @@ -451,6 +453,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Minstens een LDAP Gebruiker is niet gevonden in de Database" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Gebruiker succesvol geïmporteerd" @@ -548,7 +551,7 @@ msgstr "niet geïnstalleerd" msgid "Execution permissions missing" msgstr "Kan programma niet uitvoeren" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -598,6 +601,7 @@ msgid "Metadata successfully updated" msgstr "De metagegevens zijn bijgewerkt" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Fout tijdens bijwerken van boek: {}" @@ -682,12 +686,12 @@ msgstr "Het callback-domein is niet geverifieerd. Volg de stappen in de Google-o msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formaat niet gevonden voor boek met id: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s niet aangetroffen op Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s niet gevonden %(fn)s" @@ -741,6 +745,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Het opgevraagde bestand kan niet worden gelezen. Ben je hiertoe gemachtigd?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Gelezen/ongelezen status kan niet aangepast worden: {}" @@ -759,7 +764,7 @@ msgstr "Verwijderen van boek %(id)s mislukt: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Verwijder boek %(id)s alleen uit database, boek pad is ongeldig: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kan de titel '%(src)s' niet wijzigen in '%(dest)s': %(error)s" @@ -769,7 +774,7 @@ msgstr "Kan de titel '%(src)s' niet wijzigen in '%(dest)s': %(error)s" msgid "File %(file)s not found on Google Drive" msgstr "Bestand '%(file)s' niet aangetroffen op Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kan de titel '%(src)s' niet wijzigen in '%(dest)s': %(error)s" @@ -942,6 +947,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub OAuth fout, probeer het later nog eens." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Github OAuth foutmelding: {}" @@ -950,10 +956,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google OAuth fout, probeer het later nog eens." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google OAuth foutmelding: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} sterren" @@ -1311,7 +1319,7 @@ msgstr "Onverwachte gegevens tijdens het uitlezen van de update-informatie" msgid "No update available. You already have the latest version installed" msgstr "Er is geen update beschikbaar." -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Er is een update beschikbaar. Klik op de knop hieronder om te updaten naar de nieuwste versie." @@ -1319,7 +1327,7 @@ msgstr "Er is een update beschikbaar. Klik op de knop hieronder om te updaten na msgid "Could not fetch update information" msgstr "De update-informatie kan niet worden opgehaald" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Klik op de onderstaande knop om de laatste stabiele versie te installeren." @@ -1540,7 +1548,7 @@ msgstr "E-Book converter mislukt met een onbekende foutmelding" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-converteerder mislukt: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Omgezette bestand is niet gevonden of meer dan een bestand in map %(folder)s" @@ -1583,6 +1591,7 @@ msgid "Cover Thumbnails" msgstr "Omslag miniaturen" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "{0} serieminiaturen gegenereerd" diff --git a/cps/translations/no/LC_MESSAGES/messages.po b/cps/translations/no/LC_MESSAGES/messages.po index bacc284d5..8e6e7fa38 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2023-01-06 11:00+0000\n" "Last-Translator: Vegard Fladby \n" "Language: no\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "Grunnleggende konfigurasjon" msgid "UI Configuration" msgstr "UI-konfigurasjon" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "Bruker ikke funnet" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} brukere ble slettet" @@ -216,6 +217,7 @@ msgid "Allow" msgstr "Tillate" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} synkroniseringsoppføringer slettet" @@ -446,6 +448,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Minst én LDAP-bruker ikke funnet i databasen" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Bruker ble importert" @@ -543,7 +546,7 @@ msgstr "ikke installert" msgid "Execution permissions missing" msgstr "Utførelsestillatelser mangler" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -594,6 +597,7 @@ msgid "Metadata successfully updated" msgstr "Metadata ble oppdatert" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Feil ved redigering av bok: {}" @@ -678,12 +682,12 @@ msgstr "Tilbakeringingsdomene er ikke bekreftet. Følg fremgangsmåten for å be msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s format ikke funnet for bok-ID: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s ikke funnet på Google Disk: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s ikke funnet: %(fn)s" @@ -737,6 +741,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Den forespurte filen kunne ikke leses. Kanskje feil tillatelser?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Lesestatus kunne ikke angis: {}" @@ -755,7 +760,7 @@ msgstr "Sletting av bok %(id)s mislyktes: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Sletter bok %(id)s kun fra databasen, bokbanen i databasen er ikke gyldig: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Endre navn på forfatter fra: '%(src)s' til '%(dest)s' mislyktes med feil: %(error)s" @@ -765,7 +770,7 @@ msgstr "Endre navn på forfatter fra: '%(src)s' til '%(dest)s' mislyktes med fei msgid "File %(file)s not found on Google Drive" msgstr "Fil %(file)s ikke funnet på Google Disk" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Endre navn på tittel fra: '%(src)s' til '%(dest)s' mislyktes med feil: %(error)s" @@ -936,6 +941,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth-feil, prøv igjen senere." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "GitHub Oauth-feil: {}" @@ -944,10 +950,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth-feil, prøv igjen senere." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google Oauth-feil: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Stjerner" @@ -1302,7 +1310,7 @@ msgstr "Uventede data under lesing av oppdateringsinformasjon" msgid "No update available. You already have the latest version installed" msgstr "Ingen oppdatering tilgjengelig. Du har allerede den nyeste versjonen installert" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "En ny oppdatering er tilgjengelig. Klikk på knappen nedenfor for å oppdatere til siste versjon." @@ -1310,7 +1318,7 @@ msgstr "En ny oppdatering er tilgjengelig. Klikk på knappen nedenfor for å opp msgid "Could not fetch update information" msgstr "Kunne ikke hente oppdateringsinformasjon" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Klikk på knappen nedenfor for å oppdatere til siste stabile versjon." @@ -1532,7 +1540,7 @@ msgstr "Ebook-konvertering mislyktes med ukjent feil" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-konvertering mislyktes: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Konvertert fil ikke funnet eller mer enn én fil i mappen %(folder)s" @@ -1574,6 +1582,7 @@ msgid "Cover Thumbnails" msgstr "Forsideminiatyrbilder" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Genererte {0} serieminiatyrbilder" diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index 50af4abcd..ab1f7f49f 100644 --- a/cps/translations/pl/LC_MESSAGES/messages.po +++ b/cps/translations/pl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre Web - polski (POT: 2021-06-12 08:52)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2021-06-12 15:35+0200\n" "Last-Translator: Radosław Kierznowski \n" "Language: pl\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -65,7 +65,7 @@ msgstr "Konfiguracja podstawowa" msgid "UI Configuration" msgstr "Konfiguracja Interfejsu" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -86,6 +86,7 @@ msgid "User not found" msgstr "Nie znaleziono użytkownika" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} użytkowników usuniętych pomyślnie" @@ -221,6 +222,7 @@ msgid "Allow" msgstr "Zezwalaj" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -453,6 +455,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Przynajmniej jeden użytkownik LDAP nie został znaleziony w bazie danych" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Użytkownik pomyślnie zaimportowany" @@ -549,7 +552,7 @@ msgstr "nie zainstalowane" msgid "Execution permissions missing" msgstr "Brak uprawnienia do wykonywania pliku" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -599,6 +602,7 @@ msgid "Metadata successfully updated" msgstr "Metadane zostały pomyślnie zaktualizowane" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -683,12 +687,12 @@ msgstr "Zwrotna domena nie jest zweryfikowana, proszę zweryfikowania domenę w msgid "%(format)s format not found for book id: %(book)d" msgstr "Nie znaleziono formatu %(format)s dla id książki: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Nie znaleziono %(format)s na Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nie znaleziono: %(fn)s" @@ -744,6 +748,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Żądany plik nie mógł zostać odczytany. Może brakuje uprawnień?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -762,7 +767,7 @@ msgstr "Usuwanie książki %(id)s zakończyło się błędem: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Usuwanie książki %(id)s, ścieżka książki jest niepoprawna: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Zmiana nazwy tytułu z: „%(src)s” na „%(dest)s” zakończyła się błędem: %(error)s" @@ -772,7 +777,7 @@ msgstr "Zmiana nazwy tytułu z: „%(src)s” na „%(dest)s” zakończyła si msgid "File %(file)s not found on Google Drive" msgstr "Nie znaleziono pliku %(file)s na Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Zmiana nazwy tytułu z: „%(src)s” na „%(dest)s” zakończyła się błędem: %(error)s" @@ -946,6 +951,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Błąd GitHub Oauth, proszę spróbować później." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Błąd GitHub Oauth: {}" @@ -954,10 +960,12 @@ msgid "Google Oauth error, please retry later." msgstr "Błąd Google Oauth, proszę spróbować później." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Błąd Google Oauth: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Gwiazdek" @@ -1316,7 +1324,7 @@ msgstr "Nieoczekiwane dane podczas odczytywania informacji o aktualizacji" msgid "No update available. You already have the latest version installed" msgstr "Brak dostępnej aktualizacji. Masz już zainstalowaną najnowszą wersję" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Dostępna jest nowa aktualizacja. Kliknij przycisk poniżej, aby zaktualizować do najnowszej wersji." @@ -1324,7 +1332,7 @@ msgstr "Dostępna jest nowa aktualizacja. Kliknij przycisk poniżej, aby zaktual msgid "Could not fetch update information" msgstr "Nie można pobrać informacji o aktualizacji" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Kliknij przycisk poniżej, aby zaktualizować do najnowszej stabilnej wersji." @@ -1544,7 +1552,7 @@ msgstr "Konwertowanie ebooka zakończyło się niepowodzeniem z nieznanego powod msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-converter spowodowało błąd: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Konwertowany plik nie został znaleziony, lub więcej niż jeden plik w folderze %(folder)s" @@ -1587,6 +1595,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/pt/LC_MESSAGES/messages.po b/cps/translations/pt/LC_MESSAGES/messages.po index d9eb56dca..2c0b54cb4 100644 --- a/cps/translations/pt/LC_MESSAGES/messages.po +++ b/cps/translations/pt/LC_MESSAGES/messages.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2023-07-25 11:30+0100\n" "Last-Translator: horus68 \n" "Language: pt\n" @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "Configuração básica" msgid "UI Configuration" msgstr "Configuração de IU" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "Utilizador não encontrado" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} utilizadores eliminados com sucesso" @@ -213,6 +214,7 @@ msgid "Allow" msgstr "Permitir" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} entradas de sincronização eliminadas" @@ -440,6 +442,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "No mínimo um utilizador LDAP não encontrado no base de dados" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} utilizador importado com sucesso" @@ -534,7 +537,7 @@ msgstr "não instalado" msgid "Execution permissions missing" msgstr "Falta de permissões de execução" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -584,6 +587,7 @@ msgid "Metadata successfully updated" msgstr "Metadados atualizados com sucesso" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Erro ao editar o livro: {}" @@ -668,12 +672,12 @@ msgstr "O domínio Callback não foi verificado. Por favor, siga os passos para msgid "%(format)s format not found for book id: %(book)d" msgstr "Formato %(format)s não encontrado para o ID do livro: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s não encontrado no Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s não encontrado: %(fn)s" @@ -726,6 +730,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Não foi possível ler o ficheiro solicitado. Talvez permissões erradas?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Estatuto de Lido não pode ser alterado: {}" @@ -744,7 +749,7 @@ msgstr "Falha ao eliminar livro %(id)s: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Eliminar livro %(id)s apenas da base de dados, caminho do livro inválido: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Renomear autor de: '%(src)s' para '%(dest)s' falhou com o erro: %(error)s" @@ -754,7 +759,7 @@ msgstr "Renomear autor de: '%(src)s' para '%(dest)s' falhou com o erro: %(error) msgid "File %(file)s not found on Google Drive" msgstr "Ficheiro %(file)s não encontrado no Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Renomear título de: '%(src)s' para '%(dest)s' falhou com o erro: %(error)s" @@ -926,6 +931,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Erro no Oauth do GitHub. Por favor, tente novamente mais tarde." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Erro no Oauth do GitHub: {}" @@ -934,10 +940,12 @@ msgid "Google Oauth error, please retry later." msgstr "Erro no Google Oauth, tente novamente mais tarde." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Erro no Oauth do Google: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Estrelas" @@ -1292,7 +1300,7 @@ msgstr "Dados inesperados ao ler informações de atualização" msgid "No update available. You already have the latest version installed" msgstr "Não existem atualizações disponíveis. Você já tem instalada a última versão" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Uma nova atualização está disponível. Clique no botão abaixo para atualizar para a versão mais recente." @@ -1300,7 +1308,7 @@ msgstr "Uma nova atualização está disponível. Clique no botão abaixo para a msgid "Could not fetch update information" msgstr "Não foi possível obter informações sobre atualizações" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Clique no botão abaixo para atualizar para a última versão estável." @@ -1520,7 +1528,7 @@ msgstr "O conversor de ebook falhou com erro desconhecido" msgid "Kepubify-converter failed: %(error)s" msgstr "Conversor Kepubify falhou: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Ficheiro convertido não encontrado ou mais de um ficheiro na pasta %(folder)s" @@ -1563,6 +1571,7 @@ msgid "Cover Thumbnails" msgstr "Miniaturas de capa" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Geradas {0} miniaturas de série" diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po index 135e6fc0b..3df4519e7 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: br\n" @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "Configuração Básica" msgid "UI Configuration" msgstr "Configuração de UI" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "Usuário não encontrado" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} usuário(s) deletedos com sucesso" @@ -213,6 +214,7 @@ msgid "Allow" msgstr "Permitir" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} entradas de sincronização deletadas" @@ -440,6 +442,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "No mínimo um usuário LDAP não encontrado no banco de dados" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Usuário Importado com Sucesso" @@ -534,7 +537,7 @@ msgstr "não instalado" msgid "Execution permissions missing" msgstr "Faltam as permissões de execução" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -584,6 +587,7 @@ msgid "Metadata successfully updated" msgstr "Metadados atualizados com sucesso" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Erro ao editar o livro: {}" @@ -668,12 +672,12 @@ msgstr "O domínio Callback não foi verificado, por favor siga os passos para v msgid "%(format)s format not found for book id: %(book)d" msgstr "Formato %(format)s não encontrado para o id do livro: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s não encontrado no Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s não encontrado: %(fn)s" @@ -726,6 +730,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "O arquivo solicitado não pôde ser lido. Talvez permissões erradas?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Status Lido não pode ser alterado: {}" @@ -744,7 +749,7 @@ msgstr "Falha ao excluir livro %(id)s: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Excluindo livro %(id)s somente do banco de dados, caminho do livro inválido: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Renomear autor de: '%(src)s' para '%(dest)s' falhou com o erro: %(error)s" @@ -754,7 +759,7 @@ msgstr "Renomear autor de: '%(src)s' para '%(dest)s' falhou com o erro: %(error) msgid "File %(file)s not found on Google Drive" msgstr "Arquivo %(file)s não encontrado no Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Renomear título de: '%(src)s' para '%(dest)s' falhou com o erro: %(error)s" @@ -926,6 +931,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Erro no Oauth do GitHub, tente novamente mais tarde." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Erro no Oauth do GitHub: {}" @@ -934,10 +940,12 @@ msgid "Google Oauth error, please retry later." msgstr "Erro no Google Oauth, tente novamente mais tarde." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Erro no Oauth do Google: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Estrelas" @@ -1292,7 +1300,7 @@ msgstr "Dados inesperados ao ler informações de atualização" msgid "No update available. You already have the latest version installed" msgstr "Não há atualização disponível. Você já tem a última versão instalada" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Uma nova atualização está disponível. Clique no botão abaixo para atualizar para a versão mais recente." @@ -1300,7 +1308,7 @@ msgstr "Uma nova atualização está disponível. Clique no botão abaixo para a msgid "Could not fetch update information" msgstr "Não foi possível buscar as informações de atualização" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Clique no botão abaixo para atualizar para a última versão estável." @@ -1520,7 +1528,7 @@ msgstr "O conversor de Ebook falhou com erro desconhecido" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-converter falhou: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Arquivo convertido não encontrado ou mais de um arquivo na pasta %(folder)s" @@ -1563,6 +1571,7 @@ msgid "Cover Thumbnails" msgstr "Miniatura da Capa" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Gerado {0} miniaturas de série" diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index f5061e7eb..c816b04a5 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2020-04-29 01:20+0400\n" "Last-Translator: ZIZA\n" "Language: ru\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -64,7 +64,7 @@ msgstr "Настройки сервера" msgid "UI Configuration" msgstr "Настройка интерфейса" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -85,6 +85,7 @@ msgid "User not found" msgstr "" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "" @@ -222,6 +223,7 @@ msgid "Allow" msgstr "Разрешить" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -452,6 +454,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "По крайней мере, один пользователь LDAP не найден в базе данных" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -549,7 +552,7 @@ msgstr "не установлено" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -599,6 +602,7 @@ msgid "Metadata successfully updated" msgstr "Метаданные обновлены" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -683,12 +687,12 @@ msgstr "Не удалось проверить домен обратного в msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s форма не найден для книги с id: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s не найден на Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s не найден: %(fn)s" @@ -742,6 +746,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Запрашиваемый файл не может быть прочитан. Возможно у вас нет разрешения?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -760,7 +765,7 @@ msgstr "" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Переименовывание заголовка с: '%(src)s' на '%(dest)s' не удалось из-за ошибки: %(error)s" @@ -770,7 +775,7 @@ msgstr "Переименовывание заголовка с: '%(src)s' на ' msgid "File %(file)s not found on Google Drive" msgstr "Файл %(file)s не найден на Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Переименовывание заголовка с: '%(src)s' на '%(dest)s' не удалось из-за ошибки: %(error)s" @@ -939,6 +944,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Ошибка GitHub Oauth, пожалуйста попробуйте позже." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -947,10 +953,12 @@ msgid "Google Oauth error, please retry later." msgstr "Ошибка Google Oauth, пожалуйста попробуйте позже." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "" @@ -1308,7 +1316,7 @@ msgstr "Некорректные данные при чтении информа msgid "No update available. You already have the latest version installed" msgstr "Нет доступных обновлений. Вы используете последнюю версию" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Новое обновление доступно. Нажмите на кнопку ниже, чтобы обновить до последней версии." @@ -1316,7 +1324,7 @@ msgstr "Новое обновление доступно. Нажмите на к msgid "Could not fetch update information" msgstr "Не удалось получить информацию об обновлении" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Нажмите на кнопку ниже для обновления до последней стабильной версии." @@ -1537,7 +1545,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" @@ -1580,6 +1588,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/sk/LC_MESSAGES/messages.po b/cps/translations/sk/LC_MESSAGES/messages.po index f989879d4..423d0985b 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2023-11-01 06:12+0100\n" "Last-Translator: Branislav Hanáček \n" "Language: sk_SK\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "Základná konfigurácia" msgid "UI Configuration" msgstr "Konfigurácia používateľského rozhrania" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "Používateľ sa nenašiel" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "Zmazaných {} používateľov" @@ -213,6 +214,7 @@ msgid "Allow" msgstr "Povoliť" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "Zmazalo sa {} synchronizačných položiek" @@ -439,6 +441,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Minimálne jeden LDAP používateľ sa nenachádza v databáze" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "Používateľ bol naimportovaný" @@ -533,7 +536,7 @@ msgstr "nie je naištalované" msgid "Execution permissions missing" msgstr "Chýba právo na vykonanie" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -583,6 +586,7 @@ msgid "Metadata successfully updated" msgstr "Metadáta boli úspešne aktualizované" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Chyba pri úprave knihy: {}" @@ -667,12 +671,12 @@ msgstr "Doména spätného volania nie je verifikovaná, prosím, vykonajte krok msgid "%(format)s format not found for book id: %(book)d" msgstr "Formát %(format)s sa nenašiel pre knihu s ID: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s sa nenašiel na Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s sa nenašiel: %(fn)s" @@ -722,6 +726,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Požadovaný súbor sa nedá čítať. Možne zlé oprávnenia?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Status čítania nie je možné nastaviť: {}" @@ -740,7 +745,7 @@ msgstr "Mazanie knihy %(id)s zlyhalo: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Mazanie knihy %(id)s iba z databázy, cesta ku knihe v databáze nie je platná: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Premenovanie autora z: '%(src)s' na '%(dest)s' zlyhalo s chybou: %(error)s" @@ -750,7 +755,7 @@ msgstr "Premenovanie autora z: '%(src)s' na '%(dest)s' zlyhalo s chybou: %(error msgid "File %(file)s not found on Google Drive" msgstr "Súbor %(file)s sa nenašiel na Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Zmena názvu knihy z: '%(src)s' na '%(dest)s' zlyhalo s chybou: %(error)s" @@ -919,6 +924,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Chyba GitHub OAuth, skúste to prosím neskôr." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Chyba GitHub OAuth: {}" @@ -927,10 +933,12 @@ msgid "Google Oauth error, please retry later." msgstr "Chyba Google OAuth, skúste to prosím neskôr." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Chyba Google OAuth: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} Hviezdičiek" @@ -1276,7 +1284,7 @@ msgstr "Čítanie aktualizačnej informácie narazilo na neočakávané údaje" msgid "No update available. You already have the latest version installed" msgstr "Nie je dostupná žiadna aktualizácia. Máte nainštalovanú najnovšiu verziu" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Je dostupná nová aktualizácia. Ak chcete aktualizovať na najnovšiu verziu, kliknite na tlačidlo dolu." @@ -1284,7 +1292,7 @@ msgstr "Je dostupná nová aktualizácia. Ak chcete aktualizovať na najnovšiu msgid "Could not fetch update information" msgstr "Nebolo možné stiahnuť aktualizačnú informáciu" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Ak chcete aktualizovať na najnovšiu stabilnú verziu, kliknite na tlačidlo dolu." @@ -1496,7 +1504,7 @@ msgstr "Prevádzač e-kníh zlyhal s neznámou chybou" msgid "Kepubify-converter failed: %(error)s" msgstr "Prevádzač Kepubify zlyhal: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Prevádzaný súbor sa nenašiel alebo viac ako jeden súbor v zložke %(folder)s" @@ -1538,6 +1546,7 @@ msgid "Cover Thumbnails" msgstr "Náhľad obálky knihy" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Bolo vygenerovaných {0} náhľadov pre série" diff --git a/cps/translations/sl/LC_MESSAGES/messages.po b/cps/translations/sl/LC_MESSAGES/messages.po index 11fe175c1..416cdda9c 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2024-09-18 19:45+0200\n" "Last-Translator: Andrej Kralj\n" "Language: sl\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "Osnovne nastavitve" msgid "UI Configuration" msgstr "Nastavitve uporabniškega vmesnika" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "Ne najdem uporabnika" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} uporabnikov uspešno izbrisanih" @@ -213,6 +214,7 @@ msgid "Allow" msgstr "Omogoči" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} izbrisanih vnosov za sinhronizacijo" @@ -439,6 +441,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "V podatkovni zbirki ni najden vsaj en uporabnik LDAP" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} Uporabnik je bil uspešno uvožen" @@ -533,7 +536,7 @@ msgstr "ni nameščen" msgid "Execution permissions missing" msgstr "Manjkajo dovoljenja za izvajanje" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -583,6 +586,7 @@ msgid "Metadata successfully updated" msgstr "Metapodatki so bili uspešno posodobljeni" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "Napaka pri urejanju knjige: {}" @@ -666,12 +670,12 @@ msgstr "Povratna domena ni preverjena, sledite korakom za preverjanje domene v k msgid "%(format)s format not found for book id: %(book)d" msgstr "Vrsta %(format)s ni najdena za id knjige: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s ni bil najden v storitvi Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s ni najden: %(fn)s" @@ -721,6 +725,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Zahtevane datoteke ni bilo mogoče prebrati. Morda napačna dovoljenja?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "Stanja branja ni bilo mogoče nastaviti: {}" @@ -739,7 +744,7 @@ msgstr "Brisanje knjige %(id)s ni bilo uspešno: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Brisanje knjige %(id)s samo iz zbirke podatkov, pot do knjige v zbirki podatkov ni veljavna: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Preimenovanje avtorja iz: '%(src)s' v '%(dest)s' ni bilo uspešno z napako: %(error)s" @@ -749,7 +754,7 @@ msgstr "Preimenovanje avtorja iz: '%(src)s' v '%(dest)s' ni bilo uspešno z napa msgid "File %(file)s not found on Google Drive" msgstr "Datoteke %(file)s ni mogoče najti v storitvi Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Preimenovanje naslova iz: '%(src)s' v '%(dest)s' ni bilo uspešno z napako: %(error)s" @@ -916,6 +921,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Napaka GitHub Oauth, prosimo, poskusite pozneje." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Napaka GitHub Oauth: {}" @@ -924,10 +930,12 @@ msgid "Google Oauth error, please retry later." msgstr "Napaka Google Oauth, poskusite pozneje." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Napaka Google Oauth: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} zvezdic" @@ -1273,7 +1281,7 @@ msgstr "Nepričakovani podatki med branjem informacij o posodobitvi" msgid "No update available. You already have the latest version installed" msgstr "Posodobitev ni na voljo. Najnovejšo različico že imate nameščeno" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Na voljo je nova posodobitev. Klikni spodnji gumb za posodobitev na najnovejšo različico." @@ -1281,7 +1289,7 @@ msgstr "Na voljo je nova posodobitev. Klikni spodnji gumb za posodobitev na najn msgid "Could not fetch update information" msgstr "Ni bilo mogoče pridobiti informacij o posodobitvi" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Klikni spodnji gumb za posodobitev na najnovejšo stabilno različico." @@ -1492,7 +1500,7 @@ msgstr "Pretvornik e-knjig ni uspel z neznano napako" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-converter ni uspel: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Pretvorjena datoteka ni bila najdena ali je v mapi %(folder)s več kot ena datoteka" @@ -1534,6 +1542,7 @@ msgid "Cover Thumbnails" msgstr "Sličicah naslovnice" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "Ustvarjene sličice serije {0}" diff --git a/cps/translations/sv/LC_MESSAGES/messages.po b/cps/translations/sv/LC_MESSAGES/messages.po index 6599854c9..1e5553cb8 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2021-05-13 11:00+0000\n" "Last-Translator: Jonatan Nyberg \n" "Language: sv\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "Grundläggande konfiguration" msgid "UI Configuration" msgstr "Användargränssnitt konfiguration" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "Användaren hittades inte" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} användare har tagits bort" @@ -219,6 +220,7 @@ msgid "Allow" msgstr "Tillåt" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -449,6 +451,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "Minst en LDAP-användare hittades inte i databasen" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} användare har importerats" @@ -545,7 +548,7 @@ msgstr "inte installerad" msgid "Execution permissions missing" msgstr "Körningstillstånd saknas" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -595,6 +598,7 @@ msgid "Metadata successfully updated" msgstr "Metadata uppdaterades" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -679,12 +683,12 @@ msgstr "Återuppringningsdomänen är inte verifierad, följ stegen för att ver msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formatet hittades inte för bok-id: %(book)d" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s hittades inte på Google Drive: %(fn)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s hittades inte: %(fn)s" @@ -738,6 +742,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Den begärda filen kunde inte läsas. Kanske fel behörigheter?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -756,7 +761,7 @@ msgstr "Borttagning av boken %(id)s misslyckades: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Borttagning av boken %(id)s, boksökväg inte giltig: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Byt namn på titel från: \"%(src)s\" till \"%(dest)s\" misslyckades med fel: %(error)s" @@ -766,7 +771,7 @@ msgstr "Byt namn på titel från: \"%(src)s\" till \"%(dest)s\" misslyckades med msgid "File %(file)s not found on Google Drive" msgstr "Filen %(file)s hittades inte på Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Byt namn på titel från: \"%(src)s\" till \"%(dest)s\" misslyckades med fel: %(error)s" @@ -939,6 +944,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth-fel, försök igen senare." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "GitHub Oauth-fel: {}" @@ -947,10 +953,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth-fel, försök igen senare." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google Oauth-fel: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} stjärnor" @@ -1308,7 +1316,7 @@ msgstr "Oväntade data vid läsning av uppdateringsinformation" msgid "No update available. You already have the latest version installed" msgstr "Ingen uppdatering tillgänglig. Du har redan den senaste versionen installerad" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "En ny uppdatering är tillgänglig. Klicka på knappen nedan för att uppdatera till den senaste versionen." @@ -1316,7 +1324,7 @@ msgstr "En ny uppdatering är tillgänglig. Klicka på knappen nedan för att up msgid "Could not fetch update information" msgstr "Kunde inte hämta uppdateringsinformation" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Klicka på knappen nedan för att uppdatera till den senaste stabila versionen." @@ -1536,7 +1544,7 @@ msgstr "E-bokkonverteraren misslyckades med okänt fel" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify-konverteraren misslyckades: %(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "Konverterad fil hittades inte eller mer än en fil i mappen %(folder)s" @@ -1579,6 +1587,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/tr/LC_MESSAGES/messages.po b/cps/translations/tr/LC_MESSAGES/messages.po index e32f8d11b..649d997fd 100644 --- a/cps/translations/tr/LC_MESSAGES/messages.po +++ b/cps/translations/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2020-04-23 22:47+0300\n" "Last-Translator: iz \n" "Language: tr\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "Temel Ayarlar" msgid "UI Configuration" msgstr "Arayüz Ayarları" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "" @@ -216,6 +217,7 @@ msgid "Allow" msgstr "" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -445,6 +447,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -542,7 +545,7 @@ msgstr "yüklü değil" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -592,6 +595,7 @@ msgid "Metadata successfully updated" msgstr "Metaveri başarıyla güncellendi" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -676,12 +680,12 @@ msgstr "Geri yönlendirme alanı (callback domain) doğrulanamadı, lütfen Goog msgid "%(format)s format not found for book id: %(book)d" msgstr "%(book)d nolu kitap için %(format)s biçimi bulunamadı" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(fn)s eKitabı için %(format)s biçimi Google Drive'da bulunamadı" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s bulunamadı: %(fn)s" @@ -735,6 +739,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "İstenilen dosya okunamadı. Yanlış izinlerden kaynaklanabilir?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -753,7 +758,7 @@ msgstr "" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kitap adını değiştirme sırasında hata oluştu ('%(src)s' → '%(dest)s'): %(error)s" @@ -763,7 +768,7 @@ msgstr "Kitap adını değiştirme sırasında hata oluştu ('%(src)s' → '%(de msgid "File %(file)s not found on Google Drive" msgstr "%(file)s dosyası Google Drive'da bulunamadı" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kitap adını değiştirme sırasında hata oluştu ('%(src)s' → '%(dest)s'): %(error)s" @@ -931,6 +936,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth hatası, lütfen tekrar deneyin." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -939,10 +945,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth hatası, lütfen tekrar deneyin." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "" @@ -1300,7 +1308,7 @@ msgstr "Güncelleme bilgileri okunurken beklenmeyen veri" msgid "No update available. You already have the latest version installed" msgstr "Yeni güncelleme mevcut değil. Zaten en son sürüme sahipsiniz." -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "Yeni bir güncelleme mevcut. Son sürüme güncellemek için aşağıdaki düğmeye tıklayın." @@ -1308,7 +1316,7 @@ msgstr "Yeni bir güncelleme mevcut. Son sürüme güncellemek için aşağıdak msgid "Could not fetch update information" msgstr "Güncelleme bilgileri alınamadı" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "Son kararlı sürüme güncellemek için aşağıdaki düğmeye tıklayın." @@ -1528,7 +1536,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" @@ -1571,6 +1579,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/uk/LC_MESSAGES/messages.po b/cps/translations/uk/LC_MESSAGES/messages.po index 7de10c3de..e16823868 100644 --- a/cps/translations/uk/LC_MESSAGES/messages.po +++ b/cps/translations/uk/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n" "Last-Translator: ABIS Team \n" "Language: uk\n" @@ -15,7 +15,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -61,7 +61,7 @@ msgstr "Настройки сервера" msgid "UI Configuration" msgstr "Конфігурація інтерфейсу" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -82,6 +82,7 @@ msgid "User not found" msgstr "Користувача не знайдено" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} користувачі видалені успішно" @@ -219,6 +220,7 @@ msgid "Allow" msgstr "Дозволити" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -446,6 +448,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -542,7 +545,7 @@ msgstr "не встановлено" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -592,6 +595,7 @@ msgid "Metadata successfully updated" msgstr "" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -675,12 +679,12 @@ msgstr "Домен зворотнього зв'язку не підтвердж msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" @@ -731,6 +735,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -749,7 +754,7 @@ msgstr "" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" @@ -759,7 +764,7 @@ msgstr "" msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" @@ -927,6 +932,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "" #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "" @@ -935,10 +941,12 @@ msgid "Google Oauth error, please retry later." msgstr "" #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} зірок" @@ -1295,7 +1303,7 @@ msgstr "" msgid "No update available. You already have the latest version installed" msgstr "" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "" @@ -1303,7 +1311,7 @@ msgstr "" msgid "Could not fetch update information" msgstr "" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "" @@ -1518,7 +1526,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" @@ -1561,6 +1569,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/vi/LC_MESSAGES/messages.po b/cps/translations/vi/LC_MESSAGES/messages.po index b12d19819..2105dab54 100644 --- a/cps/translations/vi/LC_MESSAGES/messages.po +++ b/cps/translations/vi/LC_MESSAGES/messages.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2022-09-20 21:36+0700\n" "Last-Translator: Ha Link \n" "Language: vi\n" @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -59,7 +59,7 @@ msgstr "Thiết lập cơ bản" msgid "UI Configuration" msgstr "Thiết lập UI" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -79,6 +79,7 @@ msgid "User not found" msgstr "Không tìm thấy user" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "{} người dung đã đươc xoá thành công" @@ -212,6 +213,7 @@ msgid "Allow" msgstr "Cho phép" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} mục nhập đồng bộ hóa đã bị xóa" @@ -439,6 +441,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "" @@ -533,7 +536,7 @@ msgstr "chưa cài đặt" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -583,6 +586,7 @@ msgid "Metadata successfully updated" msgstr "Metadata đã được cập nhật thành công" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -666,12 +670,12 @@ msgstr "" msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s không tìm thấy: %(fn)s" @@ -725,6 +729,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "File được yêu cầu không thể đọc. Có thể do phân quyền bị sai?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -743,7 +748,7 @@ msgstr "Xoá sách %(id)s thất bại: %(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" @@ -753,7 +758,7 @@ msgstr "" msgid "File %(file)s not found on Google Drive" msgstr "File %(file)s không tìm thấy trẻn Google Drive" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" @@ -922,6 +927,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "Oauth Github lỗi, xin thử lại sau." #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "Github Oauth lỗi: {}" @@ -930,10 +936,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth lỗi, làm ơn thử lại sau." #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google Oauth lỗi: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} sao" @@ -1289,7 +1297,7 @@ msgstr "" msgid "No update available. You already have the latest version installed" msgstr "" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "" @@ -1297,7 +1305,7 @@ msgstr "" msgid "Could not fetch update information" msgstr "" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "" @@ -1514,7 +1522,7 @@ msgstr "" msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" @@ -1559,6 +1567,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index f83637a25..5419d2713 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2024-11-21 22:04+0800\n" "Last-Translator: qx100\n" "Language: zh_CN\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -60,7 +60,7 @@ msgstr "基本配置" msgid "UI Configuration" msgstr "界面配置" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -80,6 +80,7 @@ msgid "User not found" msgstr "找不到用户" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "成功删除 {} 个用户" @@ -213,6 +214,7 @@ msgid "Allow" msgstr "允许" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "{} 同步项目被删除" @@ -439,6 +441,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "数据库中没有找到任何 LDAP 用户" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} 用户被成功导入" @@ -533,7 +536,7 @@ msgstr "未安装" msgid "Execution permissions missing" msgstr "缺少执行权限" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -583,6 +586,7 @@ msgid "Metadata successfully updated" msgstr "已成功更新元数据" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "编辑书籍时出错: {}" @@ -666,12 +670,12 @@ msgstr "回调域名尚未被校验,请在 Google 开发者控制台按步骤 msgid "%(format)s format not found for book id: %(book)d" msgstr "找不到 ID 为 %(book)d 的书籍的 %(format)s 格式" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Google Drive %(fn)s 上找不到 %(format)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "找不到 %(format)s:%(fn)s" @@ -721,6 +725,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "无法读取请求的文件。可能有错误的权限设置?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "阅读状态无法设置: {}" @@ -739,7 +744,7 @@ msgstr "删除书籍 %(id)s 失败:%(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "仅从数据库中删除书籍 %(id)s,数据库中的书籍路径无效: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "将作者从“%(src)s”改为“%(dest)s”时失败,出错信息:%(error)s" @@ -749,7 +754,7 @@ msgstr "将作者从“%(src)s”改为“%(dest)s”时失败,出错信息: msgid "File %(file)s not found on Google Drive" msgstr "Google Drive 上找不到文件 %(file)s" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "将标题从“%(src)s”改为“%(dest)s”时失败,出错信息:%(error)s" @@ -916,6 +921,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth 错误,请重试。" #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "GitHub Oauth 错误: {}" @@ -924,10 +930,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth 错误,请重试。" #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google Oauth 错误: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} 星" @@ -1273,7 +1281,7 @@ msgstr "读取更新信息时出现异常数据" msgid "No update available. You already have the latest version installed" msgstr "无可用更新。您已经安装了最新版本" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "有新的更新。单击下面的按钮以更新到最新版本。" @@ -1281,7 +1289,7 @@ msgstr "有新的更新。单击下面的按钮以更新到最新版本。" msgid "Could not fetch update information" msgstr "无法获取更新信息" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "点击下面按钮更新到最新稳定版本。" @@ -1492,7 +1500,7 @@ msgstr "发生未知错误,书籍转换失败" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify 转换失败:%(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "找不到转换后的文件或文件夹 %(folder)s 中有多个文件" @@ -1534,6 +1542,7 @@ msgid "Cover Thumbnails" msgstr "封面缩略图" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "生成了 {0} 个丛书缩略图" diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po index 2511717db..77cd0f347 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: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-04-28 12:21-0400\n" "PO-Revision-Date: 2020-09-27 22:18+0800\n" "Last-Translator: xlivevil \n" "Language: zh_TW\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" #: cps/about.py:85 msgid "Statistics" @@ -63,7 +63,7 @@ msgstr "基本配置" msgid "UI Configuration" msgstr "界面配置" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -83,6 +83,7 @@ msgid "User not found" msgstr "找不到用戶" #: cps/admin.py:415 +#, python-brace-format msgid "{} users deleted successfully" msgstr "成功刪除 {} 個用戶" @@ -216,6 +217,7 @@ msgid "Allow" msgstr "允許" #: cps/admin.py:946 +#, python-brace-format msgid "{} sync entries deleted" msgstr "" @@ -444,6 +446,7 @@ msgid "At Least One LDAP User Not Found in Database" msgstr "數據庫中沒有找到至少一個LDAP用戶" #: cps/admin.py:1676 +#, python-brace-format msgid "{} User Successfully Imported" msgstr "{} 用戶被成功導入" @@ -539,7 +542,7 @@ msgstr "未安裝" msgid "Execution permissions missing" msgstr "缺少執行權限" -#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: cps/db.py:1042 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 @@ -589,6 +592,7 @@ msgid "Metadata successfully updated" msgstr "已成功更新元數據" #: cps/editbooks.py:566 +#, python-brace-format msgid "Error editing book: {}" msgstr "" @@ -673,12 +677,12 @@ msgstr "回調網域名稱尚未被驗證,請在google開發者控制台按步 msgid "%(format)s format not found for book id: %(book)d" msgstr "找不到id為 %(book)d 的書籍的 %(format)s 格式" -#: cps/helper.py:94 cps/tasks/convert.py:93 +#: cps/helper.py:93 cps/tasks/convert.py:91 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Google Drive %(fn)s 上找不到 %(format)s" -#: cps/helper.py:99 +#: cps/helper.py:98 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "找不到 %(format)s:%(fn)s" @@ -732,6 +736,7 @@ msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "無法讀取請求的文件。可能有錯誤的權限設置?" #: cps/helper.py:352 +#, python-brace-format msgid "Read status could not set: {}" msgstr "" @@ -750,7 +755,7 @@ msgstr "刪除書籍 %(id)s失敗:%(message)s" msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "僅從數據庫中刪除書籍 %(id)s,數據庫中的書籍路徑無效: %(path)s" -#: cps/helper.py:439 +#: cps/helper.py:438 #, fuzzy, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "將標題從“%(src)s”改為“%(dest)s”時失敗,錯誤錯信息:%(error)s" @@ -760,7 +765,7 @@ msgstr "將標題從“%(src)s”改為“%(dest)s”時失敗,錯誤錯信息 msgid "File %(file)s not found on Google Drive" msgstr "Google Drive上找不到文件 %(file)s" -#: cps/helper.py:559 +#: cps/helper.py:558 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "將標題從“%(src)s”改為“%(dest)s”時失敗,錯誤錯信息:%(error)s" @@ -933,6 +938,7 @@ msgid "GitHub Oauth error, please retry later." msgstr "GitHub Oauth 錯誤,請重試。" #: cps/oauth_bb.py:338 +#, python-brace-format msgid "GitHub Oauth error: {}" msgstr "GitHub Oauth 錯誤: {}" @@ -941,10 +947,12 @@ msgid "Google Oauth error, please retry later." msgstr "Google Oauth 錯誤,請重試。" #: cps/oauth_bb.py:362 +#, python-brace-format msgid "Google Oauth error: {}" msgstr "Google Oauth 錯誤: {}" #: cps/opds.py:299 +#, python-brace-format msgid "{} Stars" msgstr "{} 星" @@ -1300,7 +1308,7 @@ msgstr "讀取更新信息時出現未預期數據" msgid "No update available. You already have the latest version installed" msgstr "無可用更新。您已經安裝了最新版本" -#: cps/updater.py:458 +#: cps/updater.py:459 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "有新的更新。單擊下面的按鈕以更新到最新版本。" @@ -1308,7 +1316,7 @@ msgstr "有新的更新。單擊下面的按鈕以更新到最新版本。" msgid "Could not fetch update information" msgstr "無法獲取更新信息" -#: cps/updater.py:486 +#: cps/updater.py:487 msgid "Click on the button below to update to the latest stable version." msgstr "點擊下面按鈕更新到最新穩定版本。" @@ -1528,7 +1536,7 @@ msgstr "發生未知錯誤,書籍轉換失敗" msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify 轉換失敗:%(error)s" -#: cps/tasks/convert.py:255 +#: cps/tasks/convert.py:254 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "找不到轉換後的文件或文件夾%(folder)s中有多個文件" @@ -1571,6 +1579,7 @@ msgid "Cover Thumbnails" msgstr "" #: cps/tasks/thumbnail.py:294 +#, python-brace-format msgid "Generated {0} series thumbnails" msgstr "" From cc0fbd7ce858c4356221d1ff98c97acbb4fe937a Mon Sep 17 00:00:00 2001 From: Asher Max Schweigart Date: Tue, 29 Apr 2025 14:12:18 -0400 Subject: [PATCH 14/21] Adding Smashwords identifier --- cps/db.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cps/db.py b/cps/db.py index 9cdffdfbd..0cd891a2b 100644 --- a/cps/db.py +++ b/cps/db.py @@ -155,6 +155,8 @@ class Identifiers(Base): return "StoryGraph" elif format_type == "ebooks": return "eBooks.com" + elif format_type == "smashwords": + return "Smashwords" if format_type == "lubimyczytac": return "Lubimyczytac" if format_type == "databazeknih": @@ -202,6 +204,8 @@ class Identifiers(Base): return "https://app.thestorygraph.com/books/{0}".format(self.val) elif format_type == "ebooks": return "https://www.ebooks.com/en-us/book/{0}".format(self.val) + elif format_type == "smashwords": + return "https://www.smashwords.com/books/view/{0}".format(self.val) elif self.val.lower().startswith("javascript:"): return quote(self.val) elif self.val.lower().startswith("data:"): From 8c0891a078f91cdc2c7cfa8fd97742243a466f8b Mon Sep 17 00:00:00 2001 From: Asher Max Schweigart Date: Tue, 29 Apr 2025 14:33:11 -0400 Subject: [PATCH 15/21] Updating translation files --- cps/translations/cs/LC_MESSAGES/messages.po | 6 +++--- cps/translations/de/LC_MESSAGES/messages.po | 6 +++--- cps/translations/el/LC_MESSAGES/messages.po | 6 +++--- cps/translations/es/LC_MESSAGES/messages.po | 6 +++--- cps/translations/fi/LC_MESSAGES/messages.po | 6 +++--- cps/translations/fr/LC_MESSAGES/messages.po | 6 +++--- cps/translations/gl/LC_MESSAGES/messages.po | 6 +++--- cps/translations/hu/LC_MESSAGES/messages.po | 6 +++--- cps/translations/id/LC_MESSAGES/messages.po | 6 +++--- cps/translations/it/LC_MESSAGES/messages.po | 6 +++--- cps/translations/ja/LC_MESSAGES/messages.po | 6 +++--- cps/translations/km/LC_MESSAGES/messages.po | 6 +++--- cps/translations/ko/LC_MESSAGES/messages.po | 6 +++--- cps/translations/nl/LC_MESSAGES/messages.po | 6 +++--- cps/translations/no/LC_MESSAGES/messages.po | 6 +++--- cps/translations/pl/LC_MESSAGES/messages.po | 6 +++--- cps/translations/pt/LC_MESSAGES/messages.po | 6 +++--- cps/translations/pt_BR/LC_MESSAGES/messages.po | 6 +++--- cps/translations/ru/LC_MESSAGES/messages.po | 6 +++--- cps/translations/sk/LC_MESSAGES/messages.po | 6 +++--- cps/translations/sl/LC_MESSAGES/messages.po | 6 +++--- cps/translations/sv/LC_MESSAGES/messages.po | 6 +++--- cps/translations/tr/LC_MESSAGES/messages.po | 6 +++--- cps/translations/uk/LC_MESSAGES/messages.po | 6 +++--- cps/translations/vi/LC_MESSAGES/messages.po | 6 +++--- cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po | 6 +++--- cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po | 6 +++--- messages.pot | 6 +++--- 28 files changed, 84 insertions(+), 84 deletions(-) diff --git a/cps/translations/cs/LC_MESSAGES/messages.po b/cps/translations/cs/LC_MESSAGES/messages.po index 794d1ed04..a9f91bfbf 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2020-06-09 21:11+0100\n" "Last-Translator: Lukas Heroudek \n" "Language: cs_CZ\n" @@ -62,7 +62,7 @@ msgstr "Základní konfigurace" msgid "UI Configuration" msgstr "Konfigurace uživatelského rozhraní" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -550,7 +550,7 @@ msgstr "není nainstalováno" msgid "Execution permissions missing" msgstr "Chybí povolení k exekuci" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index ba4481d94..90a1a5dea 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2024-11-16 20:41+0100\n" "Last-Translator: Ozzie Isaacs\n" "Language: de\n" @@ -60,7 +60,7 @@ msgstr "Basiskonfiguration" msgid "UI Configuration" msgstr "Benutzeroberflächenkonfiguration" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -536,7 +536,7 @@ msgstr "Nicht installiert" msgid "Execution permissions missing" msgstr "Ausführberechtigung fehlt" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/el/LC_MESSAGES/messages.po b/cps/translations/el/LC_MESSAGES/messages.po index cb7319079..78f23907f 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Depountis Georgios\n" "Language: el\n" @@ -62,7 +62,7 @@ msgstr "Βασική Διαμόρφωση" msgid "UI Configuration" msgstr "UI Διαμόρφωση" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -550,7 +550,7 @@ msgstr "δεν εγκαταστάθηκε" msgid "Execution permissions missing" msgstr "Λείπουν άδειες εκτέλεσης" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po index 704b58cae..ca51f4061 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2024-10-29 15:26+0100\n" "Last-Translator: adruki \n" "Language: es\n" @@ -63,7 +63,7 @@ msgstr "Configuración básica" msgid "UI Configuration" msgstr "Configuración de la interfaz de usuario" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -539,7 +539,7 @@ msgstr "no instalado" msgid "Execution permissions missing" msgstr "Faltan permisos de ejecución" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/fi/LC_MESSAGES/messages.po b/cps/translations/fi/LC_MESSAGES/messages.po index b0e57d958..3b16b2ef7 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2020-01-12 13:56+0100\n" "Last-Translator: Samuli Valavuo \n" "Language: fi\n" @@ -63,7 +63,7 @@ msgstr "Perusasetukset" msgid "UI Configuration" msgstr "Käyttöliittymän asetukset" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -548,7 +548,7 @@ msgstr "ei asennettu" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index c70980764..6a19bf6b2 100644 --- a/cps/translations/fr/LC_MESSAGES/messages.po +++ b/cps/translations/fr/LC_MESSAGES/messages.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2020-06-07 06:47+0200\n" "Last-Translator: \n" "Language: fr\n" @@ -78,7 +78,7 @@ msgstr "Configuration principale" msgid "UI Configuration" msgstr "Configuration de l’interface utilisateur" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -566,7 +566,7 @@ msgstr "non installé" msgid "Execution permissions missing" msgstr "Les permissions d'exécutions manquantes" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/gl/LC_MESSAGES/messages.po b/cps/translations/gl/LC_MESSAGES/messages.po index 28a244f1d..d5db38938 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2024-12-08 13:50+0100\n" "Last-Translator: pollitor@gmx.com\n" "Language: gl\n" @@ -58,7 +58,7 @@ msgstr "Configuración Básica" msgid "UI Configuration" msgstr "Configuración da Interface de Usuario" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -534,7 +534,7 @@ msgstr "non instalado" msgid "Execution permissions missing" msgstr "Faltan permisos de execución" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/hu/LC_MESSAGES/messages.po b/cps/translations/hu/LC_MESSAGES/messages.po index eaed30657..9d61143b2 100644 --- a/cps/translations/hu/LC_MESSAGES/messages.po +++ b/cps/translations/hu/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2019-04-06 23:36+0200\n" "Last-Translator: \n" "Language: hu\n" @@ -62,7 +62,7 @@ msgstr "Alapvető beállítások" msgid "UI Configuration" msgstr "Felhasználói felület beállításai" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -547,7 +547,7 @@ msgstr "nincs telepítve" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/id/LC_MESSAGES/messages.po b/cps/translations/id/LC_MESSAGES/messages.po index 2ee857d01..1c72283dd 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2023-01-21 10:00+0700\n" "Last-Translator: Arief Hidayat\n" "Language: id\n" @@ -63,7 +63,7 @@ msgstr "Pengaturan Dasar" msgid "UI Configuration" msgstr "Pengaturan Antarmuka" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -540,7 +540,7 @@ msgstr "belum dipasang" msgid "Execution permissions missing" msgstr "Izin eksekusi hilang" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 2a574a162..1af3520e7 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: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2024-12-15 06:37+0100\n" "Last-Translator: Massimo Pissarello \n" "Language: it\n" @@ -60,7 +60,7 @@ msgstr "Configurazione di base" msgid "UI Configuration" msgstr "Configurazione dell'interfaccia utente" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -536,7 +536,7 @@ msgstr "non installato" msgid "Execution permissions missing" msgstr "Mancano i permessi di esecuzione" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/ja/LC_MESSAGES/messages.po b/cps/translations/ja/LC_MESSAGES/messages.po index d395f5bb9..6f937a5eb 100644 --- a/cps/translations/ja/LC_MESSAGES/messages.po +++ b/cps/translations/ja/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2018-02-07 02:20-0500\n" "Last-Translator: subdiox \n" "Language: ja\n" @@ -63,7 +63,7 @@ msgstr "基本設定" msgid "UI Configuration" msgstr "UI設定" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -540,7 +540,7 @@ msgstr "インストールされていません" msgid "Execution permissions missing" msgstr "実行権限がありません" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/km/LC_MESSAGES/messages.po b/cps/translations/km/LC_MESSAGES/messages.po index db22a72ef..d15c8c50b 100644 --- a/cps/translations/km/LC_MESSAGES/messages.po +++ b/cps/translations/km/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2018-08-27 17:06+0700\n" "Last-Translator: \n" "Language: km_KH\n" @@ -64,7 +64,7 @@ msgstr "ការកំណត់សាមញ្ញ" msgid "UI Configuration" msgstr "ការកំណត់ផ្ទាំងប្រើប្រាស់" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -548,7 +548,7 @@ msgstr "មិនបានតម្លើង" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/ko/LC_MESSAGES/messages.po b/cps/translations/ko/LC_MESSAGES/messages.po index f2d6f8063..ba69cf6d1 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2024-11-01 17:50+0900\n" "Last-Translator: limeade23 \n" "Language: ko\n" @@ -60,7 +60,7 @@ msgstr "기본 설정" msgid "UI Configuration" msgstr "UI 설정" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -536,7 +536,7 @@ msgstr "설치되지 않았습니다." msgid "Execution permissions missing" msgstr "실행 권한이 없습니다." -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index f87c3ef44..c7afe185e 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2023-12-20 22:00+0100\n" "Last-Translator: Michiel Cornelissen \n" "Language: nl\n" @@ -64,7 +64,7 @@ msgstr "Basisconfiguratie" msgid "UI Configuration" msgstr "Uiterlijk aanpassen" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -551,7 +551,7 @@ msgstr "niet geïnstalleerd" msgid "Execution permissions missing" msgstr "Kan programma niet uitvoeren" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/no/LC_MESSAGES/messages.po b/cps/translations/no/LC_MESSAGES/messages.po index 8e6e7fa38..86a35b510 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2023-01-06 11:00+0000\n" "Last-Translator: Vegard Fladby \n" "Language: no\n" @@ -63,7 +63,7 @@ msgstr "Grunnleggende konfigurasjon" msgid "UI Configuration" msgstr "UI-konfigurasjon" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -546,7 +546,7 @@ msgstr "ikke installert" msgid "Execution permissions missing" msgstr "Utførelsestillatelser mangler" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index ab1f7f49f..e7d5bfc9d 100644 --- a/cps/translations/pl/LC_MESSAGES/messages.po +++ b/cps/translations/pl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre Web - polski (POT: 2021-06-12 08:52)\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2021-06-12 15:35+0200\n" "Last-Translator: Radosław Kierznowski \n" "Language: pl\n" @@ -65,7 +65,7 @@ msgstr "Konfiguracja podstawowa" msgid "UI Configuration" msgstr "Konfiguracja Interfejsu" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -552,7 +552,7 @@ msgstr "nie zainstalowane" msgid "Execution permissions missing" msgstr "Brak uprawnienia do wykonywania pliku" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/pt/LC_MESSAGES/messages.po b/cps/translations/pt/LC_MESSAGES/messages.po index 2c0b54cb4..a9b4f95b6 100644 --- a/cps/translations/pt/LC_MESSAGES/messages.po +++ b/cps/translations/pt/LC_MESSAGES/messages.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2023-07-25 11:30+0100\n" "Last-Translator: horus68 \n" "Language: pt\n" @@ -60,7 +60,7 @@ msgstr "Configuração básica" msgid "UI Configuration" msgstr "Configuração de IU" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -537,7 +537,7 @@ msgstr "não instalado" msgid "Execution permissions missing" msgstr "Falta de permissões de execução" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po index 3df4519e7..358cdf308 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: br\n" @@ -60,7 +60,7 @@ msgstr "Configuração Básica" msgid "UI Configuration" msgstr "Configuração de UI" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -537,7 +537,7 @@ msgstr "não instalado" msgid "Execution permissions missing" msgstr "Faltam as permissões de execução" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index c816b04a5..96f9e6ace 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2020-04-29 01:20+0400\n" "Last-Translator: ZIZA\n" "Language: ru\n" @@ -64,7 +64,7 @@ msgstr "Настройки сервера" msgid "UI Configuration" msgstr "Настройка интерфейса" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -552,7 +552,7 @@ msgstr "не установлено" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/sk/LC_MESSAGES/messages.po b/cps/translations/sk/LC_MESSAGES/messages.po index 423d0985b..e2c1c7d61 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2023-11-01 06:12+0100\n" "Last-Translator: Branislav Hanáček \n" "Language: sk_SK\n" @@ -60,7 +60,7 @@ msgstr "Základná konfigurácia" msgid "UI Configuration" msgstr "Konfigurácia používateľského rozhrania" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -536,7 +536,7 @@ msgstr "nie je naištalované" msgid "Execution permissions missing" msgstr "Chýba právo na vykonanie" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/sl/LC_MESSAGES/messages.po b/cps/translations/sl/LC_MESSAGES/messages.po index 416cdda9c..9d86eb85e 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2024-09-18 19:45+0200\n" "Last-Translator: Andrej Kralj\n" "Language: sl\n" @@ -60,7 +60,7 @@ msgstr "Osnovne nastavitve" msgid "UI Configuration" msgstr "Nastavitve uporabniškega vmesnika" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -536,7 +536,7 @@ msgstr "ni nameščen" msgid "Execution permissions missing" msgstr "Manjkajo dovoljenja za izvajanje" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/sv/LC_MESSAGES/messages.po b/cps/translations/sv/LC_MESSAGES/messages.po index 1e5553cb8..d7e57e8dc 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2021-05-13 11:00+0000\n" "Last-Translator: Jonatan Nyberg \n" "Language: sv\n" @@ -63,7 +63,7 @@ msgstr "Grundläggande konfiguration" msgid "UI Configuration" msgstr "Användargränssnitt konfiguration" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -548,7 +548,7 @@ msgstr "inte installerad" msgid "Execution permissions missing" msgstr "Körningstillstånd saknas" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/tr/LC_MESSAGES/messages.po b/cps/translations/tr/LC_MESSAGES/messages.po index 649d997fd..f0598bcc9 100644 --- a/cps/translations/tr/LC_MESSAGES/messages.po +++ b/cps/translations/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2020-04-23 22:47+0300\n" "Last-Translator: iz \n" "Language: tr\n" @@ -63,7 +63,7 @@ msgstr "Temel Ayarlar" msgid "UI Configuration" msgstr "Arayüz Ayarları" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -545,7 +545,7 @@ msgstr "yüklü değil" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/uk/LC_MESSAGES/messages.po b/cps/translations/uk/LC_MESSAGES/messages.po index e16823868..84ed8a58c 100644 --- a/cps/translations/uk/LC_MESSAGES/messages.po +++ b/cps/translations/uk/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n" "Last-Translator: ABIS Team \n" "Language: uk\n" @@ -61,7 +61,7 @@ msgstr "Настройки сервера" msgid "UI Configuration" msgstr "Конфігурація інтерфейсу" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -545,7 +545,7 @@ msgstr "не встановлено" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/vi/LC_MESSAGES/messages.po b/cps/translations/vi/LC_MESSAGES/messages.po index 2105dab54..c303dd6a2 100644 --- a/cps/translations/vi/LC_MESSAGES/messages.po +++ b/cps/translations/vi/LC_MESSAGES/messages.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2022-09-20 21:36+0700\n" "Last-Translator: Ha Link \n" "Language: vi\n" @@ -59,7 +59,7 @@ msgstr "Thiết lập cơ bản" msgid "UI Configuration" msgstr "Thiết lập UI" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -536,7 +536,7 @@ msgstr "chưa cài đặt" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 5419d2713..e36188e25 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2024-11-21 22:04+0800\n" "Last-Translator: qx100\n" "Language: zh_CN\n" @@ -60,7 +60,7 @@ msgstr "基本配置" msgid "UI Configuration" msgstr "界面配置" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -536,7 +536,7 @@ msgstr "未安装" msgid "Execution permissions missing" msgstr "缺少执行权限" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po index 77cd0f347..e122ee966 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: 2020-09-27 22:18+0800\n" "Last-Translator: xlivevil \n" "Language: zh_TW\n" @@ -63,7 +63,7 @@ msgstr "基本配置" msgid "UI Configuration" msgstr "界面配置" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:801 cps/search.py:150 #: cps/web.py:753 #, fuzzy, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" @@ -542,7 +542,7 @@ msgstr "未安裝" msgid "Execution permissions missing" msgstr "缺少執行權限" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 diff --git a/messages.pot b/messages.pot index 1b9c6f7d4..10ef7e395 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: 2025-04-28 12:21-0400\n" +"POT-Creation-Date: 2025-04-29 14:32-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -59,7 +59,7 @@ msgstr "" msgid "UI Configuration" msgstr "" -#: cps/admin.py:315 cps/admin.py:996 cps/db.py:797 cps/search.py:150 +#: cps/admin.py:315 cps/admin.py:996 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" @@ -532,7 +532,7 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:1042 cps/templates/config_edit.html:203 +#: cps/db.py:1046 cps/templates/config_edit.html:203 #: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 From 707c41c48a1cb76eb694af4b75b2e7e6454ab780 Mon Sep 17 00:00:00 2001 From: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com> Date: Sun, 4 May 2025 18:22:46 +0200 Subject: [PATCH 16/21] feat: lazy-load images --- cps/templates/image.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cps/templates/image.html b/cps/templates/image.html index 3234df528..62820b7ff 100644 --- a/cps/templates/image.html +++ b/cps/templates/image.html @@ -6,6 +6,7 @@ srcset="{{ srcset }}" src="{{ url_for('web.get_cover', book_id=book.id, resolution='og', c=book|last_modified) }}" alt="{{ image_alt }}" + loading="lazy" /> {%- endmacro %} @@ -16,5 +17,6 @@ srcset="{{ srcset }}" src="{{ url_for('web.get_series_cover', series_id=series.id, resolution='og', c='day'|cache_timestamp) }}" alt="{{ title }}" + loading="lazy" /> {%- endmacro %} From 6f969ed6a6c2d2dc702020d6ef7d77ae50a43c1e Mon Sep 17 00:00:00 2001 From: Kamil Markowicz Date: Fri, 9 May 2025 22:31:06 -0400 Subject: [PATCH 17/21] fix: fixes 403 when using proxy auth Resolves a 403 response when accessing /ajax/updateThumbnails from a session authenticated by reverse proxy. For some reason, the decorators are swapped on this route specifically, but not the others. This brings the ordering to be consistent with other routes. The login check should happen before the auth check now. --- cps/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/admin.py b/cps/admin.py index 5451080a1..26fbe42b2 100644 --- a/cps/admin.py +++ b/cps/admin.py @@ -189,8 +189,8 @@ def reconnect(): @admi.route("/ajax/updateThumbnails", methods=['POST']) -@admin_required @user_login_required +@admin_required def update_thumbnails(): content = config.get_scheduled_task_settings() if content['schedule_generate_book_covers']: From 0eb8583dcecf05c52389f09c3860029076ab9511 Mon Sep 17 00:00:00 2001 From: Landon Cheek Date: Fri, 23 May 2025 12:37:45 -0600 Subject: [PATCH 18/21] Allow POST requests issued during Overdrive book returns to be proxied Addresses janeczku/calibre-web#3398 --- cps/kobo.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cps/kobo.py b/cps/kobo.py index cfdc60c96..1a8dd9137 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -961,6 +961,7 @@ def HandleBookDeletionRequest(book_uuid): # TODO: Implement the following routes @csrf.exempt @kobo.route("/v1/library/", methods=["DELETE", "GET", "POST"]) +@kobo.route("/v1/library//preview", methods=["POST"]) def HandleUnimplementedRequest(dummy=None): log.debug("Unimplemented Library Request received: %s (request is forwarded to kobo if configured)", request.base_url) From 0b777c47bb2def1d85deb07bcd7bf2e726330fc7 Mon Sep 17 00:00:00 2001 From: Usama Khalil Date: Sat, 7 Jun 2025 14:47:04 +0300 Subject: [PATCH 19/21] Add Arabic translation (messages.po & messages.mo) files. 100% done --- cps/translations/ar/LC_MESSAGES/messages.mo | Bin 0 -> 80412 bytes cps/translations/ar/LC_MESSAGES/messages.po | 3612 +++++++++++++++++++ 2 files changed, 3612 insertions(+) create mode 100644 cps/translations/ar/LC_MESSAGES/messages.mo create mode 100644 cps/translations/ar/LC_MESSAGES/messages.po diff --git a/cps/translations/ar/LC_MESSAGES/messages.mo b/cps/translations/ar/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..e5369c27ceaf3f11712c660526218050fdcac4ab GIT binary patch literal 80412 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 X>NI=v8S3|7%!4;kKDZnO?B)Le<0&%? literal 0 HcmV?d00001 diff --git a/cps/translations/ar/LC_MESSAGES/messages.po b/cps/translations/ar/LC_MESSAGES/messages.po new file mode 100644 index 000000000..26d8b38b5 --- /dev/null +++ b/cps/translations/ar/LC_MESSAGES/messages.po @@ -0,0 +1,3612 @@ +# Arabic translations for Calibre-Web. +# Copyright (C) 2025 Calibre-Web +# This file is distributed under the same license as the Calibre-Web project. +# FIRST AUTHOR , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: Calibre-Web\n" +"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\\nPOT-Creation-Date: 2025-03-30 15:55+0200\n" +"PO-Revision-Date: 2025-06-07 14:44+0300\n" +"Last-Translator: UsamaFoad \n" +"Language-Team: \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.15.0\n" +"X-Generator: Poedit 2.2\n" +"POT-Creation-Date: \n" + +#: cps/about.py:85 +msgid "Statistics" +msgstr "الإحصائيات" + +#: cps/admin.py:151 +msgid "Server restarted, please reload page." +msgstr "تم إعادة تشغيل الخادم، يرجى إعادة تحميل الصفحة." + +#: cps/admin.py:153 +msgid "Performing Server shutdown, please close window." +msgstr "جاري إيقاف تشغيل الخادم، الرجاء إغلاق النافذة." + +#: cps/admin.py:161 +msgid "Success! Database Reconnected" +msgstr "تم بنجاح! تم إعادة ربط قاعدة البيانات" + +#: cps/admin.py:164 +msgid "Unknown command" +msgstr "أمر غير معروف" + +#: cps/admin.py:175 +msgid "Success! Books queued for Metadata Backup, please check Tasks for result" +msgstr "تم بنجاح! الكتب في قائمة انتظار النسخ الاحتياطي للبيانات الوصفية، يُرجى مراجعة \"المهام\" لمعرفة النتيجة" + +#: cps/admin.py:208 cps/editbooks.py:614 cps/editbooks.py:657 +#: cps/editbooks.py:1302 cps/updater.py:615 cps/uploader.py:108 +#: cps/uploader.py:117 +msgid "Unknown" +msgstr "غير معروف" + +#: cps/admin.py:233 +msgid "Admin page" +msgstr "صفحة المسؤول" + +#: cps/admin.py:253 +msgid "Basic Configuration" +msgstr "الاعدادات الأساسية" + +#: cps/admin.py:291 +msgid "UI Configuration" +msgstr "إعدادات واجهة المستخدم" + +#: cps/admin.py:315 cps/admin.py:996 cps/db.py:793 cps/search.py:150 +#: cps/web.py:753 +#, python-format +msgid "Custom Column No.%(column)d does not exist in calibre database" +msgstr "لا يوجد عمود مخصص رقم %(column)d في قاعدة بيانات Calibre" + +#: cps/admin.py:333 cps/templates/admin.html:51 +msgid "Edit Users" +msgstr "تحرير المستخدمين" + +#: cps/admin.py:377 cps/opds.py:540 cps/templates/grid.html:14 +#: cps/templates/list.html:13 +msgid "All" +msgstr "الكل" + +#: cps/admin.py:401 cps/admin.py:1426 +msgid "User not found" +msgstr "لم يتم العثور على المستخدم" + +#: cps/admin.py:415 +msgid "{} users deleted successfully" +msgstr "تم حذف {} مستخدم(ين) بنجاح" + +#: cps/admin.py:438 cps/templates/config_view_edit.html:133 +#: cps/templates/user_edit.html:45 cps/templates/user_table.html:81 +msgid "Show All" +msgstr "إظهار الكل" + +#: cps/admin.py:459 cps/admin.py:465 +msgid "Malformed request" +msgstr "طلب مشوه" + +#: cps/admin.py:477 cps/admin.py:2069 +msgid "Guest Name can't be changed" +msgstr "لا يمكن تغيير اسم الضيف" + +#: cps/admin.py:489 +msgid "Guest can't have this role" +msgstr "لا يمكن للضيف الحصول على هذا الدور" + +#: cps/admin.py:501 cps/admin.py:2023 +msgid "No admin user remaining, can't remove admin role" +msgstr "لم يتبق مستخدم مسؤول، ولا يمكن إزالة دور المسؤول" + +#: cps/admin.py:505 cps/admin.py:519 +msgid "Value has to be true or false" +msgstr "القيمة يجب أن تكون صحيحة أو خاطئة" + +#: cps/admin.py:507 +msgid "Invalid role" +msgstr "دور غير صالح" + +#: cps/admin.py:511 +msgid "Guest can't have this view" +msgstr "لا يمكن للضيف الحصول على هذا العرض" + +#: cps/admin.py:521 +msgid "Invalid view" +msgstr "عرض غير صالح" + +#: cps/admin.py:524 +msgid "Guest's Locale is determined automatically and can't be set" +msgstr "يتم تحديد موقع الضيف تلقائيًا ولا يمكن تعيينه" + +#: cps/admin.py:528 +msgid "No Valid Locale Given" +msgstr "لم يتم تحديد موقع صالح" + +#: cps/admin.py:539 +msgid "No Valid Book Language Given" +msgstr "لم يتم تقديم لغة الكتاب الصالحة" + +#: cps/admin.py:541 cps/editbooks.py:292 +msgid "Parameter not found" +msgstr "لم يتم العثور على المُتغير" + +#: cps/admin.py:578 +msgid "Invalid Read Column" +msgstr "عمود قراءة خاطئ" + +#: cps/admin.py:584 +msgid "Invalid Restricted Column" +msgstr "عمود مقيد خاطئ" + +#: cps/admin.py:604 cps/admin.py:1894 +msgid "Calibre-Web configuration updated" +msgstr "تم تحديث تكوين Calibre-Web" + +#: cps/admin.py:616 +msgid "Do you really want to delete the Kobo Token?" +msgstr "هل تريد حقًا حذف رمز Kobo؟" + +#: cps/admin.py:618 +msgid "Do you really want to delete this domain?" +msgstr "هل تريد حقًا حذف هذا النطاق؟" + +#: cps/admin.py:620 +msgid "Do you really want to delete this user?" +msgstr "هل تريد حقًا حذف هذا المستخدم؟" + +#: cps/admin.py:622 +msgid "Are you sure you want to delete this shelf?" +msgstr "هل أنت متأكد أنك تريد حذف هذا الرف؟" + +#: cps/admin.py:624 +msgid "Are you sure you want to change locales of selected user(s)?" +msgstr "هل أنت متأكد أنك تريد تغيير الإعدادات المحلية للمستخدم (المستخدمين) المحدد(ين)؟" + +#: cps/admin.py:626 +msgid "Are you sure you want to change visible book languages for selected user(s)?" +msgstr "هل أنت متأكد أنك تريد تغيير لغات الكتاب المرئية للمستخدم (للمستخدمين) المحدد(ين)؟" + +#: cps/admin.py:628 +msgid "Are you sure you want to change the selected role for the selected user(s)?" +msgstr "هل أنت متأكد أنك تريد تغيير الدور المحدد للمستخدم (المستخدمين) المحدد(ين)؟" + +#: cps/admin.py:630 +msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" +msgstr "هل أنت متأكد أنك تريد تغيير القيود المحددة للمستخدم(ين) المحدد(ين)؟" + +#: cps/admin.py:632 +msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" +msgstr "هل أنت متأكد أنك تريد تغيير قيود الرؤية المحددة للمستخدم (المستخدمين) المحدد(ين)؟" + +#: cps/admin.py:635 +msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" +msgstr "هل أنت متأكد أنك تريد تغيير سلوك مزامنة الرف للمستخدم (المستخدمين) المحدد(ين)؟" + +#: cps/admin.py:637 +msgid "Are you sure you want to change Calibre library location?" +msgstr "هل أنت متأكد أنك تريد تغيير موقع مكتبة Calibre؟" + +#: cps/admin.py:639 +msgid "Calibre-Web will search for updated Covers and update Cover Thumbnails, this may take a while?" +msgstr "سيقوم Calibre-Web بالبحث عن أغلفة محدثة وتحديث صور الغلاف المصغرة، وقد يستغرق هذا بعض الوقت؟" + +#: cps/admin.py:642 +msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" +msgstr "هل أنت متأكد أنك تريد حذف قاعدة بيانات مزامنة Calibre-Web لفرض المزامنة الكاملة مع قارئ Kobo الخاص بك؟" + +#: cps/admin.py:885 cps/admin.py:891 cps/admin.py:901 cps/admin.py:911 +#: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 +#: cps/templates/user_table.html:58 +msgid "Deny" +msgstr "منع" + +#: cps/admin.py:887 cps/admin.py:893 cps/admin.py:903 cps/admin.py:913 +#: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 +#: cps/templates/user_table.html:61 +msgid "Allow" +msgstr "سماح" + +#: cps/admin.py:946 +msgid "{} sync entries deleted" +msgstr "تم حذف {} إدخالات المزامنة" + +#: cps/admin.py:987 +msgid "Tag not found" +msgstr "لم يتم العثور على العلامة" + +#: cps/admin.py:1005 +msgid "Invalid Action" +msgstr "إجراء غير صالح" + +#: cps/admin.py:1132 +msgid "client_secrets.json Is Not Configured For Web Application" +msgstr "لم يتم تكوين ملف client_secrets.json لتطبيق الويب" + +#: cps/admin.py:1177 +msgid "Logfile Location is not Valid, Please Enter Correct Path" +msgstr "موقع ملف السجل غير صالح، يرجى إدخال المسار الصحيح" + +#: cps/admin.py:1183 +msgid "Access Logfile Location is not Valid, Please Enter Correct Path" +msgstr "موقع ملف سجل الوصول غير صالح، يرجى إدخال المسار الصحيح" + +#: cps/admin.py:1217 +msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" +msgstr "الرجاء إدخال موفر LDAP والمنفذ والاسم المميز ومعرف كائن المستخدم" + +#: cps/admin.py:1223 +msgid "Please Enter a LDAP Service Account and Password" +msgstr "الرجاء إدخال حساب خدمة LDAP وكلمة المرور" + +#: cps/admin.py:1226 +msgid "Please Enter a LDAP Service Account" +msgstr "الرجاء إدخال حساب خدمة LDAP" + +#: cps/admin.py:1231 +#, python-format +msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" +msgstr "يجب أن يحتوي مرشح كائن مجموعة LDAP على معرف تنسيق \"%s\" واحد" + +#: cps/admin.py:1233 +msgid "LDAP Group Object Filter Has Unmatched Parenthesis" +msgstr "مرشح كائن مجموعة LDAP يحتوي على أقواس غير متطابقة" + +#: cps/admin.py:1237 +#, python-format +msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" +msgstr "يجب أن يحتوي مرشح كائن مستخدم LDAP على معرف تنسيق \"%s\" واحد" + +#: cps/admin.py:1239 +msgid "LDAP User Object Filter Has Unmatched Parenthesis" +msgstr "مرشح كائن مستخدم LDAP يحتوي على أقواس غير متطابقة" + +#: cps/admin.py:1246 +#, python-format +msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" +msgstr "يجب أن يحتوي مرشح مستخدم عضو LDAP على معرف تنسيق \"%s\" واحد" + +#: cps/admin.py:1248 +msgid "LDAP Member User Filter Has Unmatched Parenthesis" +msgstr "مرشح مستخدم عضو LDAP لديه أقواس غير متطابقة" + +#: cps/admin.py:1255 +msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" +msgstr "شهادة LDAP CAC أو الشهادة أو موقع المفتاح غير صالح، يرجى إدخال المسار الصحيح" + +#: cps/admin.py:1286 cps/templates/admin.html:53 +msgid "Add New User" +msgstr "إضافة مستخدم جديد" + +#: cps/admin.py:1295 cps/templates/admin.html:100 +msgid "Edit Email Server Settings" +msgstr "تعديل إعدادات خادم البريد الإلكتروني" + +#: cps/admin.py:1314 +msgid "Success! Gmail Account Verified." +msgstr "تم التحقق بنجاح! تم التحقق من حساب Gmail." + +#: cps/admin.py:1334 cps/admin.py:1337 cps/admin.py:1722 cps/admin.py:1878 +#: cps/admin.py:1976 cps/admin.py:2097 cps/editbooks.py:168 +#: cps/editbooks.py:561 cps/editbooks.py:1256 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:1535 +#, python-format +msgid "Oops! Database Error: %(error)s." +msgstr "عفواً! خطأ في قاعدة البيانات: %(error)s." + +#: cps/admin.py:1344 +#, python-format +msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" +msgstr "تم وضع البريد الإلكتروني التجريبي في قائمة الانتظار لإرساله إلى %(email)s، يرجى التحقق من المهام للحصول على النتيجة" + +#: cps/admin.py:1347 +#, python-format +msgid "There was an error sending the Test e-mail: %(res)s" +msgstr "حدث خطأ أثناء إرسال البريد الإلكتروني الاختباري: %(res)s" + +#: cps/admin.py:1349 +msgid "Please configure your e-mail address first..." +msgstr "يرجى تكوين عنوان بريدك الإلكتروني أولاً..." + +#: cps/admin.py:1351 +msgid "Email Server Settings updated" +msgstr "تم تحديث إعدادات خادم البريد الإلكتروني" + +#: cps/admin.py:1374 cps/templates/admin.html:195 +msgid "Edit Scheduled Tasks Settings" +msgstr "تحرير إعدادات المهام المجدولة" + +#: cps/admin.py:1386 +msgid "Invalid start time for task specified" +msgstr "وقت بدء غير صالح للمهمة المحددة" + +#: cps/admin.py:1391 +msgid "Invalid duration for task specified" +msgstr "مدة غير صالحة للمهمة المحددة" + +#: cps/admin.py:1401 +msgid "Scheduled tasks settings updated" +msgstr "تم تحديث إعدادات المهام المجدولة" + +#: cps/admin.py:1411 cps/admin.py:1460 cps/admin.py:2093 cps/web.py:1325 +msgid "Oops! An unknown error occurred. Please try again later." +msgstr "عفواً! حدث خطأ غير معروف. يُرجى المحاولة لاحقًا." + +#: cps/admin.py:1415 +msgid "Settings DB is not Writeable" +msgstr "قاعدة بيانات الإعدادات غير قابلة للكتابة" + +#: cps/admin.py:1445 cps/admin.py:2085 +#, python-format +msgid "Edit User %(nick)s" +msgstr "تعديل المستخدم %(nick)s" + +#: cps/admin.py:1457 +#, python-format +msgid "Success! Password for user %(user)s reset" +msgstr "تم بنجاح! تم إعادة تعيين كلمة المرور للمستخدم %(user)s" + +#: cps/admin.py:1463 +msgid "Oops! Please configure the SMTP mail settings." +msgstr "عفواً! يُرجى ضبط إعدادات بريد SMTP." + +#: cps/admin.py:1474 +msgid "Logfile viewer" +msgstr "عارض ملف السجل" + +#: cps/admin.py:1540 +msgid "Requesting update package" +msgstr "طلب حزمة التحديث" + +#: cps/admin.py:1541 +msgid "Downloading update package" +msgstr "تنزيل حزمة التحديث" + +#: cps/admin.py:1542 +msgid "Unzipping update package" +msgstr "فك ضغط حزمة التحديث" + +#: cps/admin.py:1543 +msgid "Replacing files" +msgstr "استبدال الملفات" + +#: cps/admin.py:1544 +msgid "Database connections are closed" +msgstr "تم إغلاق اتصالات قاعدة البيانات" + +#: cps/admin.py:1545 +msgid "Stopping server" +msgstr "إيقاف الخادم" + +#: cps/admin.py:1546 +msgid "Update finished, please press okay and reload page" +msgstr "إيقاف الخادم تم الانتهاء من التحديث، الرجاء الضغط على موافق وإعادة تحميل الصفحة" + +#: cps/admin.py:1547 cps/admin.py:1548 cps/admin.py:1549 cps/admin.py:1550 +#: cps/admin.py:1551 cps/admin.py:1552 +msgid "Update failed:" +msgstr "فشل التحديث:" + +#: cps/admin.py:1547 cps/updater.py:391 cps/updater.py:626 cps/updater.py:628 +msgid "HTTP Error" +msgstr "خطأ HTTP" + +#: cps/admin.py:1548 cps/updater.py:393 cps/updater.py:630 +msgid "Connection error" +msgstr "خطأ في الاتصال" + +#: cps/admin.py:1549 cps/updater.py:395 cps/updater.py:632 +msgid "Timeout while establishing connection" +msgstr "انتهاء المهلة أثناء إنشاء الاتصال" + +#: cps/admin.py:1550 cps/updater.py:397 cps/updater.py:634 +msgid "General error" +msgstr "خطأ عام" + +#: cps/admin.py:1551 +msgid "Update file could not be saved in temp dir" +msgstr "لم يتم حفظ ملف التحديث في الدليل المؤقت" + +#: cps/admin.py:1552 +msgid "Files could not be replaced during update" +msgstr "لم يكن من الممكن استبدال الملفات أثناء التحديث" + +#: cps/admin.py:1576 +msgid "Failed to extract at least One LDAP User" +msgstr "فشل استخراج مستخدم LDAP واحد على الأقل" + +#: cps/admin.py:1621 +msgid "Failed to Create at Least One LDAP User" +msgstr "فشل إنشاء مستخدم LDAP واحد على الأقل" + +#: cps/admin.py:1634 +#, python-format +msgid "Error: %(ldaperror)s" +msgstr "خطأ: %(ldaperror)s" + +#: cps/admin.py:1638 +msgid "Error: No user returned in response of LDAP server" +msgstr "خطأ: لم يتم إرجاع أي مستخدم استجابةً لخادم LDAP" + +#: cps/admin.py:1674 +msgid "At Least One LDAP User Not Found in Database" +msgstr "لم يتم العثور على مستخدم LDAP واحد على الأقل في قاعدة البيانات" + +#: cps/admin.py:1676 +msgid "{} User Successfully Imported" +msgstr "{} تم استيراد المستخدم بنجاح" + +#: cps/admin.py:1734 +msgid "Books path not valid" +msgstr "مسار الكتب غير صالح" + +#: cps/admin.py:1740 +msgid "DB Location is not Valid, Please Enter Correct Path" +msgstr "موقع قاعدة البيانات غير صالح، يرجى إدخال المسار الصحيح" + +#: cps/admin.py:1768 +msgid "DB is not Writeable" +msgstr "قاعدة البيانات غير قابلة للكتابة" + +#: cps/admin.py:1782 +msgid "Keyfile Location is not Valid, Please Enter Correct Path" +msgstr "موقع الملف الرئيسي غير صالح، يرجى إدخال المسار الصحيح" + +#: cps/admin.py:1786 +msgid "Certfile Location is not Valid, Please Enter Correct Path" +msgstr "موقع ملف الشهادة غير صالح، يرجى إدخال المسار الصحيح" + +#: cps/admin.py:1863 +msgid "Password length has to be between 1 and 40" +msgstr "يجب أن يكون طول كلمة المرور بين 1 و 40" + +#: cps/admin.py:1917 +msgid "Database Settings updated" +msgstr "تم تحديث إعدادات قاعدة البيانات" + +#: cps/admin.py:1925 +msgid "Database Configuration" +msgstr "تكوين قاعدة البيانات" + +#: cps/admin.py:1940 cps/web.py:1299 +msgid "Oops! Please complete all fields." +msgstr "عفواً! الرجاء تعبئة جميع الحقول." + +#: cps/admin.py:1949 +msgid "E-mail is not from valid domain" +msgstr "البريد الإلكتروني ليس من نطاق صالح" + +#: cps/admin.py:1955 +msgid "Add new user" +msgstr "إضافة مستخدم جديد" + +#: cps/admin.py:1966 +#, python-format +msgid "User '%(user)s' created" +msgstr "تم إنشاء المستخدم '%(user)s'" + +#: cps/admin.py:1972 +msgid "Oops! An account already exists for this Email. or name." +msgstr "عفواً! يوجد حساب بالفعل لهذا البريد الإلكتروني أو الاسم." + +#: cps/admin.py:2002 +#, python-format +msgid "User '%(nick)s' deleted" +msgstr "تم حذف المستخدم '%(nick)s'" + +#: cps/admin.py:2005 +msgid "Can't delete Guest User" +msgstr "لا يمكن حذف المستخدم الضيف" + +#: cps/admin.py:2008 +msgid "No admin user remaining, can't delete user" +msgstr "لم يتبق مستخدم مسؤول، لا يمكن حذف المستخدم" + +#: cps/admin.py:2063 cps/web.py:1484 +msgid "Email can't be empty and has to be a valid Email" +msgstr "لا يمكن أن يكون البريد الإلكتروني فارغًا ويجب أن يكون بريدًا إلكترونيًا صالحًا" + +#: cps/admin.py:2089 +#, python-format +msgid "User '%(nick)s' updated" +msgstr "تم تحديث المستخدم '%(nick)s'" + +#: 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:47 cps/templates/layout.html:50 +#: cps/templates/search_form.html:247 +msgid "Search" +msgstr "بحث" + +#: cps/converter.py:31 +msgid "not installed" +msgstr "غير مثبت" + +#: cps/converter.py:32 +msgid "Execution permissions missing" +msgstr "أذونات التنفيذ مفقودة" + +#: cps/db.py:1038 cps/templates/config_edit.html:203 +#: 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:995 cps/web.py:1025 cps/web.py:1070 cps/web.py:1098 +#: cps/web.py:1137 +msgid "None" +msgstr "غير موجود" + +#: cps/editbooks.py:154 +#, python-format +msgid "File %(file)s uploaded" +msgstr "تم تحميل الملف %(file)s" + +#: cps/editbooks.py:183 +msgid "Source or destination format for conversion missing" +msgstr "تنسيق المصدر أو الوجهة للتحويل مفقود" + +#: cps/editbooks.py:191 +#, python-format +msgid "Book successfully queued for converting to %(book_format)s" +msgstr "تم وضع الكتاب في قائمة الانتظار بنجاح للتحويل إلى %(book_format)s" + +#: cps/editbooks.py:195 +#, python-format +msgid "There was an error converting this book: %(res)s" +msgstr "حدث خطأ أثناء تحويل هذا الكتاب: %(res)s" + +#: cps/editbooks.py:433 cps/editbooks.py:928 cps/web.py:535 cps/web.py:1576 +#: cps/web.py:1622 cps/web.py:1672 +msgid "Oops! Selected book is unavailable. File does not exist or is not accessible" +msgstr "عفواً! الكتاب المحدد غير متوفر. الملف غير موجود أو غير قابل للوصول" + +#: cps/editbooks.py:479 cps/editbooks.py:1285 +msgid "User has no rights to upload cover" +msgstr "ليس لدى المستخدم الحق في تحميل الغلاف" + +#: cps/editbooks.py:500 cps/editbooks.py:743 +msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" +msgstr "المعرفات ليست حساسة لحالة الأحرف، مما يؤدي إلى استبدال المعرف القديم" + +#: cps/editbooks.py:515 cps/editbooks.py:717 cps/editbooks.py:1055 +#, python-format +msgid "'%(langname)s' is not a valid language" +msgstr "'%(langname)s' ليست لغة صالحة" + +#: cps/editbooks.py:543 +msgid "Metadata successfully updated" +msgstr "تم تحديث البيانات الوصفية بنجاح" + +#: cps/editbooks.py:566 +msgid "Error editing book: {}" +msgstr "خطأ في تحرير الكتاب: {}" + +#: cps/editbooks.py:661 +msgid "Uploaded book probably exists in the library, consider to change before upload new: " +msgstr "من المحتمل أن يكون الكتاب الذي تم تحميله موجودًا في المكتبة، لذا فكر في التغيير قبل تحميل كتاب جديد: " + +#: cps/editbooks.py:755 cps/editbooks.py:1202 +msgid "File type isn't allowed to be uploaded to this server" +msgstr "لا يُسمح بتحميل نوع الملف إلى هذا الخادم" + +#: cps/editbooks.py:761 cps/editbooks.py:1213 +#, python-format +msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" +msgstr "لا يُسمح بتحميل ملحق الملف '%(ext)s' إلى هذا الخادم" + +#: cps/editbooks.py:765 cps/editbooks.py:1218 +msgid "File to be uploaded must have an extension" +msgstr "يجب أن يكون للملف المراد تحميله امتداد" + +#: cps/editbooks.py:773 +#, python-format +msgid "File %(filename)s could not saved to temp dir" +msgstr "لم يتم حفظ الملف %(filename)s في الدليل المؤقت" + +#: cps/editbooks.py:793 +#, python-format +msgid "Failed to Move Cover File %(file)s: %(error)s" +msgstr "فشل نقل ملف الغلاف %(file)s: %(error)s" + +#: cps/editbooks.py:850 cps/editbooks.py:852 +msgid "Book Format Successfully Deleted" +msgstr "تم حذف تنسيق الكتاب بنجاح" + +#: cps/editbooks.py:859 cps/editbooks.py:861 +msgid "Book Successfully Deleted" +msgstr "تم حذف الكتاب بنجاح" + +#: cps/editbooks.py:913 +msgid "You are missing permissions to delete books" +msgstr "أنت تفتقد الأذونات اللازمة لحذف الكتب" + +#: cps/editbooks.py:963 +msgid "edit metadata" +msgstr "تحرير البيانات الوصفية" + +#: cps/editbooks.py:1016 +#, python-format +msgid "Seriesindex: %(seriesindex)s is not a valid number, skipping" +msgstr "مؤشر السلسلة: %(seriesindex)s ليس رقمًا صالحًا، تخطي" + +#: cps/editbooks.py:1207 +msgid "User has no rights to upload additional file formats" +msgstr "ليس للمستخدم الحق في تحميل تنسيقات ملفات إضافية" + +#: cps/editbooks.py:1231 +#, python-format +msgid "Failed to create path %(path)s (Permission denied)." +msgstr "فشل إنشاء المسار %(path)s (تم رفض الإذن)." + +#: cps/editbooks.py:1238 +#, python-format +msgid "Failed to store file %(file)s." +msgstr "فشل تخزين الملف %(file)s." + +#: cps/editbooks.py:1263 +#, python-format +msgid "File format %(ext)s added to %(book)s" +msgstr "تمت إضافة تنسيق الملف %(ext)s إلى %(book)s" + +#: cps/gdrive.py:58 +msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again" +msgstr "لم يكتمل إعداد Google Drive، حاول إلغاء تنشيط Google Drive ثم تنشيطه مرة أخرى" + +#: cps/gdrive.py:96 +msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" +msgstr "لم يتم التحقق من نطاق الاتصال، يرجى اتباع الخطوات للتحقق من النطاق في وحدة تحكم مطوري Google" + +#: cps/helper.py:87 +#, python-format +msgid "%(format)s format not found for book id: %(book)d" +msgstr "لم يتم العثور على تنسيق %(format)s لمعرف الكتاب: %(book)d" + +#: cps/helper.py:94 cps/tasks/convert.py:93 +#, python-format +msgid "%(format)s not found on Google Drive: %(fn)s" +msgstr "لم يتم العثور على %(format)s على Google Drive: %(fn)s" + +#: cps/helper.py:99 +#, python-format +msgid "%(format)s not found: %(fn)s" +msgstr "لم يتم العثور على %(format)s: %(fn)s" + +#: cps/helper.py:104 cps/helper.py:233 cps/templates/detail.html:66 +msgid "Send to eReader" +msgstr "إرسال إلى القارئ الإلكتروني" + +#: cps/helper.py:105 cps/helper.py:125 cps/helper.py:235 +msgid "This Email has been sent via Calibre-Web." +msgstr "تم إرسال هذا البريد الإلكتروني عبر Calibre-Web." + +#: cps/helper.py:123 +msgid "Calibre-Web Test Email" +msgstr "بريد إلكتروني اختباري من Calibre-Web" + +#: cps/helper.py:124 +msgid "Test Email" +msgstr "اختبار البريد الإلكتروني" + +#: cps/helper.py:141 +msgid "Get Started with Calibre-Web" +msgstr "ابدأ مع Calibre-Web" + +#: cps/helper.py:146 +#, python-format +msgid "Registration Email for user: %(name)s" +msgstr "البريد الإلكتروني للتسجيل للمستخدم: %(name)s" + +#: cps/helper.py:157 cps/helper.py:163 +#, python-format +msgid "Convert %(orig)s to %(format)s and send to eReader" +msgstr "تحويل %(orig)s إلى %(format)s وإرساله إلى القارئ الإلكتروني" + +#: cps/helper.py:182 cps/helper.py:186 cps/helper.py:190 +#, python-format +msgid "Send %(format)s to eReader" +msgstr "إرسال %(format)s إلى القارئ الإلكتروني" + +#: cps/helper.py:230 +#, python-format +msgid "%(book)s send to eReader" +msgstr "%(book)s إرسال إلى القارئ الإلكتروني" + +#: cps/helper.py:237 +msgid "The requested file could not be read. Maybe wrong permissions?" +msgstr "لم تتم قراءة الملف المطلوب. ربما الأذونات خاطئة؟" + +#: cps/helper.py:352 +msgid "Read status could not set: {}" +msgstr "لم يتم ضبط حالة القراءة: {}" + +#: cps/helper.py:375 +#, python-format +msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" +msgstr "فشلت عملية حذف مجلد الكتاب %(id)s، المسار يحتوي على مجلدات فرعية: %(path)s" + +#: cps/helper.py:381 +#, python-format +msgid "Deleting book %(id)s failed: %(message)s" +msgstr "حذف الكتاب %(id)s فشل %(message)s" + +#: cps/helper.py:392 +#, python-format +msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" +msgstr "حذف الكتاب %(id)s من قاعدة البيانات فقط، مسار الكتاب في قاعدة البيانات غير صالح: %(path)s" + +#: cps/helper.py:439 +#, python-format +msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "فشلت عملية إعادة تسمية المؤلف من: '%(src)s' إلى '%(dest)s' مع الخطأ: %(error)s" + +#: cps/helper.py:507 cps/helper.py:516 +#, python-format +msgid "File %(file)s not found on Google Drive" +msgstr "لم يتم العثور على الملف %(file)s على Google Drive" + +#: cps/helper.py:559 +#, python-format +msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "فشلت عملية إعادة تسمية العنوان من: '%(src)s' إلى '%(dest)s' مع الخطأ: %(error)s" + +#: cps/helper.py:597 +#, python-format +msgid "Book path %(path)s not found on Google Drive" +msgstr "لم يتم العثور على مسار الكتاب %(path)s على Google Drive" + +#: cps/helper.py:657 +msgid "Found an existing account for this Email address" +msgstr "تم العثور على حساب موجود لعنوان البريد الإلكتروني هذا" + +#: cps/helper.py:665 +msgid "This username is already taken" +msgstr "اسم المستخدم هذا مستخدم بالفعل" + +#: cps/helper.py:679 +msgid "Invalid Email address format" +msgstr "تنسيق عنوان البريد الإلكتروني غير صالح" + +#: cps/helper.py:701 +msgid "Password doesn't comply with password validation rules" +msgstr "كلمة المرور لا تتوافق مع قواعد التحقق من صحة كلمة المرور" + +#: cps/helper.py:847 +msgid "Python module 'advocate' is not installed but is needed for cover uploads" +msgstr "لم يتم تثبيت وحدة Python 'advocate' ولكنها ضرورية لتحميلات الغلاف" + +#: cps/helper.py:857 +msgid "Error Downloading Cover" +msgstr "خطأ في تنزيل الغلاف" + +#: cps/helper.py:860 +msgid "Cover Format Error" +msgstr "خطأ في تنسيق الغلاف" + +#: cps/helper.py:863 +msgid "You are not allowed to access localhost or the local network for cover uploads" +msgstr "لا يُسمح لك بالوصول إلى localhost أو الشبكة المحلية لتحميل الغلاف" + +#: cps/helper.py:873 +msgid "Failed to create path for cover" +msgstr "فشل في إنشاء مسار الغلاف" + +#: cps/helper.py:889 +msgid "Cover-file is not a valid image file, or could not be stored" +msgstr "ملف الغلاف ليس ملف صورة صالحًا، أو لا يمكن تخزينه" + +#: cps/helper.py:900 +msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" +msgstr "ملفات jpg/jpeg/png/webp/bmp فقط مدعومة كملفات غلاف" + +#: cps/helper.py:912 +msgid "Invalid cover file content" +msgstr "محتوى ملف الغلاف غير صالح" + +#: cps/helper.py:916 +msgid "Only jpg/jpeg files are supported as coverfile" +msgstr "ملفات jpg/jpeg فقط مدعومة كملفات غلاف" + +#: cps/helper.py:989 cps/helper.py:1149 +msgid "Cover" +msgstr "الغلاف" + +#: cps/helper.py:1006 +msgid "UnRar binary file not found" +msgstr "ملف UnRar الثنائي غير موجود" + +#: cps/helper.py:1017 +msgid "Error executing UnRar" +msgstr "خطأ في تنفيذ UnRar" + +#: cps/helper.py:1025 +msgid "Could not find the specified directory" +msgstr "تعذر العثور على الدليل المحدد" + +#: cps/helper.py:1028 +msgid "Please specify a directory, not a file" +msgstr "الرجاء تحديد دليل، وليس ملف" + +#: cps/helper.py:1042 +msgid "Calibre binaries not viable" +msgstr "ملفات Calibre الثنائية غير قابلة للاستخدام" + +#: cps/helper.py:1051 +#, python-format +msgid "Missing calibre binaries: %(missing)s" +msgstr "ملفات Calibre الثنائية مفقودة: %(missing)s" + +#: cps/helper.py:1053 +#, python-format +msgid "Missing executable permissions: %(missing)s" +msgstr "أذونات التنفيذ مفقودة: %(missing)s" + +#: cps/helper.py:1058 +msgid "Error executing Calibre" +msgstr "خطأ في تنفيذ Calibre" + +#: cps/helper.py:1151 cps/templates/admin.html:216 +msgid "Queue all books for metadata backup" +msgstr "وضع جميع الكتب في قائمة الانتظار لنسخ البيانات الوصفية احتياطيًا" + +#: cps/kobo_auth.py:92 +msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" +msgstr "الرجاء الوصول إلى Calibre-Web من غير المضيف المحلي للحصول على نقطة نهاية API صالحة لجهاز Kobo" + +#: cps/kobo_auth.py:118 +msgid "Kobo Setup" +msgstr "إعداد Kobo" + +#: cps/oauth_bb.py:78 +#, python-format +msgid "Register with %(provider)s" +msgstr "التسجيل باستخدام %(provider)s" + +#: cps/oauth_bb.py:139 cps/remotelogin.py:131 +#, python-format +msgid "Success! You are now logged in as: %(nickname)s" +msgstr "تم بنجاح! أنت الآن مسجل الدخول باسم: %(nickname)s" + +#: cps/oauth_bb.py:149 +#, python-format +msgid "Link to %(oauth)s Succeeded" +msgstr "تم ربط %(oauth)s بنجاح" + +#: cps/oauth_bb.py:156 +msgid "Login failed, No User Linked With OAuth Account" +msgstr "فشل تسجيل الدخول، لا يوجد مستخدم مرتبط بحساب OAuth" + +#: cps/oauth_bb.py:198 +#, python-format +msgid "Unlink to %(oauth)s Succeeded" +msgstr "تم إلغاء ربط %(oauth)s بنجاح" + +#: cps/oauth_bb.py:203 +#, python-format +msgid "Unlink to %(oauth)s Failed" +msgstr "فشل إلغاء ربط %(oauth)s" + +#: cps/oauth_bb.py:206 +#, python-format +msgid "Not Linked to %(oauth)s" +msgstr "غير مرتبط بـ %(oauth)s" + +#: cps/oauth_bb.py:263 +msgid "Failed to log in with GitHub." +msgstr "فشل تسجيل الدخول باستخدام GitHub." + +#: cps/oauth_bb.py:269 +msgid "Failed to fetch user info from GitHub." +msgstr "فشل جلب معلومات المستخدم من GitHub." + +#: cps/oauth_bb.py:281 +msgid "Failed to log in with Google." +msgstr "فشل تسجيل الدخول باستخدام Google." + +#: cps/oauth_bb.py:287 +msgid "Failed to fetch user info from Google." +msgstr "فشل جلب معلومات المستخدم من Google." + +#: cps/oauth_bb.py:335 +msgid "GitHub Oauth error, please retry later." +msgstr "خطأ في OAuth الخاص بـ GitHub، يرجى المحاولة لاحقًا." + +#: cps/oauth_bb.py:338 +msgid "GitHub Oauth error: {}" +msgstr "خطأ في OAuth الخاص بـ GitHub: {}" + +#: cps/oauth_bb.py:359 +msgid "Google Oauth error, please retry later." +msgstr "خطأ في OAuth الخاص بـ Google، يرجى المحاولة لاحقًا." + +#: cps/oauth_bb.py:362 +msgid "Google Oauth error: {}" +msgstr "خطأ في OAuth الخاص بـ Google: {}" + +#: cps/opds.py:299 +msgid "{} Stars" +msgstr "{} نجوم" + +#: cps/remotelogin.py:63 cps/templates/layout.html:69 +#: cps/templates/layout.html:104 cps/templates/login.html:4 +#: cps/templates/login.html:21 cps/web.py:1361 +msgid "Login" +msgstr "تسجيل الدخول" + +#: cps/remotelogin.py:75 cps/remotelogin.py:109 +msgid "Token not found" +msgstr "لم يتم العثور على الرمز" + +#: cps/remotelogin.py:84 cps/remotelogin.py:117 +msgid "Token has expired" +msgstr "انتهت صلاحية الرمز" + +#: cps/remotelogin.py:93 +msgid "Success! Please return to your device" +msgstr "نجاح! يرجى العودة إلى جهازك" + +#: cps/render_template.py:41 cps/web.py:424 +msgid "Books" +msgstr "الكتب" + +#: cps/render_template.py:43 +msgid "Show recent books" +msgstr "عرض الكتب الحديثة" + +#: cps/render_template.py:44 cps/templates/index.xml:27 +msgid "Hot Books" +msgstr "الكتب الرائجة" + +#: cps/render_template.py:46 +msgid "Show Hot Books" +msgstr "عرض الكتب الرائجة" + +#: cps/render_template.py:48 cps/render_template.py:53 +msgid "Downloaded Books" +msgstr "الكتب المحملة" + +#: cps/render_template.py:50 cps/render_template.py:55 +#: cps/templates/user_table.html:167 +msgid "Show Downloaded Books" +msgstr "عرض الكتب المحملة" + +#: cps/render_template.py:58 cps/templates/index.xml:36 cps/web.py:439 +msgid "Top Rated Books" +msgstr "الكتب الأعلى تقييمًا" + +#: cps/render_template.py:60 cps/templates/user_table.html:161 +msgid "Show Top Rated Books" +msgstr "عرض الكتب الأعلى تقييمًا" + +#: cps/render_template.py:61 cps/templates/index.xml:63 +#: cps/templates/index.xml:67 cps/web.py:772 +msgid "Read Books" +msgstr "الكتب المقروءة" + +#: cps/render_template.py:63 +msgid "Show Read and Unread" +msgstr "عرض المقروء وغير المقروء" + +#: cps/render_template.py:65 cps/templates/index.xml:70 +#: cps/templates/index.xml:74 cps/web.py:775 +msgid "Unread Books" +msgstr "الكتب غير المقروءة" + +#: cps/render_template.py:67 +msgid "Show unread" +msgstr "عرض غير المقروء" + +#: cps/render_template.py:68 +msgid "Discover" +msgstr "اكتشف" + +#: 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 "عرض الكتب العشوائية" + +#: cps/render_template.py:71 cps/templates/book_table.html:67 +#: cps/templates/index.xml:97 cps/web.py:1141 +msgid "Categories" +msgstr "الفئات" + +#: cps/render_template.py:73 cps/templates/user_table.html:158 +msgid "Show Category Section" +msgstr "عرض قسم الفئات" + +#: cps/render_template.py:74 cps/templates/book_edit.html:86 +#: cps/templates/book_table.html:68 cps/templates/index.xml:106 +#: cps/templates/search_form.html:70 cps/web.py:1031 cps/web.py:1043 +msgid "Series" +msgstr "السلاسل" + +#: cps/render_template.py:76 cps/templates/user_table.html:157 +msgid "Show Series Section" +msgstr "عرض قسم السلاسل" + +#: cps/render_template.py:77 cps/templates/book_table.html:66 +#: cps/templates/index.xml:79 +msgid "Authors" +msgstr "المؤلفون" + +#: cps/render_template.py:79 cps/templates/user_table.html:160 +msgid "Show Author Section" +msgstr "عرض قسم المؤلفين" + +#: cps/render_template.py:81 cps/templates/book_table.html:72 +#: cps/templates/index.xml:88 cps/web.py:999 +msgid "Publishers" +msgstr "الناشرون" + +#: cps/render_template.py:83 cps/templates/user_table.html:163 +msgid "Show Publisher Section" +msgstr "عرض قسم الناشرين" + +#: cps/render_template.py:84 cps/templates/book_table.html:70 +#: cps/templates/index.xml:115 cps/templates/search_form.html:108 +#: cps/web.py:1113 +msgid "Languages" +msgstr "اللغات" + +#: cps/render_template.py:87 cps/templates/user_table.html:155 +msgid "Show Language Section" +msgstr "عرض قسم اللغات" + +#: cps/render_template.py:88 cps/templates/index.xml:124 +msgid "Ratings" +msgstr "التقييمات" + +#: cps/render_template.py:90 cps/templates/user_table.html:164 +msgid "Show Ratings Section" +msgstr "عرض قسم التقييمات" + +#: cps/render_template.py:91 cps/templates/index.xml:133 +msgid "File formats" +msgstr "تنسيقات الملفات" + +#: cps/render_template.py:93 cps/templates/user_table.html:165 +msgid "Show File Formats Section" +msgstr "عرض قسم تنسيقات الملفات" + +#: cps/render_template.py:95 cps/web.py:798 +msgid "Archived Books" +msgstr "الكتب المؤرشفة" + +#: cps/render_template.py:97 cps/templates/user_table.html:166 +msgid "Show Archived Books" +msgstr "عرض الكتب المؤرشفة" + +#: cps/render_template.py:100 cps/web.py:829 +msgid "Books List" +msgstr "قائمة الكتب" + +#: cps/render_template.py:102 cps/templates/user_table.html:168 +msgid "Show Books List" +msgstr "عرض قائمة الكتب" + +#: cps/search.py:201 +msgid "Published after " +msgstr "نشر بعد " + +#: cps/search.py:208 +msgid "Published before " +msgstr "نشر قبل " + +#: cps/search.py:230 +#, python-format +msgid "Rating <= %(rating)s" +msgstr "التقييم <= %(rating)s" + +#: cps/search.py:232 +#, python-format +msgid "Rating >= %(rating)s" +msgstr "التقييم >= %(rating)s" + +#: cps/search.py:234 +#, python-format +msgid "Read Status = '%(status)s'" +msgstr "حالة القراءة = '%(status)s'" + +#: cps/search.py:351 +msgid "Error on search for custom columns, please restart Calibre-Web" +msgstr "خطأ في البحث عن الأعمدة المخصصة، يرجى إعادة تشغيل Calibre-Web" + +#: cps/search.py:370 cps/search.py:402 cps/templates/layout.html:58 +msgid "Advanced Search" +msgstr "بحث متقدم" + +#: cps/shelf.py:49 cps/shelf.py:111 +msgid "Invalid shelf specified" +msgstr "تم تحديد رف غير صالح" + +#: cps/shelf.py:55 +msgid "Sorry you are not allowed to add a book to that shelf" +msgstr "عذرًا، لا يُسمح لك بإضافة كتاب إلى هذا الرف" + +#: cps/shelf.py:64 +#, python-format +msgid "Book is already part of the shelf: %(shelfname)s" +msgstr "الكتاب جزء بالفعل من الرف: %(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 معرف كتاب غير صالح. لا يمكن إضافته إلى الرف" + +#: cps/shelf.py:97 +#, python-format +msgid "Book has been added to shelf: %(sname)s" +msgstr "تمت إضافة الكتاب إلى الرف: %(sname)s" + +#: cps/shelf.py:116 +msgid "You are not allowed to add a book to the shelf" +msgstr "لا يُسمح لك بإضافة كتاب إلى الرف" + +#: cps/shelf.py:134 +#, python-format +msgid "Books are already part of the shelf: %(name)s" +msgstr "الكتب جزء بالفعل من الرف: %(name)s" + +#: cps/shelf.py:146 +#, python-format +msgid "Books have been added to shelf: %(sname)s" +msgstr "تمت إضافة الكتب إلى الرف: %(sname)s" + +#: cps/shelf.py:153 +#, python-format +msgid "Could not add books to shelf: %(sname)s" +msgstr "تعذر إضافة الكتب إلى الرف: %(sname)s" + +#: cps/shelf.py:199 +#, python-format +msgid "Book has been removed from shelf: %(sname)s" +msgstr "تمت إزالة الكتاب من الرف: %(sname)s" + +#: cps/shelf.py:208 +msgid "Sorry you are not allowed to remove a book from this shelf" +msgstr "عذرًا، لا يُسمح لك بإزالة كتاب من هذا الرف" + +#: cps/shelf.py:218 cps/templates/layout.html:160 +msgid "Create a Shelf" +msgstr "إنشاء رف" + +#: cps/shelf.py:226 +msgid "Sorry you are not allowed to edit this shelf" +msgstr "عذرًا، لا يُسمح لك بتحرير هذا الرف" + +#: cps/shelf.py:228 +msgid "Edit a shelf" +msgstr "تحرير رف" + +#: cps/shelf.py:237 +msgid "Error deleting Shelf" +msgstr "خطأ في حذف الرف" + +#: cps/shelf.py:239 +msgid "Shelf successfully deleted" +msgstr "تم حذف الرف بنجاح" + +#: cps/shelf.py:289 +#, python-format +msgid "Change order of Shelf: '%(name)s'" +msgstr "تغيير ترتيب الرف: '%(name)s'" + +#: cps/shelf.py:324 +msgid "Sorry you are not allowed to create a public shelf" +msgstr "عذرًا، لا يُسمح لك بإنشاء رف عام" + +#: cps/shelf.py:341 +#, python-format +msgid "Shelf %(title)s created" +msgstr "تم إنشاء الرف %(title)s" + +#: cps/shelf.py:344 +#, python-format +msgid "Shelf %(title)s changed" +msgstr "تم تغيير الرف %(title)s" + +#: cps/shelf.py:358 +msgid "There was an error" +msgstr "حدث خطأ" + +#: cps/shelf.py:380 +#, python-format +msgid "A public shelf with the name '%(title)s' already exists." +msgstr "رف عام بالاسم '%(title)s' موجود بالفعل." + +#: cps/shelf.py:391 +#, python-format +msgid "A private shelf with the name '%(title)s' already exists." +msgstr "رف خاص بالاسم '%(title)s' موجود بالفعل." + +#: cps/shelf.py:481 +#, python-format +msgid "Shelf: '%(name)s'" +msgstr "الرف: '%(name)s'" + +#: cps/shelf.py:487 +msgid "Error opening shelf. Shelf does not exist or is not accessible" +msgstr "خطأ في فتح الرف. الرف غير موجود أو غير قابل للوصول" + +#: cps/tasks_status.py:47 cps/templates/layout.html:91 +#: cps/templates/tasks.html:7 +msgid "Tasks" +msgstr "المهام" + +#: cps/tasks_status.py:63 +msgid "Waiting" +msgstr "في انتظار" + +#: cps/tasks_status.py:65 +msgid "Failed" +msgstr "فشل" + +#: cps/tasks_status.py:67 +msgid "Started" +msgstr "بدأ" + +#: cps/tasks_status.py:69 +msgid "Finished" +msgstr "انتهى" + +#: cps/tasks_status.py:71 +msgid "Ended" +msgstr "انتهى" + +#: cps/tasks_status.py:73 +msgid "Cancelled" +msgstr "ألغيت" + +#: cps/tasks_status.py:75 +msgid "Unknown Status" +msgstr "حالة غير معروفة" + +#: cps/updater.py:433 cps/updater.py:444 cps/updater.py:545 cps/updater.py:560 +msgid "Unexpected data while reading update information" +msgstr "بيانات غير متوقعة أثناء قراءة معلومات التحديث" + +#: cps/updater.py:440 cps/updater.py:552 +msgid "No update available. You already have the latest version installed" +msgstr "لا يوجد تحديث متاح. لديك بالفعل أحدث إصدار مثبت" + +#: cps/updater.py:458 +msgid "A new update is available. Click on the button below to update to the latest version." +msgstr "يتوفر تحديث جديد. انقر على الزر أدناه للتحديث إلى أحدث إصدار." + +#: cps/updater.py:476 +msgid "Could not fetch update information" +msgstr "تعذر جلب معلومات التحديث" + +#: cps/updater.py:486 +msgid "Click on the button below to update to the latest stable version." +msgstr "انقر على الزر أدناه للتحديث إلى أحدث إصدار مستقر." + +#: 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 "يتوفر تحديث جديد. انقر على الزر أدناه للتحديث إلى الإصدار: %(version)s" + +#: cps/updater.py:538 +msgid "No release information available" +msgstr "لا توجد معلومات إصدار متاحة" + +#: cps/templates/index.html:6 cps/web.py:451 +msgid "Discover (Random Books)" +msgstr "اكتشف (كتب عشوائية)" + +#: cps/web.py:487 +msgid "Hot Books (Most Downloaded)" +msgstr "الكتب الرائجة (الأكثر تحميلًا)" + +#: cps/web.py:518 +#, python-format +msgid "Downloaded books by %(user)s" +msgstr "الكتب المحملة بواسطة %(user)s" + +#: cps/web.py:551 +#, python-format +msgid "Author: %(name)s" +msgstr "المؤلف: %(name)s" + +#: cps/web.py:587 +#, python-format +msgid "Publisher: %(name)s" +msgstr "الناشر: %(name)s" + +#: cps/web.py:615 +#, python-format +msgid "Series: %(serie)s" +msgstr "السلسلة: %(serie)s" + +#: cps/web.py:629 +msgid "Rating: None" +msgstr "التقييم: لا يوجد" + +#: cps/web.py:638 +#, python-format +msgid "Rating: %(rating)s stars" +msgstr "التقييم: %(rating)s نجوم" + +#: cps/web.py:669 +#, python-format +msgid "File format: %(format)s" +msgstr "تنسيق الملف: %(format)s" + +#: cps/web.py:704 +#, python-format +msgid "Category: %(name)s" +msgstr "الفئة: %(name)s" + +#: cps/web.py:733 +#, python-format +msgid "Language: %(name)s" +msgstr "اللغة: %(name)s" + +#: cps/templates/admin.html:16 cps/web.py:971 +msgid "Downloads" +msgstr "التحميلات" + +#: cps/web.py:1073 +msgid "Ratings list" +msgstr "قائمة التقييمات" + +#: cps/web.py:1100 +msgid "File formats list" +msgstr "قائمة تنسيقات الملفات" + +#: cps/web.py:1259 +msgid "Please configure the SMTP mail settings first..." +msgstr "يرجى تهيئة إعدادات بريد SMTP أولاً..." + +#: cps/web.py:1265 +#, python-format +msgid "Success! Book queued for sending to %(eReadermail)s" +msgstr "نجاح! تم وضع الكتاب في قائمة الانتظار للإرسال إلى %(eReadermail)s" + +#: cps/web.py:1268 +#, python-format +msgid "Oops! There was an error sending book: %(res)s" +msgstr "عفوًا! حدث خطأ أثناء إرسال الكتاب: %(res)s" + +#: cps/web.py:1270 +msgid "Oops! Please update your profile with a valid eReader Email." +msgstr "عفوًا! يرجى تحديث ملفك الشخصي ببريد إلكتروني صالح للقارئ الإلكتروني." + +#: cps/web.py:1286 +msgid "Please wait one minute to register next user" +msgstr "يرجى الانتظار دقيقة واحدة لتسجيل مستخدم آخر" + +#: cps/templates/layout.html:70 cps/templates/layout.html:105 +#: cps/templates/login.html:27 cps/templates/register.html:17 cps/web.py:1287 +#: cps/web.py:1291 cps/web.py:1296 cps/web.py:1300 cps/web.py:1306 +#: cps/web.py:1326 cps/web.py:1330 cps/web.py:1343 cps/web.py:1346 +msgid "Register" +msgstr "تسجيل" + +#: cps/web.py:1290 cps/web.py:1393 +msgid "Connection error to limiter backend, please contact your administrator" +msgstr "خطأ في الاتصال بالواجهة الخلفية للمُحدد، يرجى الاتصال بمسؤول النظام" + +#: cps/web.py:1295 cps/web.py:1342 +msgid "Oops! Email server is not configured, please contact your administrator." +msgstr "عفوًا! خادم البريد الإلكتروني غير مهيأ، يرجى الاتصال بمسؤول النظام." + +#: cps/web.py:1328 +msgid "Oops! Your Email is not allowed." +msgstr "عفوًا! بريدك الإلكتروني غير مسموح به." + +#: cps/web.py:1331 +msgid "Success! Confirmation Email has been sent." +msgstr "نجاح! تم إرسال بريد إلكتروني للتأكيد." + +#: cps/web.py:1376 cps/web.py:1399 +msgid "Cannot activate LDAP authentication" +msgstr "لا يمكن تفعيل مصادقة LDAP" + +#: cps/web.py:1389 +msgid "Please wait one minute before next login" +msgstr "يرجى الانتظار دقيقة واحدة قبل تسجيل الدخول التالي" + +#: cps/web.py:1408 +#, python-format +msgid "you are now logged in as: '%(nickname)s'" +msgstr "لقد قمت الآن بتسجيل الدخول باسم: '%(nickname)s'" + +#: cps/web.py:1415 +#, python-format +msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" +msgstr "تسجيل دخول احتياطي باسم: '%(nickname)s'، خادم LDAP غير قابل للوصول، أو المستخدم غير معروف" + +#: cps/web.py:1420 +#, python-format +msgid "Could not login: %(message)s" +msgstr "تعذر تسجيل الدخول: %(message)s" + +#: cps/web.py:1424 cps/web.py:1449 +msgid "Wrong Username or Password" +msgstr "اسم المستخدم أو كلمة المرور خاطئة" + +#: cps/web.py:1431 +msgid "New Password was sent to your email address" +msgstr "تم إرسال كلمة مرور جديدة إلى عنوان بريدك الإلكتروني" + +#: cps/web.py:1435 +msgid "An unknown error occurred. Please try again later." +msgstr "حدث خطأ غير معروف. يرجى المحاولة مرة أخرى لاحقًا." + +#: cps/web.py:1437 +msgid "Please enter valid username to reset password" +msgstr "يرجى إدخال اسم مستخدم صالح لإعادة تعيين كلمة المرور" + +#: cps/web.py:1445 +#, python-format +msgid "You are now logged in as: '%(nickname)s'" +msgstr "لقد قمت الآن بتسجيل الدخول باسم: '%(nickname)s'" + +#: cps/web.py:1510 cps/web.py:1560 +#, python-format +msgid "%(name)s's Profile" +msgstr "ملف %(name)s الشخصي" + +#: cps/web.py:1526 +msgid "Success! Profile Updated" +msgstr "نجاح! تم تحديث الملف الشخصي" + +#: cps/web.py:1530 +msgid "Oops! An account already exists for this Email." +msgstr "عفوًا! يوجد حساب بالفعل لهذا البريد الإلكتروني." + +#: cps/services/gmail.py:59 +msgid "Found no valid gmail.json file with OAuth information" +msgstr "لم يتم العثور على ملف gmail.json صالح بمعلومات OAuth" + +#: cps/tasks/clean.py:29 +msgid "Delete temp folder contents" +msgstr "حذف محتويات المجلد المؤقت" + +#: cps/tasks/convert.py:112 +#, python-format +msgid "%(book)s send to E-Reader" +msgstr "تم إرسال %(book)s إلى القارئ الإلكتروني" + +#: cps/tasks/convert.py:177 +#, python-format +msgid "Calibre ebook-convert %(tool)s not found" +msgstr "لم يتم العثور على Calibre ebook-convert %(tool)s" + +#: cps/tasks/convert.py:211 +#, python-format +msgid "%(format)s format not found on disk" +msgstr "لم يتم العثور على تنسيق %(format)s على القرص" + +#: cps/tasks/convert.py:215 +msgid "Ebook converter failed with unknown error" +msgstr "فشل محول الكتب الإلكترونية بخطأ غير معروف" + +#: cps/tasks/convert.py:234 +#, python-format +msgid "Kepubify-converter failed: %(error)s" +msgstr "فشل محول Kepubify: %(error)s" + +#: cps/tasks/convert.py:255 +#, python-format +msgid "Converted file not found or more than one file in folder %(folder)s" +msgstr "لم يتم العثور على الملف المحول أو أكثر من ملف واحد في المجلد %(folder)s" + +#: cps/tasks/convert.py:289 cps/tasks/convert.py:340 +#, python-format +msgid "Calibre failed with error: %(error)s" +msgstr "فشل Calibre مع الخطأ: %(error)s" + +#: cps/tasks/convert.py:317 +#, python-format +msgid "Ebook-converter failed: %(error)s" +msgstr "فشل محول الكتب الإلكترونية: %(error)s" + +#: cps/tasks/convert.py:345 +msgid "Convert" +msgstr "تحويل" + +#: cps/tasks/database.py:26 +msgid "Reconnecting Calibre database" +msgstr "إعادة الاتصال بقاعدة بيانات Calibre" + +#: cps/tasks/mail.py:283 +msgid "E-mail" +msgstr "بريد إلكتروني" + +#: cps/tasks/metadata_backup.py:34 +msgid "Backing up Metadata" +msgstr "جارٍ نسخ البيانات الوصفية احتياطيًا" + +#: cps/tasks/thumbnail.py:97 +#, python-format +msgid "Generated %(count)s cover thumbnails" +msgstr "تم إنشاء %(count)s صور مصغرة للغلاف" + +#: cps/tasks/thumbnail.py:233 cps/tasks/thumbnail.py:448 +#: cps/tasks/thumbnail.py:518 +msgid "Cover Thumbnails" +msgstr "صور الغلاف المصغرة" + +#: cps/tasks/thumbnail.py:294 +msgid "Generated {0} series thumbnails" +msgstr "تم إنشاء {0} صور مصغرة للمسلسلات" + +#: cps/tasks/thumbnail.py:459 +msgid "Clearing cover thumbnail cache" +msgstr "مسح ذاكرة التخزين المؤقت لصور الغلاف المصغرة" + +#: cps/tasks/upload.py:39 cps/templates/admin.html:20 +#: cps/templates/layout.html:83 cps/templates/user_table.html:145 +msgid "Upload" +msgstr "تحميل" + +#: cps/templates/admin.html:9 +msgid "Users" +msgstr "المستخدمون" + +#: 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 "اسم المستخدم" + +#: 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 "البريد الإلكتروني" + +#: cps/templates/admin.html:15 +msgid "Send to eReader Email" +msgstr "إرسال إلى بريد قارئ الكتب الإلكترونية" + +#: cps/templates/admin.html:17 cps/templates/layout.html:94 +#: cps/templates/user_table.html:143 +msgid "Admin" +msgstr "المسؤول" + +#: cps/templates/admin.html:18 cps/templates/login.html:13 +#: cps/templates/login.html:14 cps/templates/user_edit.html:23 +msgid "Password" +msgstr "كلمة المرور" + +#: 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 "تنزيل" + +#: cps/templates/admin.html:23 +msgid "View Books" +msgstr "عرض الكتب" + +#: cps/templates/admin.html:24 cps/templates/user_table.html:131 +#: cps/templates/user_table.html:148 +msgid "Edit" +msgstr "تحرير" + +#: cps/templates/admin.html:25 cps/templates/book_edit.html:17 +#: cps/templates/book_table.html:100 cps/templates/modal_dialogs.html:63 +#: cps/templates/modal_dialogs.html:116 cps/templates/user_edit.html:67 +#: cps/templates/user_table.html:149 +msgid "Delete" +msgstr "حذف" + +#: cps/templates/admin.html:26 +msgid "Public Shelf" +msgstr "رف عام" + +#: cps/templates/admin.html:55 +msgid "Import LDAP Users" +msgstr "استيراد مستخدمي LDAP" + +#: cps/templates/admin.html:62 +msgid "Email Server Settings" +msgstr "إعدادات خادم البريد الإلكتروني" + +#: cps/templates/admin.html:67 cps/templates/email_edit.html:31 +msgid "SMTP Hostname" +msgstr "اسم مضيف SMTP" + +#: cps/templates/admin.html:71 cps/templates/email_edit.html:35 +msgid "SMTP Port" +msgstr "منفذ SMTP" + +#: cps/templates/admin.html:75 cps/templates/email_edit.html:39 +msgid "Encryption" +msgstr "التشفير" + +#: cps/templates/admin.html:79 cps/templates/email_edit.html:47 +msgid "SMTP Login" +msgstr "تسجيل الدخول إلى SMTP" + +#: cps/templates/admin.html:83 cps/templates/admin.html:94 +#: cps/templates/email_edit.html:55 +msgid "From Email" +msgstr "من البريد الإلكتروني" + +#: cps/templates/admin.html:90 +msgid "Email Service" +msgstr "خدمة البريد الإلكتروني" + +#: cps/templates/admin.html:91 +msgid "Gmail via Oauth2" +msgstr "Gmail عبر Oauth2" + +#: cps/templates/admin.html:106 +msgid "Configuration" +msgstr "التهيئة" + +#: cps/templates/admin.html:109 +msgid "Calibre Database Directory" +msgstr "دليل قاعدة بيانات Calibre" + +#: cps/templates/admin.html:113 cps/templates/config_edit.html:68 +msgid "Log Level" +msgstr "مستوى السجل" + +#: cps/templates/admin.html:117 +msgid "Port" +msgstr "المنفذ" + +#: cps/templates/admin.html:122 +msgid "External Port" +msgstr "المنفذ الخارجي" + +#: cps/templates/admin.html:129 cps/templates/config_view_edit.html:28 +msgid "Books per Page" +msgstr "الكتب لكل صفحة" + +#: cps/templates/admin.html:133 +msgid "Uploads" +msgstr "التحميلات" + +#: cps/templates/admin.html:137 +msgid "Anonymous Browsing" +msgstr "التصفح المجهول" + +#: cps/templates/admin.html:141 +msgid "Public Registration" +msgstr "التسجيل العام" + +#: cps/templates/admin.html:145 +msgid "Magic Link Remote Login" +msgstr "تسجيل الدخول عن بعد بالرابط السحري" + +#: cps/templates/admin.html:149 +msgid "Reverse Proxy Login" +msgstr "تسجيل الدخول بالوكيل العكسي" + +#: cps/templates/admin.html:154 cps/templates/config_edit.html:172 +msgid "Reverse Proxy Header Name" +msgstr "اسم رأس الوكيل العكسي" + +#: cps/templates/admin.html:159 +msgid "Edit Calibre Database Configuration" +msgstr "تحرير تهيئة قاعدة بيانات Calibre" + +#: cps/templates/admin.html:160 +msgid "Edit Basic Configuration" +msgstr "تحرير التهيئة الأساسية" + +#: cps/templates/admin.html:161 +msgid "Edit UI Configuration" +msgstr "تحرير تهيئة واجهة المستخدم" + +#: cps/templates/admin.html:167 +msgid "Scheduled Tasks" +msgstr "المهام المجدولة" + +#: cps/templates/admin.html:170 cps/templates/schedule_edit.html:12 +#: cps/templates/tasks.html:18 +msgid "Start Time" +msgstr "وقت البدء" + +#: cps/templates/admin.html:174 cps/templates/schedule_edit.html:20 +msgid "Maximum Duration" +msgstr "الحد الأقصى للمدة" + +#: cps/templates/admin.html:178 cps/templates/schedule_edit.html:29 +msgid "Generate Thumbnails" +msgstr "إنشاء صور مصغرة" + +#: cps/templates/admin.html:182 +msgid "Generate series cover thumbnails" +msgstr "إنشاء صور مصغرة لأغلفة السلاسل" + +#: cps/templates/admin.html:186 cps/templates/admin.html:208 +#: cps/templates/schedule_edit.html:37 +msgid "Reconnect Calibre Database" +msgstr "إعادة الاتصال بقاعدة بيانات Calibre" + +#: cps/templates/admin.html:190 cps/templates/schedule_edit.html:41 +msgid "Generate Metadata Backup Files" +msgstr "إنشاء ملفات النسخ الاحتياطي للبيانات الوصفية" + +#: cps/templates/admin.html:197 +msgid "Refresh Thumbnail Cache" +msgstr "تحديث ذاكرة التخزين المؤقت للصور المصغرة" + +#: cps/templates/admin.html:203 +msgid "Administration" +msgstr "الإدارة" + +#: cps/templates/admin.html:204 +msgid "Download Debug Package" +msgstr "تنزيل حزمة التصحيح" + +#: cps/templates/admin.html:205 +msgid "View Logs" +msgstr "عرض السجلات" + +#: cps/templates/admin.html:211 +msgid "Restart" +msgstr "إعادة تشغيل" + +#: cps/templates/admin.html:212 +msgid "Shutdown" +msgstr "إيقاف التشغيل" + +#: cps/templates/admin.html:221 +msgid "Version Information" +msgstr "معلومات الإصدار" + +#: cps/templates/admin.html:225 +msgid "Version" +msgstr "الإصدار" + +#: cps/templates/admin.html:226 +msgid "Details" +msgstr "التفاصيل" + +#: cps/templates/admin.html:232 +msgid "Current Version" +msgstr "الإصدار الحالي" + +#: cps/templates/admin.html:239 +msgid "Check for Update" +msgstr "التحقق من التحديث" + +#: cps/templates/admin.html:240 +msgid "Perform Update" +msgstr "إجراء التحديث" + +#: cps/templates/admin.html:253 +msgid "Are you sure you want to restart?" +msgstr "هل أنت متأكد أنك تريد إعادة التشغيل؟" + +#: cps/templates/admin.html:258 cps/templates/admin.html:272 +#: cps/templates/admin.html:292 cps/templates/config_db.html:82 +msgid "OK" +msgstr "موافق" + +#: cps/templates/admin.html:259 cps/templates/admin.html:273 +#: cps/templates/book_edit.html:220 cps/templates/book_table.html:127 +#: cps/templates/config_db.html:66 cps/templates/config_edit.html:427 +#: cps/templates/config_view_edit.html:175 cps/templates/detail.html:350 +#: cps/templates/modal_dialogs.html:64 cps/templates/modal_dialogs.html:99 +#: cps/templates/modal_dialogs.html:117 cps/templates/modal_dialogs.html:135 +#: 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 "إلغاء" + +#: cps/templates/admin.html:271 +msgid "Are you sure you want to shutdown?" +msgstr "هل أنت متأكد أنك تريد إيقاف التشغيل؟" + +#: cps/templates/admin.html:283 +msgid "Updating, please do not reload this page" +msgstr "جاري التحديث، يرجى عدم إعادة تحميل هذه الصفحة" + +#: cps/templates/author.html:15 +msgid "via" +msgstr "عبر" + +#: cps/templates/author.html:23 +msgid "In Library" +msgstr "في المكتبة" + +#: 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 "الفرز حسب تاريخ الكتاب، الأحدث أولاً" + +#: 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 "الفرز حسب تاريخ الكتاب، الأقدم أولاً" + +#: 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 "فرز العنوان ترتيب أبجدي" + +#: 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 "فرز العنوان ترتيب أبجدي عكسي" + +#: 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 "الفرز حسب تاريخ النشر، الأحدث أولاً" + +#: 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 "الفرز حسب تاريخ النشر، الأقدم أولاً" + +#: 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 "تقليل" + +#: cps/templates/author.html:97 +msgid "More by" +msgstr "المزيد بواسطة" + +#: 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 "كتاب %(index)s من %(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/user_edit.html:33 +msgid "Language" +msgstr "اللغة" + +#: 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 "الناشر" + +#: cps/templates/basic_detail.html:70 cps/templates/detail.html:209 +#: cps/templates/listenmp3.html:111 +msgid "Published" +msgstr "تاريخ النشر" + +#: cps/templates/basic_detail.html:76 cps/templates/detail.html:286 +#: cps/templates/listenmp3.html:177 +msgid "Description:" +msgstr "الوصف:" + +#: cps/templates/basic_index.html:7 cps/templates/layout.html:175 +msgid "Previous" +msgstr "السابق" + +#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22 +#: cps/templates/layout.html:190 +msgid "Next" +msgstr "التالي" + +#: cps/templates/basic_index.html:18 cps/templates/search.html:6 +msgid "No Results Found" +msgstr "لم يتم العثور على نتائج" + +#: cps/templates/basic_layout.html:17 cps/templates/layout.html:26 +#: cps/templates/login.html:30 +msgid "Home" +msgstr "الرئيسية" + +#: cps/templates/basic_layout.html:21 cps/templates/layout.html:48 +msgid "Search Library" +msgstr "البحث في المكتبة" + +#: cps/templates/basic_layout.html:29 cps/templates/layout.html:73 +#: cps/templates/layout.html:99 +msgid "Logout" +msgstr "تسجيل الخروج" + +#: cps/templates/basic_layout.html:35 +msgid "Normal Theme" +msgstr "السمة العادية" + +#: cps/templates/book_edit.html:11 +msgid "Delete Book" +msgstr "حذف الكتاب" + +#: cps/templates/book_edit.html:14 +msgid "Delete formats:" +msgstr "حذف التنسيقات:" + +#: cps/templates/book_edit.html:25 +msgid "Convert book format:" +msgstr "تحويل تنسيق الكتاب:" + +#: cps/templates/book_edit.html:30 +msgid "Convert from:" +msgstr "تحويل من:" + +#: cps/templates/book_edit.html:32 cps/templates/book_edit.html:39 +msgid "select an option" +msgstr "اختر خيارًا" + +#: cps/templates/book_edit.html:37 +msgid "Convert to:" +msgstr "تحويل إلى:" + +#: cps/templates/book_edit.html:46 +msgid "Convert book" +msgstr "تحويل الكتاب" + +#: cps/templates/book_edit.html:53 cps/templates/layout.html:80 +#: cps/templates/layout.html:137 +msgid "Uploading..." +msgstr "جاري التحميل..." + +#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257 +#: cps/templates/layout.html:80 cps/templates/layout.html:206 +#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163 +msgid "Close" +msgstr "إغلاق" + +#: cps/templates/book_edit.html:53 cps/templates/layout.html:80 +msgid "Error" +msgstr "خطأ" + +#: cps/templates/book_edit.html:53 cps/templates/layout.html:80 +msgid "Upload done, processing, please wait..." +msgstr "تم التحميل، جاري المعالجة، يرجى الانتظار..." + +#: cps/templates/book_edit.html:58 +msgid "Upload Format" +msgstr "تحميل التنسيق" + +#: cps/templates/book_edit.html:71 cps/templates/search_form.html:8 +msgid "Book Title" +msgstr "عنوان الكتاب" + +#: 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 "المؤلف" + +#: cps/templates/book_edit.html:82 cps/templates/search_form.html:52 +msgid "Tags" +msgstr "العلامات" + +#: cps/templates/book_edit.html:90 +msgid "Series ID" +msgstr "معرف السلسلة" + +#: cps/templates/book_edit.html:93 +msgid "Published Date" +msgstr "تاريخ النشر" + +#: cps/templates/book_edit.html:110 +msgid "Rating" +msgstr "التقييم" + +#: 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 "الوصف" + +#: cps/templates/book_edit.html:118 +msgid "Identifiers" +msgstr "المعرفات" + +#: cps/templates/book_edit.html:122 cps/templates/book_edit.html:306 +msgid "Identifier Type" +msgstr "نوع المعرف" + +#: cps/templates/book_edit.html:123 cps/templates/book_edit.html:307 +msgid "Identifier Value" +msgstr "قيمة المعرف" + +#: cps/templates/book_edit.html:124 cps/templates/book_edit.html:308 +#: cps/templates/user_table.html:24 +msgid "Remove" +msgstr "إزالة" + +#: cps/templates/book_edit.html:129 +msgid "Add Identifier" +msgstr "إضافة معرف" + +#: cps/templates/book_edit.html:133 +msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" +msgstr "جلب الغلاف من الرابط (JPEG - سيتم تنزيل الصورة وتخزينها في قاعدة البيانات)" + +#: cps/templates/book_edit.html:137 +msgid "Upload Cover from Local Disk" +msgstr "تحميل الغلاف من القرص المحلي" + +#: cps/templates/book_edit.html:149 cps/templates/search_form.html:46 +#: cps/templates/search_form.html:167 +msgid "Yes" +msgstr "نعم" + +#: cps/templates/book_edit.html:150 cps/templates/search_form.html:47 +#: cps/templates/search_form.html:168 +msgid "No" +msgstr "لا" + +#: cps/templates/book_edit.html:215 +msgid "View Book on Save" +msgstr "عرض الكتاب عند الحفظ" + +#: cps/templates/book_edit.html:218 cps/templates/book_edit.html:236 +msgid "Fetch Metadata" +msgstr "جلب البيانات الوصفية" + +#: cps/templates/book_edit.html:219 cps/templates/config_db.html:65 +#: cps/templates/config_edit.html:426 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 "حفظ" + +#: cps/templates/book_edit.html:239 +msgid "Keyword" +msgstr "كلمة مفتاحية" + +#: cps/templates/book_edit.html:240 +msgid "Search keyword" +msgstr "كلمة البحث" + +#: cps/templates/book_edit.html:246 +msgid "Click the cover to load metadata to the form" +msgstr "انقر على الغلاف لتحميل البيانات الوصفية إلى النموذج" + +#: cps/templates/book_edit.html:253 cps/templates/book_edit.html:292 +msgid "Loading..." +msgstr "جاري التحميل..." + +#: cps/templates/book_edit.html:284 cps/templates/book_edit.html:298 +msgid "Source" +msgstr "المصدر" + +#: cps/templates/book_edit.html:293 +msgid "Search error!" +msgstr "خطأ في البحث!" + +#: cps/templates/book_edit.html:294 +msgid "No Result(s) found! Please try another keyword." +msgstr "لم يتم العثور على نتائج! يرجى تجربة كلمة مفتاحية أخرى." + +#: cps/templates/book_table.html:12 cps/templates/book_table.html:69 +#: cps/templates/user_table.html:14 cps/templates/user_table.html:77 +#: cps/templates/user_table.html:100 +msgid "This Field is Required" +msgstr "هذا الحقل مطلوب" + +#: cps/templates/book_table.html:37 +msgid "Merge selected books" +msgstr "دمج الكتب المختارة" + +#: cps/templates/book_table.html:38 cps/templates/user_table.html:124 +msgid "Remove Selections" +msgstr "إزالة التحديدات" + +#: cps/templates/book_table.html:41 +msgid "Exchange author and title" +msgstr "تبديل المؤلف والعنوان" + +#: cps/templates/book_table.html:47 +msgid "Update Title Sort automatically" +msgstr "تحديث ترتيب العنوان تلقائيًا" + +#: cps/templates/book_table.html:51 +msgid "Update Author Sort automatically" +msgstr "تحديث ترتيب المؤلف تلقائيًا" + +#: cps/templates/book_table.html:63 cps/templates/book_table.html:69 +msgid "Enter Title" +msgstr "أدخل العنوان" + +#: cps/templates/book_table.html:63 cps/templates/config_view_edit.html:24 +#: cps/templates/shelf_edit.html:8 +msgid "Title" +msgstr "العنوان" + +#: cps/templates/book_table.html:64 +msgid "Enter Title Sort" +msgstr "أدخل ترتيب العنوان" + +#: cps/templates/book_table.html:64 +msgid "Title Sort" +msgstr "ترتيب العنوان" + +#: cps/templates/book_table.html:65 +msgid "Enter Author Sort" +msgstr "أدخل ترتيب المؤلف" + +#: cps/templates/book_table.html:65 +msgid "Author Sort" +msgstr "ترتيب المؤلف" + +#: cps/templates/book_table.html:66 +msgid "Enter Authors" +msgstr "أدخل المؤلفين" + +#: cps/templates/book_table.html:67 +msgid "Enter Categories" +msgstr "أدخل الفئات" + +#: cps/templates/book_table.html:68 +msgid "Enter Series" +msgstr "أدخل السلاسل" + +#: cps/templates/book_table.html:69 +msgid "Series Index" +msgstr "فهرس السلسلة" + +#: cps/templates/book_table.html:70 +msgid "Enter Languages" +msgstr "أدخل اللغات" + +#: cps/templates/book_table.html:71 +msgid "Publishing Date" +msgstr "تاريخ النشر" + +#: cps/templates/book_table.html:72 +msgid "Enter Publishers" +msgstr "أدخل الناشرين" + +#: cps/templates/book_table.html:73 +msgid "Enter comments" +msgstr "أدخل التعليقات" + +#: cps/templates/book_table.html:73 +msgid "Comments" +msgstr "التعليقات" + +#: cps/templates/book_table.html:75 +msgid "Archive Status" +msgstr "حالة الأرشيف" + +#: cps/templates/book_table.html:77 cps/templates/search_form.html:42 +msgid "Read Status" +msgstr "حالة القراءة" + +#: cps/templates/book_table.html:80 cps/templates/book_table.html:82 +#: cps/templates/book_table.html:84 cps/templates/book_table.html:86 +#: cps/templates/book_table.html:90 cps/templates/book_table.html:92 +#: cps/templates/book_table.html:96 +msgid "Enter " +msgstr "أدخل " + +#: cps/templates/book_table.html:113 cps/templates/modal_dialogs.html:46 +#: cps/templates/tasks.html:37 +msgid "Are you really sure?" +msgstr "هل أنت متأكد حقًا؟" + +#: cps/templates/book_table.html:117 +msgid "Books with Title will be merged from:" +msgstr "سيتم دمج الكتب ذات العنوان من:" + +#: cps/templates/book_table.html:121 +msgid "Into Book with Title:" +msgstr "إلى الكتاب ذي العنوان:" + +#: cps/templates/book_table.html:126 +msgid "Merge" +msgstr "دمج" + +#: cps/templates/config_db.html:12 +msgid "Location of Calibre Database" +msgstr "موقع قاعدة بيانات Calibre" + +#: cps/templates/config_db.html:21 +msgid "Separate Book Files from Library" +msgstr "فصل ملفات الكتب عن المكتبة" + +#: cps/templates/config_db.html:34 +msgid "Use Google Drive?" +msgstr "استخدام جوجل درايف؟" + +#: cps/templates/config_db.html:39 +msgid "Authenticate Google Drive" +msgstr "مصادقة جوجل درايف" + +#: cps/templates/config_db.html:44 +msgid "Google Drive Calibre folder" +msgstr "مجلد Calibre في جوجل درايف" + +#: cps/templates/config_db.html:52 +msgid "Metadata Watch Channel ID" +msgstr "معرف قناة مراقبة البيانات الوصفية" + +#: cps/templates/config_db.html:55 +msgid "Revoke" +msgstr "إلغاء" + +#: cps/templates/config_db.html:80 +msgid "New db location is invalid, please enter valid path" +msgstr "موقع قاعدة البيانات الجديدة غير صالح، يرجى إدخال مسار صالح" + +#: cps/templates/config_edit.html:18 +msgid "Server Configuration" +msgstr "تهيئة الخادم" + +#: cps/templates/config_edit.html:25 +msgid "Server Port" +msgstr "منفذ الخادم" + +#: cps/templates/config_edit.html:28 +msgid "SSL certfile location (leave it empty for non-SSL Servers)" +msgstr "موقع ملف شهادة SSL (اتركه فارغًا للخوادم غير SSL)" + +#: cps/templates/config_edit.html:35 +msgid "SSL Keyfile location (leave it empty for non-SSL Servers)" +msgstr "موقع ملف مفتاح SSL (اتركه فارغًا للخوادم غير SSL)" + +#: cps/templates/config_edit.html:43 +msgid "Update Channel" +msgstr "قناة التحديث" + +#: cps/templates/config_edit.html:45 +msgid "Stable" +msgstr "مستقر" + +#: cps/templates/config_edit.html:46 +msgid "Nightly" +msgstr "ليلي" + +#: cps/templates/config_edit.html:50 +msgid "Trusted Hosts (Comma Separated)" +msgstr "المضيفون الموثوق بهم (مفصولة بفاصلة)" + +#: cps/templates/config_edit.html:61 +msgid "Logfile Configuration" +msgstr "تهيئة ملف السجل" + +#: cps/templates/config_edit.html:77 +msgid "Location and name of logfile (calibre-web.log for no entry)" +msgstr "موقع واسم ملف السجل (calibre-web.log لعدم وجود إدخال)" + +#: cps/templates/config_edit.html:82 +msgid "Enable Access Log" +msgstr "تمكين سجل الوصول" + +#: cps/templates/config_edit.html:85 +msgid "Location and name of access logfile (access.log for no entry)" +msgstr "موقع واسم ملف سجل الوصول (access.log لعدم وجود إدخال)" + +#: cps/templates/config_edit.html:96 +msgid "Feature Configuration" +msgstr "تهيئة الميزات" + +#: cps/templates/config_edit.html:104 +msgid "Convert non-English characters in title and author while saving to disk" +msgstr "تحويل الأحرف غير الإنجليزية في العنوان والمؤلف أثناء الحفظ إلى القرص" + +#: cps/templates/config_edit.html:108 +msgid "Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/Kepubify binaries)" +msgstr "تضمين البيانات الوصفية في ملف الكتاب الإلكتروني عند التنزيل/التحويل/البريد الإلكتروني (يتطلب ملفات Calibre/Kepubify الثنائية)" + +#: cps/templates/config_edit.html:112 +msgid "Enable Uploads" +msgstr "تمكين التحميلات" + +#: cps/templates/config_edit.html:112 +msgid "(Please ensure that users also have upload permissions)" +msgstr "(يرجى التأكد من أن المستخدمين لديهم أذونات التحميل أيضًا)" + +#: cps/templates/config_edit.html:116 +msgid "Allowed Upload Fileformats" +msgstr "تنسيقات الملفات المسموح بتحميلها" + +#: cps/templates/config_edit.html:122 +msgid "Enable Anonymous Browsing" +msgstr "تمكين التصفح المجهول" + +#: cps/templates/config_edit.html:126 +msgid "Enable Public Registration" +msgstr "تمكين التسجيل العام" + +#: cps/templates/config_edit.html:131 +msgid "Use Email as Username" +msgstr "استخدام البريد الإلكتروني كاسم مستخدم" + +#: cps/templates/config_edit.html:136 +msgid "Enable Magic Link Remote Login" +msgstr "تمكين تسجيل الدخول عن بعد بالرابط السحري" + +#: cps/templates/config_edit.html:141 +msgid "Enable Kobo sync" +msgstr "تمكين مزامنة Kobo" + +#: cps/templates/config_edit.html:146 +msgid "Proxy unknown requests to Kobo Store" +msgstr "وكيل الطلبات غير المعروفة إلى متجر Kobo" + +#: cps/templates/config_edit.html:149 +msgid "Server External Port (for port forwarded API calls)" +msgstr "المنفذ الخارجي للخادم (لمكالمات API المعاد توجيهها عبر المنفذ)" + +#: cps/templates/config_edit.html:157 +msgid "Use Goodreads" +msgstr "استخدام Goodreads" + +#: cps/templates/config_edit.html:161 +msgid "Goodreads API Key" +msgstr "مفتاح API لـ Goodreads" + +#: cps/templates/config_edit.html:168 +msgid "Allow Reverse Proxy Authentication" +msgstr "السماح بمصادقة الوكيل العكسي" + +#: cps/templates/config_edit.html:179 +msgid "Login type" +msgstr "نوع تسجيل الدخول" + +#: cps/templates/config_edit.html:181 +msgid "Use Standard Authentication" +msgstr "استخدام المصادقة القياسية" + +#: cps/templates/config_edit.html:183 +msgid "Use LDAP Authentication" +msgstr "استخدام مصادقة LDAP" + +#: cps/templates/config_edit.html:186 +msgid "Use OAuth" +msgstr "استخدام OAuth" + +#: cps/templates/config_edit.html:193 +msgid "LDAP Server Host Name or IP Address" +msgstr "اسم مضيف خادم LDAP أو عنوان IP" + +#: cps/templates/config_edit.html:197 +msgid "LDAP Server Port" +msgstr "منفذ خادم LDAP" + +#: cps/templates/config_edit.html:201 +msgid "LDAP Encryption" +msgstr "تشفير LDAP" + +#: cps/templates/config_edit.html:204 +msgid "TLS" +msgstr "TLS" + +#: cps/templates/config_edit.html:205 +msgid "SSL" +msgstr "SSL" + +#: cps/templates/config_edit.html:209 +msgid "LDAP CACertificate Path (Only needed for Client Certificate Authentication)" +msgstr "مسار شهادة LDAP CA (مطلوب فقط لمصادقة شهادة العميل)" + +#: cps/templates/config_edit.html:216 +msgid "LDAP Certificate Path (Only needed for Client Certificate Authentication)" +msgstr "مسار شهادة LDAP (مطلوب فقط لمصادقة شهادة العميل)" + +#: cps/templates/config_edit.html:223 +msgid "LDAP Keyfile Path (Only needed for Client Certificate Authentication)" +msgstr "مسار ملف مفتاح LDAP (مطلوب فقط لمصادقة شهادة العميل)" + +#: cps/templates/config_edit.html:232 +msgid "LDAP Authentication" +msgstr "مصادقة LDAP" + +#: cps/templates/config_edit.html:234 +msgid "Anonymous" +msgstr "مجهول" + +#: cps/templates/config_edit.html:235 +msgid "Unauthenticated" +msgstr "غير مصادق عليه" + +#: cps/templates/config_edit.html:236 +msgid "Simple" +msgstr "بسيط" + +#: cps/templates/config_edit.html:241 +msgid "LDAP Administrator Username" +msgstr "اسم مستخدم مسؤول LDAP" + +#: cps/templates/config_edit.html:247 +msgid "LDAP Administrator Password" +msgstr "كلمة مرور مسؤول LDAP" + +#: cps/templates/config_edit.html:252 +msgid "LDAP Distinguished Name (DN)" +msgstr "الاسم المميز لـ LDAP (DN)" + +#: cps/templates/config_edit.html:256 +msgid "LDAP User Object Filter" +msgstr "مرشح كائن مستخدم LDAP" + +#: cps/templates/config_edit.html:261 +msgid "LDAP Server is OpenLDAP?" +msgstr "هل خادم LDAP هو OpenLDAP؟" + +#: cps/templates/config_edit.html:263 +msgid "Following Settings are Needed For User Import" +msgstr "الإعدادات التالية مطلوبة لاستيراد المستخدمين" + +#: cps/templates/config_edit.html:265 +msgid "LDAP Group Object Filter" +msgstr "مرشح كائن مجموعة LDAP" + +#: cps/templates/config_edit.html:269 +msgid "LDAP Group Name" +msgstr "اسم مجموعة LDAP" + +#: cps/templates/config_edit.html:273 +msgid "LDAP Group Members Field" +msgstr "حقل أعضاء مجموعة LDAP" + +#: cps/templates/config_edit.html:277 +msgid "LDAP Member User Filter Detection" +msgstr "اكتشاف مرشح مستخدم عضو LDAP" + +#: cps/templates/config_edit.html:279 +msgid "Autodetect" +msgstr "اكتشاف تلقائي" + +#: cps/templates/config_edit.html:280 +msgid "Custom Filter" +msgstr "مرشح مخصص" + +#: cps/templates/config_edit.html:285 +msgid "LDAP Member User Filter" +msgstr "مرشح مستخدم عضو LDAP" + +#: cps/templates/config_edit.html:296 +#, python-format +msgid "Obtain %(provider)s OAuth Credential" +msgstr "الحصول على بيانات اعتماد OAuth لـ %(provider)s" + +#: cps/templates/config_edit.html:299 +#, python-format +msgid "%(provider)s OAuth Client Id" +msgstr "معرف عميل OAuth لـ %(provider)s" + +#: cps/templates/config_edit.html:303 +#, python-format +msgid "%(provider)s OAuth Client Secret" +msgstr "سر عميل OAuth لـ %(provider)s" + +#: cps/templates/config_edit.html:319 +msgid "External binaries" +msgstr "الملفات الثنائية الخارجية" + +#: cps/templates/config_edit.html:325 +msgid "Path to Calibre Binaries" +msgstr "مسار ملفات Calibre الثنائية" + +#: cps/templates/config_edit.html:333 +msgid "Calibre E-Book Converter Settings" +msgstr "إعدادات محول الكتب الإلكترونية Calibre" + +#: cps/templates/config_edit.html:336 +msgid "Path to Kepubify E-Book Converter" +msgstr "مسار محول الكتب الإلكترونية Kepubify" + +#: cps/templates/config_edit.html:344 +msgid "Location of Unrar binary" +msgstr "موقع ملف Unrar الثنائي" + +#: cps/templates/config_edit.html:360 +msgid "Security Settings" +msgstr "إعدادات الأمان" + +#: cps/templates/config_edit.html:368 +msgid "Limit failed login attempts" +msgstr "تحديد محاولات تسجيل الدخول الفاشلة" + +#: cps/templates/config_edit.html:372 +msgid "Configure Backend for Limiter" +msgstr "تهيئة الواجهة الخلفية للمُحدد" + +#: cps/templates/config_edit.html:376 +msgid "Options for Limiter Backend" +msgstr "خيارات الواجهة الخلفية للمُحدد" + +#: cps/templates/config_edit.html:382 +msgid "Check if file extensions matches file content on upload" +msgstr "التحقق مما إذا كانت امتدادات الملفات تتطابق مع محتوى الملف عند التحميل" + +#: cps/templates/config_edit.html:385 +msgid "Session protection" +msgstr "حماية الجلسة" + +#: cps/templates/config_edit.html:387 +msgid "Basic" +msgstr "أساسي" + +#: cps/templates/config_edit.html:388 +msgid "Strong" +msgstr "قوي" + +#: cps/templates/config_edit.html:393 +msgid "User Password policy" +msgstr "سياسة كلمة مرور المستخدم" + +#: cps/templates/config_edit.html:397 +msgid "Minimum password length" +msgstr "الحد الأدنى لطول كلمة المرور" + +#: cps/templates/config_edit.html:402 +msgid "Enforce number" +msgstr "فرض الأرقام" + +#: cps/templates/config_edit.html:406 +msgid "Enforce lowercase characters" +msgstr "فرض الأحرف الصغيرة" + +#: cps/templates/config_edit.html:410 +msgid "Enforce uppercase characters" +msgstr "فرض الأحرف الكبيرة" + +#: cps/templates/config_edit.html:414 +msgid "Enforce characters (needed For Chinese/Japanese/Korean Characters)" +msgstr "فرض الأحرف (مطلوب للأحرف الصينية/اليابانية/الكورية)" + +#: cps/templates/config_edit.html:418 +msgid "Enforce special characters" +msgstr "فرض الأحرف الخاصة" + +#: cps/templates/config_view_edit.html:17 +msgid "View Configuration" +msgstr "تهيئة العرض" + +#: cps/templates/config_view_edit.html:32 +msgid "No. of Random Books to Display" +msgstr "عدد الكتب العشوائية للعرض" + +#: cps/templates/config_view_edit.html:36 +msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" +msgstr "عدد المؤلفين للعرض قبل الإخفاء (0=تعطيل الإخفاء)" + +#: cps/templates/config_view_edit.html:40 cps/templates/readcbr.html:101 +msgid "Theme" +msgstr "السمة" + +#: cps/templates/config_view_edit.html:42 +msgid "Standard Theme" +msgstr "السمة القياسية" + +#: cps/templates/config_view_edit.html:43 +msgid "caliBlur! Dark Theme" +msgstr "caliBlur! السمة الداكنة" + +#: cps/templates/config_view_edit.html:47 +msgid "Regular Expression for Ignoring Columns" +msgstr "تعبير عادي لتجاهل الأعمدة" + +#: cps/templates/config_view_edit.html:51 +msgid "Link Read/Unread Status to Calibre Column" +msgstr "ربط حالة المقروء/غير المقروء بعمود Calibre" + +#: cps/templates/config_view_edit.html:60 +msgid "View Restrictions based on Calibre column" +msgstr "قيود العرض بناءً على عمود Calibre" + +#: cps/templates/config_view_edit.html:69 +msgid "Regular Expression for Title Sorting" +msgstr "تعبير عادي لترتيب العنوان" + +#: cps/templates/config_view_edit.html:80 +msgid "Default Settings for New Users" +msgstr "الإعدادات الافتراضية للمستخدمين الجدد" + +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 +msgid "Admin User" +msgstr "مستخدم مسؤول" + +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 +msgid "Allow Downloads" +msgstr "السماح بالتحميلات" + +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 +msgid "Allow eBook Viewer" +msgstr "السماح بعارض الكتب الإلكترونية" + +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 +msgid "Allow Uploads" +msgstr "السماح بالتحميلات" + +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 +msgid "Allow Edit" +msgstr "السماح بالتحرير" + +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 +msgid "Allow Delete Books" +msgstr "السماح بحذف الكتب" + +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 +msgid "Allow Changing Password" +msgstr "السماح بتغيير كلمة المرور" + +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 +msgid "Allow Editing Public Shelves" +msgstr "السماح بتحرير الرفوف العامة" + +#: cps/templates/config_view_edit.html:123 +msgid "Default Language" +msgstr "اللغة الافتراضية" + +#: cps/templates/config_view_edit.html:131 +msgid "Default Visible Language of Books" +msgstr "اللغة المرئية الافتراضية للكتب" + +#: cps/templates/config_view_edit.html:147 +msgid "Default Visibilities for New Users" +msgstr "الرؤى الافتراضية للمستخدمين الجدد" + +#: 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 "عرض الكتب العشوائية في عرض التفاصيل" + +#: cps/templates/config_view_edit.html:166 cps/templates/user_edit.html:87 +msgid "Add Allowed/Denied Tags" +msgstr "إضافة علامات مسموح بها/مرفوضة" + +#: cps/templates/config_view_edit.html:167 +msgid "Add Allowed/Denied custom column values" +msgstr "إضافة قيم أعمدة مخصصة مسموح بها/مرفوضة" + +#: cps/templates/detail.html:85 cps/templates/detail.html:99 +msgid "Read in Browser" +msgstr "قراءة في المتصفح" + +#: cps/templates/detail.html:108 cps/templates/detail.html:128 +msgid "Listen in Browser" +msgstr "استماع في المتصفح" + +#: cps/templates/detail.html:259 cps/templates/listenmp3.html:158 +msgid "Mark As Unread" +msgstr "وضع علامة كـ غير مقروء" + +#: cps/templates/detail.html:260 cps/templates/listenmp3.html:158 +msgid "Mark As Read" +msgstr "وضع علامة كـ مقروء" + +#: cps/templates/detail.html:262 +msgid "Mark Book as Read or Unread" +msgstr "وضع علامة على الكتاب كمقروء أو غير مقروء" + +#: cps/templates/detail.html:262 cps/templates/listenmp3.html:159 +msgid "Read" +msgstr "قراءة" + +#: cps/templates/detail.html:272 cps/templates/listenmp3.html:166 +msgid "Restore from archive" +msgstr "استعادة من الأرشيف" + +#: cps/templates/detail.html:273 cps/templates/listenmp3.html:166 +msgid "Add to archive" +msgstr "إضافة إلى الأرشيف" + +#: 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 "وضع علامة على الكتاب كـ مؤرشف أو لا، لإخفائه في Calibre-Web وحذفه من قارئ Kobo" + +#: cps/templates/detail.html:275 +msgid "Archive" +msgstr "أرشفة" + +#: cps/templates/detail.html:301 cps/templates/listenmp3.html:190 +#: cps/templates/search.html:16 +msgid "Add to shelf" +msgstr "إضافة إلى الرف" + +#: cps/templates/detail.html:313 cps/templates/detail.html:332 +#: cps/templates/feed.xml:81 cps/templates/layout.html:157 +#: cps/templates/listenmp3.html:201 cps/templates/listenmp3.html:218 +#: cps/templates/search.html:22 +msgid "(Public)" +msgstr "(عام)" + +#: cps/templates/detail.html:348 +msgid "Edit Metadata" +msgstr "تحرير البيانات الوصفية" + +#: cps/templates/email_edit.html:13 +msgid "Email Account Type" +msgstr "نوع حساب البريد الإلكتروني" + +#: cps/templates/email_edit.html:15 +msgid "Standard Email Account" +msgstr "حساب بريد إلكتروني قياسي" + +#: cps/templates/email_edit.html:16 +msgid "Gmail Account" +msgstr "حساب Gmail" + +#: cps/templates/email_edit.html:22 +msgid "Setup Gmail Account" +msgstr "إعداد حساب Gmail" + +#: cps/templates/email_edit.html:24 +msgid "Revoke Gmail Access" +msgstr "إلغاء الوصول إلى Gmail" + +#: cps/templates/email_edit.html:42 +msgid "STARTTLS" +msgstr "STARTTLS" + +#: cps/templates/email_edit.html:43 +msgid "SSL/TLS" +msgstr "SSL/TLS" + +#: cps/templates/email_edit.html:51 +msgid "SMTP Password" +msgstr "كلمة مرور SMTP" + +#: cps/templates/email_edit.html:58 +msgid "Attachment Size Limit" +msgstr "حد حجم المرفقات" + +#: cps/templates/email_edit.html:66 +msgid "Save and Send Test Email" +msgstr "حفظ وإرسال بريد إلكتروني اختباري" + +#: 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 "رجوع" + +#: cps/templates/email_edit.html:74 +msgid "Allowed Domains (Whitelist)" +msgstr "النطاقات المسموح بها (القائمة البيضاء)" + +#: cps/templates/email_edit.html:78 cps/templates/email_edit.html:105 +msgid "Add Domain" +msgstr "إضافة نطاق" + +#: cps/templates/email_edit.html:81 cps/templates/email_edit.html:108 +#: cps/templates/user_table.html:27 +msgid "Add" +msgstr "إضافة" + +#: cps/templates/email_edit.html:86 cps/templates/email_edit.html:96 +msgid "Enter domainname" +msgstr "أدخل اسم النطاق" + +#: cps/templates/email_edit.html:92 +msgid "Denied Domains (Blacklist)" +msgstr "النطاقات المرفوضة (القائمة السوداء)" + +#: 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 "افتح ملف .kobo/Kobo/Kobo eReader.conf في محرر نصوص وأضف (أو عدّل):" + +#: cps/templates/generate_kobo_auth_url.html:11 +msgid "Kobo Token:" +msgstr "رمز Kobo:" + +#: cps/templates/grid.html:21 +msgid "List" +msgstr "قائمة" + +#: cps/templates/http_error.html:34 +msgid "Calibre-Web Instance is unconfigured, please contact your administrator" +msgstr "مثيل Calibre-Web غير مهيأ، يرجى الاتصال بمسؤول النظام" + +#: cps/templates/http_error.html:44 +msgid "Create Issue" +msgstr "إنشاء مشكلة" + +#: cps/templates/http_error.html:52 +msgid "Return to Database config" +msgstr "العودة إلى تهيئة قاعدة البيانات" + +#: cps/templates/http_error.html:54 +msgid "Return to Home" +msgstr "العودة إلى الرئيسية" + +#: cps/templates/http_error.html:57 +msgid "Logout User" +msgstr "تسجيل خروج المستخدم" + +#: cps/templates/index.html:71 +msgid "Sort ascending according to download count" +msgstr "الفرز تصاعديًا حسب عدد التنزيلات" + +#: cps/templates/index.html:72 +msgid "Sort descending according to download count" +msgstr "الفرز تنازليًا حسب عدد التنزيلات" + +#: cps/templates/index.html:78 cps/templates/search.html:35 +#: cps/templates/shelf.html:24 +msgid "Sort authors in alphabetical order" +msgstr "فرز المؤلفين ترتيب أبجدي" + +#: cps/templates/index.html:79 cps/templates/search.html:36 +#: cps/templates/shelf.html:25 +msgid "Sort authors in reverse alphabetical order" +msgstr "فرز المؤلفين ترتيب أبججدي عكسي" + +#: cps/templates/index.html:83 +msgid "Sort ascending according to series index" +msgstr "الفرز تصاعديًا حسب فهرس السلسلة" + +#: cps/templates/index.html:84 +msgid "Sort descending according to series index" +msgstr "الفرز تنازليًا حسب فهرس السلسلة" + +#: cps/templates/index.xml:7 +msgid "Start" +msgstr "بدء" + +#: cps/templates/index.xml:19 +msgid "Alphabetical Books" +msgstr "الكتب الأبجدية" + +#: cps/templates/index.xml:23 +msgid "Books sorted alphabetically" +msgstr "الكتب مرتبة أبجديًا" + +#: cps/templates/index.xml:31 +msgid "Popular publications from this catalog based on Downloads." +msgstr "المنشورات الشائعة من هذا الكتالوج بناءً على التنزيلات." + +#: cps/templates/index.xml:40 +msgid "Popular publications from this catalog based on Rating." +msgstr "المنشورات الشائعة من هذا الكتالوج بناءً على التقييم." + +#: cps/templates/index.xml:45 +msgid "Recently added Books" +msgstr "الكتب المضافة حديثًا" + +#: cps/templates/index.xml:49 +msgid "The latest Books" +msgstr "أحدث الكتب" + +#: cps/templates/index.xml:54 +msgid "Random Books" +msgstr "كتب عشوائية" + +#: cps/templates/index.xml:83 +msgid "Books ordered by Author" +msgstr "الكتب مرتبة حسب المؤلف" + +#: cps/templates/index.xml:92 +msgid "Books ordered by publisher" +msgstr "الكتب مرتبة حسب الناشر" + +#: cps/templates/index.xml:101 +msgid "Books ordered by category" +msgstr "الكتب مرتبة حسب الفئة" + +#: cps/templates/index.xml:110 +msgid "Books ordered by series" +msgstr "الكتب مرتبة حسب السلسلة" + +#: cps/templates/index.xml:119 +msgid "Books ordered by Languages" +msgstr "الكتب مرتبة حسب اللغات" + +#: cps/templates/index.xml:128 +msgid "Books ordered by Rating" +msgstr "الكتب مرتبة حسب التقييم" + +#: cps/templates/index.xml:137 +msgid "Books ordered by file formats" +msgstr "الكتب مرتبة حسب تنسيقات الملفات" + +#: cps/templates/index.xml:142 cps/templates/layout.html:155 +#: cps/templates/search_form.html:88 +msgid "Shelves" +msgstr "الأرفف" + +#: cps/templates/index.xml:146 +msgid "Books organized in shelves" +msgstr "الكتب منظمة في أرفف" + +#: cps/templates/layout.html:32 +msgid "Toggle Navigation" +msgstr "تبديل التنقل" + +#: cps/templates/layout.html:59 +msgid "Simple Theme" +msgstr "السمة البسيطة" + +#: cps/templates/layout.html:67 cps/templates/layout.html:97 +msgid "Account" +msgstr "الحساب" + +#: cps/templates/layout.html:94 cps/templates/read.html:78 +#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96 +msgid "Settings" +msgstr "الإعدادات" + +#: cps/templates/layout.html:138 +msgid "Please do not refresh the page" +msgstr "يرجى عدم تحديث الصفحة" + +#: cps/templates/layout.html:148 +msgid "Browse" +msgstr "تصفح" + +#: cps/templates/layout.html:161 cps/templates/stats.html:3 +msgid "About" +msgstr "حول" + +#: cps/templates/layout.html:202 +msgid "Book Details" +msgstr "تفاصيل الكتاب" + +#: cps/templates/list.html:22 +msgid "Grid" +msgstr "شبكة" + +#: cps/templates/listenmp3.html:167 +msgid "Archived" +msgstr "مؤرشف" + +#: cps/templates/login.html:18 +msgid "Remember Me" +msgstr "تذكرني" + +#: cps/templates/login.html:23 +msgid "Forgot Password?" +msgstr "هل نسيت كلمة المرور؟" + +#: cps/templates/login.html:34 +msgid "Log in with Magic Link" +msgstr "تسجيل الدخول بالرابط السحري" + +#: cps/templates/logviewer.html:6 +msgid "Show Calibre-Web Log: " +msgstr "عرض سجل Calibre-Web: " + +#: cps/templates/logviewer.html:8 +msgid "Calibre-Web Log: " +msgstr "سجل Calibre-Web: " + +#: cps/templates/logviewer.html:8 +msgid "Stream output, can't be displayed" +msgstr "إخراج البث، لا يمكن عرضه" + +#: cps/templates/logviewer.html:12 +msgid "Show Access Log: " +msgstr "عرض سجل الوصول: " + +#: cps/templates/logviewer.html:18 +msgid "Download Calibre-Web Log" +msgstr "تنزيل سجل Calibre-Web" + +#: cps/templates/logviewer.html:21 +msgid "Download Access Log" +msgstr "تنزيل سجل الوصول" + +#: cps/templates/modal_dialogs.html:6 +msgid "Select Allowed/Denied Tags" +msgstr "تحديد العلامات المسموح بها/المرفوضة" + +#: cps/templates/modal_dialogs.html:7 +msgid "Select Allowed/Denied Custom Column Values" +msgstr "تحديد قيم الأعمدة المخصصة المسموح بها/المرفوضة" + +#: cps/templates/modal_dialogs.html:8 +msgid "Select Allowed/Denied Tags of User" +msgstr "تحديد علامات المستخدم المسموح بها/المرفوضة" + +#: cps/templates/modal_dialogs.html:9 +msgid "Select Allowed/Denied Custom Column Values of User" +msgstr "تحديد قيم الأعمدة المخصصة المسموح بها/المرفوضة للمستخدم" + +#: cps/templates/modal_dialogs.html:15 +msgid "Enter Tag" +msgstr "أدخل العلامة" + +#: cps/templates/modal_dialogs.html:24 +msgid "Add View Restriction" +msgstr "إضافة قيد العرض" + +#: cps/templates/modal_dialogs.html:50 +msgid "This book format will be permanently erased from database" +msgstr "سيتم مسح تنسيق الكتاب هذا بشكل دائم من قاعدة البيانات" + +#: cps/templates/modal_dialogs.html:51 +msgid "This book will be permanently erased from database" +msgstr "سيتم مسح هذا الكتاب بشكل دائم من قاعدة البيانات" + +#: cps/templates/modal_dialogs.html:52 +msgid "and hard disk" +msgstr "والقرص الصلب" + +#: cps/templates/modal_dialogs.html:56 +msgid "Important Kobo Note: deleted books will remain on any paired Kobo device." +msgstr "ملاحظة Kobo هامة: الكتب المحذوفة ستبقى على أي جهاز Kobo مقترن." + +#: cps/templates/modal_dialogs.html:57 +msgid "Books must first be archived and the device synced before a book can safely be deleted." +msgstr "يجب أولاً أرشفة الكتب ومزامنة الجهاز قبل أن يتم حذف الكتاب بأمان." + +#: cps/templates/modal_dialogs.html:76 +msgid "Choose File Location" +msgstr "اختر موقع الملف" + +#: cps/templates/modal_dialogs.html:82 +msgid "type" +msgstr "النوع" + +#: cps/templates/modal_dialogs.html:83 +msgid "name" +msgstr "الاسم" + +#: cps/templates/modal_dialogs.html:84 +msgid "size" +msgstr "الحجم" + +#: cps/templates/modal_dialogs.html:90 +msgid "Parent Directory" +msgstr "الدليل الأصل" + +#: cps/templates/modal_dialogs.html:98 +msgid "Select" +msgstr "تحديد" + +#: cps/templates/modal_dialogs.html:134 cps/templates/tasks.html:46 +msgid "Ok" +msgstr "موافق" + +#: cps/templates/osd.xml:5 +msgid "Calibre-Web eBook Catalog" +msgstr "كتالوج الكتب الإلكترونية Calibre-Web" + +#: cps/templates/read.html:7 +msgid "epub Reader" +msgstr "قارئ epub" + +#: cps/templates/read.html:80 +msgid "Choose a theme below:" +msgstr "اختر سمة أدناه:" + +#: cps/templates/read.html:84 cps/templates/readcbr.html:104 +msgid "Light" +msgstr "فاتح" + +#: cps/templates/read.html:86 cps/templates/readcbr.html:105 +msgid "Dark" +msgstr "داكن" + +#: cps/templates/read.html:88 +msgid "Sepia" +msgstr "بني داكن" + +#: cps/templates/read.html:90 +msgid "Black" +msgstr "أسود" + +#: cps/templates/read.html:95 +msgid "Reflow text when sidebars are open." +msgstr "إعادة تدفق النص عند فتح الأشرطة الجانبية." + +#: cps/templates/read.html:100 +msgid "Font Sizes" +msgstr "أحجام الخطوط" + +#: cps/templates/read.html:105 +msgid "Font" +msgstr "الخط" + +#: cps/templates/read.html:106 +msgid "Default" +msgstr "افتراضي" + +#: cps/templates/read.html:107 +msgid "Yahei" +msgstr "ياهاي" + +#: cps/templates/read.html:108 +msgid "SimSun" +msgstr "SimSun" + +#: cps/templates/read.html:109 +msgid "KaiTi" +msgstr "KaiTi" + +#: cps/templates/read.html:110 +msgid "Arial" +msgstr "Arial" + +#: cps/templates/read.html:113 +msgid "Spread" +msgstr "انتشار" + +#: cps/templates/read.html:114 +msgid "Two columns" +msgstr "عمودان" + +#: cps/templates/read.html:115 +msgid "One column" +msgstr "عمود واحد" + +#: cps/templates/readcbr.html:8 +msgid "Comic Reader" +msgstr "قارئ القصص المصورة" + +#: cps/templates/readcbr.html:75 +msgid "Keyboard Shortcuts" +msgstr "اختصارات لوحة المفاتيح" + +#: cps/templates/readcbr.html:78 +msgid "Previous Page" +msgstr "الصفحة السابقة" + +#: cps/templates/readcbr.html:79 cps/templates/readcbr.html:159 +msgid "Next Page" +msgstr "الصفحة التالية" + +#: cps/templates/readcbr.html:80 +msgid "Single Page Display" +msgstr "عرض صفحة واحدة" + +#: cps/templates/readcbr.html:81 +msgid "Long Strip Display" +msgstr "عرض شريط طويل" + +#: cps/templates/readcbr.html:82 +msgid "Scale to Best" +msgstr "مقياس إلى الأفضل" + +#: cps/templates/readcbr.html:83 +msgid "Scale to Width" +msgstr "مقياس إلى العرض" + +#: cps/templates/readcbr.html:84 +msgid "Scale to Height" +msgstr "مقياس إلى الارتفاع" + +#: cps/templates/readcbr.html:85 +msgid "Scale to Native" +msgstr "مقياس إلى الأصلي" + +#: cps/templates/readcbr.html:86 +msgid "Rotate Right" +msgstr "تدوير لليمين" + +#: cps/templates/readcbr.html:87 +msgid "Rotate Left" +msgstr "تدوير لليسار" + +#: cps/templates/readcbr.html:88 +msgid "Flip Image" +msgstr "قلب الصورة" + +#: cps/templates/readcbr.html:110 +msgid "Display" +msgstr "عرض" + +#: cps/templates/readcbr.html:113 +msgid "Single Page" +msgstr "صفحة واحدة" + +#: cps/templates/readcbr.html:114 +msgid "Long Strip" +msgstr "شريط طويل" + +#: cps/templates/readcbr.html:119 +msgid "Scale" +msgstr "مقياس" + +#: cps/templates/readcbr.html:122 +msgid "Best" +msgstr "الأفضل" + +#: cps/templates/readcbr.html:123 +msgid "Width" +msgstr "العرض" + +#: cps/templates/readcbr.html:124 +msgid "Height" +msgstr "الارتفاع" + +#: cps/templates/readcbr.html:125 +msgid "Native" +msgstr "الأصلي" + +#: cps/templates/readcbr.html:130 +msgid "Rotate" +msgstr "تدوير" + +#: cps/templates/readcbr.html:141 +msgid "Flip" +msgstr "قلب" + +#: cps/templates/readcbr.html:144 +msgid "Horizontal" +msgstr "أفقي" + +#: cps/templates/readcbr.html:145 +msgid "Vertical" +msgstr "عمودي" + +#: cps/templates/readcbr.html:150 +msgid "Direction" +msgstr "الاتجاه" + +#: cps/templates/readcbr.html:153 +msgid "Left to Right" +msgstr "من اليسار إلى اليمين" + +#: cps/templates/readcbr.html:154 +msgid "Right to Left" +msgstr "من اليمين إلى اليسار" + +#: cps/templates/readcbr.html:162 +msgid "Reset to Top" +msgstr "إعادة تعيين إلى الأعلى" + +#: cps/templates/readcbr.html:163 +msgid "Remember Position" +msgstr "تذكر الموضع" + +#: cps/templates/readcbr.html:168 +msgid "Scrollbar" +msgstr "شريط التمرير" + +#: cps/templates/readcbr.html:171 +msgid "Show" +msgstr "إظهار" + +#: cps/templates/readcbr.html:172 +msgid "Hide" +msgstr "إخفاء" + +#: cps/templates/readdjvu.html:5 +msgid "DJVU Reader" +msgstr "قارئ DJVU" + +#: cps/templates/readpdf.html:31 +msgid "PDF Reader" +msgstr "قارئ PDF" + +#: cps/templates/readtxt.html:6 +msgid "txt Reader" +msgstr "قارئ txt" + +#: cps/templates/register.html:4 +msgid "Register New Account" +msgstr "تسجيل حساب جديد" + +#: cps/templates/register.html:10 +msgid "Choose a username" +msgstr "اختر اسم مستخدم" + +#: cps/templates/register.html:15 +msgid "Your Email" +msgstr "بريدك الإلكتروني" + +#: cps/templates/remote_login.html:5 +msgid "Magic Link - Authorise New Device" +msgstr "الرابط السحري - تفويض جهاز جديد" + +#: cps/templates/remote_login.html:7 +msgid "On another device, login and visit:" +msgstr "على جهاز آخر، سجل الدخول وقم بزيارة:" + +#: cps/templates/remote_login.html:11 +msgid "Once verified, you will automatically be logged in on this device." +msgstr "بمجرد التحقق، سيتم تسجيل دخولك تلقائيًا على هذا الجهاز." + +#: cps/templates/remote_login.html:14 +msgid "This verification link will expire in 10 minutes." +msgstr "سينتهي صلاحية رابط التحقق هذا في غضون 10 دقائق." + +#: cps/templates/schedule_edit.html:33 +msgid "Generate Series Cover Thumbnails" +msgstr "إنشاء صور مصغرة لأغلفة السلاسل" + +#: cps/templates/search.html:7 +msgid "Search Term:" +msgstr "مصطلح البحث:" + +#: cps/templates/search.html:9 +msgid "Results for:" +msgstr "نتائج لـ:" + +#: cps/templates/search_form.html:21 +msgid "Published Date From" +msgstr "تاريخ النشر من" + +#: cps/templates/search_form.html:31 +msgid "Published Date To" +msgstr "تاريخ النشر إلى" + +#: cps/templates/search_form.html:44 cps/templates/search_form.html:165 +msgid "Any" +msgstr "أي" + +#: cps/templates/search_form.html:45 cps/templates/search_form.html:166 +msgid "Empty" +msgstr "فارغ" + +#: cps/templates/search_form.html:60 +msgid "Exclude Tags" +msgstr "استبعاد العلامات" + +#: cps/templates/search_form.html:78 +msgid "Exclude Series" +msgstr "استبعاد السلاسل" + +#: cps/templates/search_form.html:96 +msgid "Exclude Shelves" +msgstr "استبعاد الرفوف" + +#: cps/templates/search_form.html:116 +msgid "Exclude Languages" +msgstr "استبعاد اللغات" + +#: cps/templates/search_form.html:127 +msgid "Extensions" +msgstr "الامتدادات" + +#: cps/templates/search_form.html:135 +msgid "Exclude Extensions" +msgstr "استبعاد الامتدادات" + +#: cps/templates/search_form.html:145 +msgid "Rating Above" +msgstr "التقييم أعلى من" + +#: cps/templates/search_form.html:149 +msgid "Rating Below" +msgstr "التقييم أقل من" + +#: cps/templates/search_form.html:175 cps/templates/search_form.html:187 +#: cps/templates/search_form.html:201 +msgid "From:" +msgstr "من:" + +#: cps/templates/search_form.html:179 cps/templates/search_form.html:191 +#: cps/templates/search_form.html:211 +msgid "To:" +msgstr "إلى:" + +#: cps/templates/shelf.html:13 +msgid "Delete this Shelf" +msgstr "حذف هذا الرف" + +#: cps/templates/shelf.html:14 +msgid "Edit Shelf Properties" +msgstr "تحرير خصائص الرف" + +#: cps/templates/shelf.html:17 +msgid "Arrange books manually" +msgstr "ترتيب الكتب يدويًا" + +#: cps/templates/shelf.html:18 +msgid "Disable Change order" +msgstr "تعطيل تغيير الترتيب" + +#: cps/templates/shelf.html:18 +msgid "Enable Change order" +msgstr "تمكين تغيير الترتيب" + +#: cps/templates/shelf.html:28 +msgid "Sort according to book added to shelf, newest first" +msgstr "الفرز حسب تاريخ إضافة الكتاب إلى الرف، الأحدث أولاً" + +#: cps/templates/shelf.html:29 +msgid "Sort according to book added to shelf, oldest first" +msgstr "الفرز حسب تاريخ إضافة الكتاب إلى الرف، الأقدم أولاً" + +#: cps/templates/shelf_edit.html:14 +msgid "Share with Everyone" +msgstr "مشاركة مع الجميع" + +#: cps/templates/shelf_edit.html:21 +msgid "Sync this shelf with Kobo device" +msgstr "مزامنة هذا الرف مع جهاز Kobo" + +#: cps/templates/shelf_order.html:5 +msgid "Drag to Rearrange Order" +msgstr "اسحب لإعادة ترتيب الترتيب" + +#: cps/templates/shelf_order.html:33 +msgid "Hidden Book" +msgstr "كتاب مخفي" + +#: cps/templates/stats.html:7 +msgid "Library Statistics" +msgstr "إحصائيات المكتبة" + +#: cps/templates/stats.html:12 +msgid "Books in this Library" +msgstr "الكتب في هذه المكتبة" + +#: cps/templates/stats.html:16 +msgid "Authors in this Library" +msgstr "المؤلفون في هذه المكتبة" + +#: cps/templates/stats.html:20 +msgid "Categories in this Library" +msgstr "الفئات في هذه المكتبة" + +#: cps/templates/stats.html:24 +msgid "Series in this Library" +msgstr "السلاسل في هذه المكتبة" + +#: cps/templates/stats.html:29 +msgid "System Statistics" +msgstr "إحصائيات النظام" + +#: cps/templates/stats.html:33 +msgid "Program" +msgstr "البرنامج" + +#: cps/templates/stats.html:34 +msgid "Installed Version" +msgstr "الإصدار المثبت" + +#: cps/templates/tasks.html:12 +msgid "User" +msgstr "المستخدم" + +#: cps/templates/tasks.html:14 +msgid "Task" +msgstr "المهمة" + +#: cps/templates/tasks.html:15 +msgid "Status" +msgstr "الحالة" + +#: cps/templates/tasks.html:16 +msgid "Progress" +msgstr "التقدم" + +#: cps/templates/tasks.html:17 +msgid "Run Time" +msgstr "وقت التشغيل" + +#: cps/templates/tasks.html:19 +msgid "Message" +msgstr "الرسالة" + +#: cps/templates/tasks.html:21 +msgid "Actions" +msgstr "الإجراءات" + +#: cps/templates/tasks.html:41 +msgid "This task will be cancelled. Any progress made by this task will be saved." +msgstr "سيتم إلغاء هذه المهمة. سيتم حفظ أي تقدم تم إحرازه بواسطة هذه المهمة." + +#: cps/templates/tasks.html:42 +msgid "If this is a scheduled task, it will be re-ran during the next scheduled time." +msgstr "إذا كانت هذه مهمة مجدولة، فسيتم إعادة تشغيلها خلال الوقت المجدول التالي." + +#: cps/templates/user_edit.html:20 +msgid "Reset user Password" +msgstr "إعادة تعيين كلمة مرور المستخدم" + +#: cps/templates/user_edit.html:28 +msgid "Send to eReader Email Address. Use comma to separate emails for multiple eReaders" +msgstr "إرسال إلى عنوان البريد الإلكتروني للقارئ الإلكتروني. استخدم الفاصلة لفصل رسائل البريد الإلكتروني لأجهزة قراءة إلكترونية متعددة" + +#: cps/templates/user_edit.html:43 +msgid "Language of Books" +msgstr "لغة الكتب" + +#: cps/templates/user_edit.html:54 +msgid "OAuth Settings" +msgstr "إعدادات OAuth" + +#: cps/templates/user_edit.html:56 +msgid "Link" +msgstr "ربط" + +#: cps/templates/user_edit.html:58 +msgid "Unlink" +msgstr "إلغاء الربط" + +#: cps/templates/user_edit.html:64 +msgid "Kobo Sync Token" +msgstr "رمز مزامنة Kobo" + +#: cps/templates/user_edit.html:66 +msgid "Create/View" +msgstr "إنشاء/عرض" + +#: cps/templates/user_edit.html:70 +msgid "Force full kobo sync" +msgstr "فرض مزامنة Kobo كاملة" + +#: cps/templates/user_edit.html:88 +msgid "Add allowed/Denied Custom Column Values" +msgstr "إضافة قيم أعمدة مخصصة مسموح بها/مرفوضة" + +#: cps/templates/user_edit.html:137 +msgid "Sync only books in selected shelves with Kobo" +msgstr "مزامنة الكتب الموجودة في الرفوف المحددة فقط مع Kobo" + +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 +msgid "Delete User" +msgstr "حذف المستخدم" + +#: cps/templates/user_edit.html:159 +msgid "Generate Kobo Auth URL" +msgstr "إنشاء رابط مصادقة Kobo" + +#: cps/templates/user_table.html:80 cps/templates/user_table.html:103 +msgid "Select..." +msgstr "اختر..." + +#: cps/templates/user_table.html:131 +msgid "Edit User" +msgstr "تعديل المستخدم" + +#: cps/templates/user_table.html:134 +msgid "Enter Username" +msgstr "أدخل اسم المستخدم" + +#: cps/templates/user_table.html:135 +msgid "Enter Email" +msgstr "أدخل البريد الإلكتروني" + +#: cps/templates/user_table.html:136 +msgid "Enter eReader Email" +msgstr "أدخل بريد القارئ الإلكتروني" + +#: cps/templates/user_table.html:136 +msgid "eReader Email" +msgstr "بريد القارئ الإلكتروني" + +#: cps/templates/user_table.html:137 +msgid "Locale" +msgstr "الموقع" + +#: cps/templates/user_table.html:138 +msgid "Visible Book Languages" +msgstr "لغات الكتب المرئية" + +#: cps/templates/user_table.html:139 +msgid "Edit Allowed Tags" +msgstr "تعديل العلامات المسموح بها" + +#: cps/templates/user_table.html:139 +msgid "Allowed Tags" +msgstr "العلامات المسموح بها" + +#: cps/templates/user_table.html:140 +msgid "Edit Denied Tags" +msgstr "تعديل العلامات المرفوضة" + +#: cps/templates/user_table.html:140 +msgid "Denied Tags" +msgstr "العلامات المرفوضة" + +#: cps/templates/user_table.html:141 +msgid "Edit Allowed Column Values" +msgstr "تعديل قيم العمود المسموح بها" + +#: cps/templates/user_table.html:141 +msgid "Allowed Column Values" +msgstr "القيم المسموح بها للعمود" + +#: cps/templates/user_table.html:142 +msgid "Edit Denied Column Values" +msgstr "تعديل قيم العمود المرفوضة" + +#: cps/templates/user_table.html:142 +msgid "Denied Column Values" +msgstr "قيم الأعمدة المرفوضة" + +#: cps/templates/user_table.html:144 +msgid "Change Password" +msgstr "تغيير كلمة المرور" + +#: cps/templates/user_table.html:147 +msgid "View" +msgstr "عرض" + +#: cps/templates/user_table.html:150 +msgid "Edit Public Shelves" +msgstr "تحرير الرفوف العامة" + +#: cps/templates/user_table.html:152 +msgid "Sync selected Shelves with Kobo" +msgstr "مزامنة الرفوف المختارة مع Kobo" + +#: cps/templates/user_table.html:156 +msgid "Show Read/Unread Section" +msgstr "إظهار قسم المقروء/غير المقروء" From cb588c2c82b264bc7226df0bb3fbb543e572a009 Mon Sep 17 00:00:00 2001 From: Usama Khalil Date: Sat, 7 Jun 2025 15:04:05 +0300 Subject: [PATCH 20/21] Update messages.po Correcting typo, separate line 9 & 10. Poedit (v2.2) compined line 9 & 10 into one line. --- cps/translations/ar/LC_MESSAGES/messages.po | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cps/translations/ar/LC_MESSAGES/messages.po b/cps/translations/ar/LC_MESSAGES/messages.po index 26d8b38b5..7682b4c2c 100644 --- a/cps/translations/ar/LC_MESSAGES/messages.po +++ b/cps/translations/ar/LC_MESSAGES/messages.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" -"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\\nPOT-Creation-Date: 2025-03-30 15:55+0200\n" +"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" +"POT-Creation-Date: 2025-03-30 15:55+0200\n" "PO-Revision-Date: 2025-06-07 14:44+0300\n" "Last-Translator: UsamaFoad \n" "Language-Team: \n" From 7c1d3720862d6d67ec0cfa51f7131f2f2cbb8643 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 28 Jun 2025 13:59:55 +0200 Subject: [PATCH 21/21] Updated translation --- cps/translations/it/LC_MESSAGES/messages.po | 420 ++++++-------------- 1 file changed, 119 insertions(+), 301 deletions(-) diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index ef53a23d9..4cbe61f66 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-03-30 15:55+0200\n" +"POT-Creation-Date: 2025-06-28 13:57+0200\n" "PO-Revision-Date: 2025-04-15 00:50+0200\n" "Last-Translator: Massimo Pissarello \n" -"Language-Team: Italian <>\n" "Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Language-Team: Italian <>\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.13.1\n" -"X-Generator: Lokalize 24.12.3\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.15.0\n" #: cps/about.py:85 msgid "Statistics" @@ -40,11 +39,8 @@ msgid "Unknown command" msgstr "Comando sconosciuto" #: cps/admin.py:175 -msgid "" -"Success! Books queued for Metadata Backup, please check Tasks for result" -msgstr "" -"Tutto OK! Libri in coda per il backup dei metadati, controlla le attività " -"per il risultato" +msgid "Success! Books queued for Metadata Backup, please check Tasks for result" +msgstr "Tutto OK! Libri in coda per il backup dei metadati, controlla le attività per il risultato" #: cps/admin.py:208 cps/editbooks.py:614 cps/editbooks.py:657 #: cps/editbooks.py:1302 cps/updater.py:615 cps/uploader.py:108 @@ -68,8 +64,7 @@ msgstr "Configurazione dell'interfaccia utente" #: cps/web.py:753 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" -msgstr "" -"La colonna personalizzata no.%(column)d non esiste nel database di Calibre" +msgstr "La colonna personalizzata no.%(column)d non esiste nel database di Calibre" #: cps/admin.py:333 cps/templates/admin.html:51 msgid "Edit Users" @@ -107,9 +102,7 @@ msgstr "L'utente Guest (ospite) non può avere questo ruolo" #: cps/admin.py:501 cps/admin.py:2023 msgid "No admin user remaining, can't remove admin role" -msgstr "" -"Non rimarrebbe nessun utente amministratore, non è possibile rimuovere il " -"ruolo di amministratore" +msgstr "Non rimarrebbe nessun utente amministratore, non è possibile rimuovere il ruolo di amministratore" #: cps/admin.py:505 cps/admin.py:519 msgid "Value has to be true or false" @@ -129,9 +122,7 @@ msgstr "Visualizzazione non valida" #: cps/admin.py:524 msgid "Guest's Locale is determined automatically and can't be set" -msgstr "" -"Le impostazioni locali dell'utente Guest (ospite) sono determinate " -"automaticamente e non possono essere configurate" +msgstr "Le impostazioni locali dell'utente Guest (ospite) sono determinate automaticamente e non possono essere configurate" #: cps/admin.py:528 msgid "No Valid Locale Given" @@ -175,65 +166,39 @@ msgstr "Sei sicuro di voler eliminare questo scaffale?" #: cps/admin.py:624 msgid "Are you sure you want to change locales of selected user(s)?" -msgstr "" -"Sei sicuro di voler cambiare le impostazioni internazionali degli utenti " -"selezionati?" +msgstr "Sei sicuro di voler cambiare le impostazioni internazionali degli utenti selezionati?" #: cps/admin.py:626 -msgid "" -"Are you sure you want to change visible book languages for selected user(s)?" -msgstr "" -"Sei sicuro di voler cambiare le lingue visibili del libro per gli utenti " -"selezionati?" +msgid "Are you sure you want to change visible book languages for selected user(s)?" +msgstr "Sei sicuro di voler cambiare le lingue visibili del libro per gli utenti selezionati?" #: cps/admin.py:628 -msgid "" -"Are you sure you want to change the selected role for the selected user(s)?" -msgstr "" -"Sei sicuro di voler cambiare il ruolo selezionato per gli utenti selezionati?" +msgid "Are you sure you want to change the selected role for the selected user(s)?" +msgstr "Sei sicuro di voler cambiare il ruolo selezionato per gli utenti selezionati?" #: cps/admin.py:630 -msgid "" -"Are you sure you want to change the selected restrictions for the selected " -"user(s)?" -msgstr "" -"Sei sicuro di voler cambiare le restrizioni selezionate per gli utenti " -"selezionati?" +msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" +msgstr "Sei sicuro di voler cambiare le restrizioni selezionate per gli utenti selezionati?" #: cps/admin.py:632 -msgid "" -"Are you sure you want to change the selected visibility restrictions for the " -"selected user(s)?" -msgstr "" -"Sei sicuro di voler cambiare le restrizioni di visibilità selezionate per " -"gli utenti selezionati?" +msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" +msgstr "Sei sicuro di voler cambiare le restrizioni di visibilità selezionate per gli utenti selezionati?" #: cps/admin.py:635 -msgid "" -"Are you sure you want to change shelf sync behavior for the selected user(s)?" -msgstr "" -"Sei sicuro di voler cambiare il comportamento di sincronizzazione dello " -"scaffale per gli utenti selezionati?" +msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" +msgstr "Sei sicuro di voler cambiare il comportamento di sincronizzazione dello scaffale per gli utenti selezionati?" #: cps/admin.py:637 msgid "Are you sure you want to change Calibre library location?" msgstr "Sei sicuro di voler cambiare la posizione della biblioteca di Calibre?" #: cps/admin.py:639 -msgid "" -"Calibre-Web will search for updated Covers and update Cover Thumbnails, this " -"may take a while?" -msgstr "" -"Calibre-Web cercherà le copertine aggiornate e aggiornerà le miniature delle " -"copertine, ma ci vorrà un po' di tempo." +msgid "Calibre-Web will search for updated Covers and update Cover Thumbnails, this may take a while?" +msgstr "Calibre-Web cercherà le copertine aggiornate e aggiornerà le miniature delle copertine, ma ci vorrà un po' di tempo." #: cps/admin.py:642 -msgid "" -"Are you sure you want delete Calibre-Web's sync database to force a full " -"sync with your Kobo Reader?" -msgstr "" -"Sei sicuro di voler eliminare il database sincronizzato di Calibre-Web e " -"forzare una sincronizzazione completa con il tuo lettore Kobo?" +msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" +msgstr "Sei sicuro di voler eliminare il database sincronizzato di Calibre-Web e forzare una sincronizzazione completa con il tuo lettore Kobo?" #: cps/admin.py:885 cps/admin.py:891 cps/admin.py:901 cps/admin.py:911 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 @@ -265,21 +230,15 @@ msgstr "client_secrets.json non è configurato per Web Application" #: cps/admin.py:1177 msgid "Logfile Location is not Valid, Please Enter Correct Path" -msgstr "" -"La posizione del file di log non è valida, per favore indica il percorso " -"corretto" +msgstr "La posizione del file di log non è valida, per favore indica il percorso corretto" #: cps/admin.py:1183 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" -msgstr "" -"La posizione del file del log di accesso non è valida, indica il percorso " -"corretto" +msgstr "La posizione del file del log di accesso non è valida, indica il percorso corretto" #: cps/admin.py:1217 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" -msgstr "" -"Inserisci un provider LDAP, una porta, un DN e un identificatore oggetto " -"utente" +msgstr "Inserisci un provider LDAP, una porta, un DN e un identificatore oggetto utente" #: cps/admin.py:1223 msgid "Please Enter a LDAP Service Account and Password" @@ -292,8 +251,7 @@ msgstr "Inserisci un account di servizio LDAP" #: cps/admin.py:1231 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" -msgstr "" -"Il filtro oggetto gruppo LDAP deve avere un identificatore di formato \"%s\"" +msgstr "Il filtro oggetto gruppo LDAP deve avere un identificatore di formato \"%s\"" #: cps/admin.py:1233 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" @@ -302,8 +260,7 @@ msgstr "Il filtro oggetto gruppo LDAP ha parentesi senza corrispondenza" #: cps/admin.py:1237 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" -msgstr "" -"Il filtro oggetto utente LDAP deve avere un identificatore di formato \"%s\"" +msgstr "Il filtro oggetto utente LDAP deve avere un identificatore di formato \"%s\"" #: cps/admin.py:1239 msgid "LDAP User Object Filter Has Unmatched Parenthesis" @@ -312,20 +269,15 @@ msgstr "Il filtro oggetto utente LDAP ha parentesi senza corrispondenza" #: cps/admin.py:1246 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" -msgstr "" -"Il filtro utente membro LDAP deve avere un identificatore di formato \"%s\"" +msgstr "Il filtro utente membro LDAP deve avere un identificatore di formato \"%s\"" #: cps/admin.py:1248 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "Il filtro utente membro LDAP ha parentesi senza corrispondenza" #: cps/admin.py:1255 -msgid "" -"LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter " -"Correct Path" -msgstr "" -"Il certificato CA LDAP, il certificato o la posizione della chiave non sono " -"validi. Inserisci il percorso corretto" +msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" +msgstr "Il certificato CA LDAP, il certificato o la posizione della chiave non sono validi. Inserisci il percorso corretto" #: cps/admin.py:1286 cps/templates/admin.html:53 msgid "Add New User" @@ -350,11 +302,8 @@ msgstr "Errore nel database: %(error)s." #: cps/admin.py:1344 #, python-format -msgid "" -"Test e-mail queued for sending to %(email)s, please check Tasks for result" -msgstr "" -"L'e-mail di prova è stato accodata correttamente per essere spedita a " -"%(email)s, controlla il risultato in Attività" +msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" +msgstr "L'e-mail di prova è stato accodata correttamente per essere spedita a %(email)s, controlla il risultato in Attività" #: cps/admin.py:1347 #, python-format @@ -462,8 +411,7 @@ msgstr "Errore generale" #: cps/admin.py:1551 msgid "Update file could not be saved in temp dir" -msgstr "" -"Il file di aggiornamento non può essere salvato nella cartella temporanea" +msgstr "Il file di aggiornamento non può essere salvato nella cartella temporanea" #: cps/admin.py:1552 msgid "Files could not be replaced during update" @@ -500,8 +448,7 @@ msgstr "Percorso dei libri non valido" #: cps/admin.py:1740 msgid "DB Location is not Valid, Please Enter Correct Path" -msgstr "" -"La posizione del DB non è valida, per favore indica il percorso corretto" +msgstr "La posizione del DB non è valida, per favore indica il percorso corretto" #: cps/admin.py:1768 msgid "DB is not Writeable" @@ -559,9 +506,7 @@ msgstr "Impossibile eliminare l'utente Guest (ospite)" #: cps/admin.py:2008 msgid "No admin user remaining, can't delete user" -msgstr "" -"Non rimarrebbe nessun utente amministratore, non è possibile eliminare " -"l'utente" +msgstr "Non rimarrebbe nessun utente amministratore, non è possibile eliminare l'utente" #: cps/admin.py:2063 cps/web.py:1484 msgid "Email can't be empty and has to be a valid Email" @@ -617,11 +562,8 @@ msgstr "Si è verificato un errore durante la conversione del libro: %(res)s" #: cps/editbooks.py:433 cps/editbooks.py:928 cps/web.py:535 cps/web.py:1576 #: cps/web.py:1622 cps/web.py:1672 -msgid "" -"Oops! Selected book is unavailable. File does not exist or is not accessible" -msgstr "" -"Il libro selezionato non è disponibile. Il file non esiste o non è " -"accessibile" +msgid "Oops! Selected book is unavailable. File does not exist or is not accessible" +msgstr "Il libro selezionato non è disponibile. Il file non esiste o non è accessibile" #: cps/editbooks.py:479 cps/editbooks.py:1285 msgid "User has no rights to upload cover" @@ -629,9 +571,7 @@ msgstr "L'utente non ha i permessi per caricare le copertine" #: cps/editbooks.py:500 cps/editbooks.py:743 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" -msgstr "" -"Gli identificatori non fanno distinzione tra maiuscole e minuscole e " -"sovrascrivono il vecchio identificatore" +msgstr "Gli identificatori non fanno distinzione tra maiuscole e minuscole e sovrascrivono il vecchio identificatore" #: cps/editbooks.py:515 cps/editbooks.py:717 cps/editbooks.py:1055 #, python-format @@ -647,12 +587,8 @@ msgid "Error editing book: {}" msgstr "Errore nella modifica del libro: {}" #: cps/editbooks.py:661 -msgid "" -"Uploaded book probably exists in the library, consider to change before " -"upload new: " -msgstr "" -"Probabilmente il libro caricato esiste già nella biblioteca, cambialo prima " -"di caricarlo di nuovo:" +msgid "Uploaded book probably exists in the library, consider to change before upload new: " +msgstr "Probabilmente il libro caricato esiste già nella biblioteca, cambialo prima di caricarlo di nuovo:" #: cps/editbooks.py:755 cps/editbooks.py:1202 msgid "File type isn't allowed to be uploaded to this server" @@ -661,8 +597,7 @@ msgstr "Non è consentito caricare questo tipo di file su questo server" #: cps/editbooks.py:761 cps/editbooks.py:1213 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" -msgstr "" -"Non è consentito caricare l'estensione del file '%(ext)s' su questo server" +msgstr "Non è consentito caricare l'estensione del file '%(ext)s' su questo server" #: cps/editbooks.py:765 cps/editbooks.py:1218 msgid "File to be uploaded must have an extension" @@ -719,20 +654,12 @@ msgid "File format %(ext)s added to %(book)s" msgstr "Formato file %(ext)s aggiunto a %(book)s" #: cps/gdrive.py:58 -msgid "" -"Google Drive setup not completed, try to deactivate and activate Google " -"Drive again" -msgstr "" -"Configurazione di Google Drive non completata, prova a disattivare e " -"attivare nuovamente Google Drive" +msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again" +msgstr "Configurazione di Google Drive non completata, prova a disattivare e attivare nuovamente Google Drive" #: cps/gdrive.py:96 -msgid "" -"Callback domain is not verified, please follow steps to verify domain in " -"google developer console" -msgstr "" -"Il dominio di callback non è stato verificato, segui i passaggi per " -"verificare il dominio nella console per sviluppatori di Google" +msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" +msgstr "Il dominio di callback non è stato verificato, segui i passaggi per verificare il dominio nella console per sviluppatori di Google" #: cps/helper.py:87 #, python-format @@ -799,11 +726,8 @@ msgstr "Impossibile impostare lo stato di lettura: {}" #: cps/helper.py:375 #, python-format -msgid "" -"Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" -msgstr "" -"Eliminazione della cartella di libri per il libro %(id)s non riuscita, il " -"percorso ha sottocartelle: %(path)s" +msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" +msgstr "Eliminazione della cartella di libri per il libro %(id)s non riuscita, il percorso ha sottocartelle: %(path)s" #: cps/helper.py:381 #, python-format @@ -812,20 +736,13 @@ msgstr "Eliminazione del libro %(id)s non riuscita: %(message)s" #: cps/helper.py:392 #, python-format -msgid "" -"Deleting book %(id)s from database only, book path in database not valid: " -"%(path)s" -msgstr "" -"Eliminazione del libro %(id)s solo dal database, percorso del libro nel " -"database non valido: %(path)s" +msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" +msgstr "Eliminazione del libro %(id)s solo dal database, percorso del libro nel database non valido: %(path)s" #: cps/helper.py:439 #, python-format -msgid "" -"Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "" -"La modifica dell'autore da '%(src)s' a '%(dest)s' è terminata con l'errore: " -"%(error)s" +msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "La modifica dell'autore da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" #: cps/helper.py:507 cps/helper.py:516 #, python-format @@ -835,9 +752,7 @@ msgstr "Il file %(file) non è stato trovato su Google Drive" #: cps/helper.py:559 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "" -"La modifica del titolo da '%(src)s' a '%(dest)s' è terminata con l'errore: " -"%(error)s" +msgstr "La modifica del titolo da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" #: cps/helper.py:597 #, python-format @@ -861,11 +776,8 @@ msgid "Password doesn't comply with password validation rules" msgstr "La password non è conforme alle regole di convalida della password" #: cps/helper.py:847 -msgid "" -"Python module 'advocate' is not installed but is needed for cover uploads" -msgstr "" -"Il modulo Python \"advocate\" non è installato ma è necessario per il " -"caricamento delle copertine" +msgid "Python module 'advocate' is not installed but is needed for cover uploads" +msgstr "Il modulo Python \"advocate\" non è installato ma è necessario per il caricamento delle copertine" #: cps/helper.py:857 msgid "Error Downloading Cover" @@ -876,12 +788,8 @@ msgid "Cover Format Error" msgstr "Errore nel formato della copertina" #: cps/helper.py:863 -msgid "" -"You are not allowed to access localhost or the local network for cover " -"uploads" -msgstr "" -"Non ti è consentito accedere all'host locale o alla rete locale per caricare " -"le copertine" +msgid "You are not allowed to access localhost or the local network for cover uploads" +msgstr "Non ti è consentito accedere all'host locale o alla rete locale per caricare le copertine" #: cps/helper.py:873 msgid "Failed to create path for cover" @@ -889,14 +797,11 @@ msgstr "Impossibile creare il percorso per la copertina" #: cps/helper.py:889 msgid "Cover-file is not a valid image file, or could not be stored" -msgstr "" -"Il file della copertina non è in un formato di immagine valido o non può " -"essere salvato" +msgstr "Il file della copertina non è in un formato di immagine valido o non può essere salvato" #: cps/helper.py:900 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" -msgstr "" -"Solo i file jpg/jpeg/png/webp/bmp sono supportati come file di copertina" +msgstr "Solo i file jpg/jpeg/png/webp/bmp sono supportati come file di copertina" #: cps/helper.py:912 msgid "Invalid cover file content" @@ -949,12 +854,8 @@ msgid "Queue all books for metadata backup" msgstr "Metti in coda tutti i libri per il backup dei metadati" #: cps/kobo_auth.py:92 -msgid "" -"Please access Calibre-Web from non localhost to get valid api_endpoint for " -"kobo device" -msgstr "" -"Accedi a Calibre-Web da un host non locale per ottenere un api_endpoint " -"valido per il dispositivo Kobo" +msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" +msgstr "Accedi a Calibre-Web da un host non locale per ottenere un api_endpoint valido per il dispositivo Kobo" #: cps/kobo_auth.py:118 msgid "Kobo Setup" @@ -977,8 +878,7 @@ msgstr "Collegamento riuscito a %(oauth)s" #: cps/oauth_bb.py:156 msgid "Login failed, No User Linked With OAuth Account" -msgstr "" -"Accesso non riuscito, non c'è nessun utente collegato all'account OAuth" +msgstr "Accesso non riuscito, non c'è nessun utente collegato all'account OAuth" #: cps/oauth_bb.py:198 #, python-format @@ -1213,9 +1113,7 @@ msgstr "Stato di lettura = '%(status)s'" #: cps/search.py:351 msgid "Error on search for custom columns, please restart Calibre-Web" -msgstr "" -"Errore nella ricerca delle colonne personalizzate. Per favore riavvia " -"Calibre-Web" +msgstr "Errore nella ricerca delle colonne personalizzate. Per favore riavvia Calibre-Web" #: cps/search.py:370 cps/search.py:402 cps/templates/layout.html:58 msgid "Advanced Search" @@ -1227,8 +1125,7 @@ msgstr "Scaffale specificato non valido" #: cps/shelf.py:55 msgid "Sorry you are not allowed to add a book to that shelf" -msgstr "" -"Spiacente, ma non sei autorizzato ad aggiungere libri a questo scaffale" +msgstr "Spiacente, ma non sei autorizzato ad aggiungere libri a questo scaffale" #: cps/shelf.py:64 #, python-format @@ -1238,8 +1135,7 @@ msgstr "Il libro è gia presente nello scaffale: %(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 non è un valido ID libro. Impossibile aggiungerlo allo scaffale" +msgstr "%(book_id)s non è un valido ID libro. Impossibile aggiungerlo allo scaffale" #: cps/shelf.py:97 #, python-format @@ -1334,9 +1230,7 @@ msgstr "Scaffale: '%(name)s'" #: cps/shelf.py:487 msgid "Error opening shelf. Shelf does not exist or is not accessible" -msgstr "" -"Errore nell'apertura dello scaffale. Lo scaffale non esiste o non è " -"accessibile" +msgstr "Errore nell'apertura dello scaffale. Lo scaffale non esiste o non è accessibile" #: cps/tasks_status.py:47 cps/templates/layout.html:91 #: cps/templates/tasks.html:7 @@ -1380,12 +1274,8 @@ msgid "No update available. You already have the latest version installed" msgstr "Nessun aggiornamento disponibile. Hai già l'ultima versione installata" #: cps/updater.py:458 -msgid "" -"A new update is available. Click on the button below to update to the latest " -"version." -msgstr "" -"È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per " -"aggiornare all'ultima versione" +msgid "A new update is available. Click on the button below to update to the latest version." +msgstr "È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per aggiornare all'ultima versione" #: cps/updater.py:476 msgid "Could not fetch update information" @@ -1393,18 +1283,12 @@ msgstr "Impossibile recuperare le informazioni sull'aggiornamento" #: cps/updater.py:486 msgid "Click on the button below to update to the latest stable version." -msgstr "" -"Fai clic sul pulsante in basso per eseguire l'aggiornamento all'ultima " -"versione stabile." +msgstr "Fai clic sul pulsante in basso per eseguire l'aggiornamento all'ultima versione stabile." #: 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 "" -"È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per " -"aggiornare alla versione:%(version)s" +msgid "A new update is available. Click on the button below to update to version: %(version)s" +msgstr "È disponibile un nuovo aggiornamento. Fai clic sul pulsante in basso per aggiornare alla versione:%(version)s" #: cps/updater.py:538 msgid "No release information available" @@ -1505,14 +1389,11 @@ msgstr "Registrati" #: cps/web.py:1290 cps/web.py:1393 msgid "Connection error to limiter backend, please contact your administrator" -msgstr "" -"Il server e-mail non è configurato, per favore contatta l'amministratore" +msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore" #: cps/web.py:1295 cps/web.py:1342 -msgid "" -"Oops! Email server is not configured, please contact your administrator." -msgstr "" -"Il server e-mail non è configurato, per favore contatta l'amministratore" +msgid "Oops! Email server is not configured, please contact your administrator." +msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore" #: cps/web.py:1328 msgid "Oops! Your Email is not allowed." @@ -1537,12 +1418,8 @@ msgstr "ora sei connesso come: '%(nickname)s'" #: cps/web.py:1415 #, python-format -msgid "" -"Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not " -"known" -msgstr "" -"Accesso di riserva come: '%(nickname)s', il server LDAP non è raggiungibile " -"o l'utente è sconosciuto" +msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" +msgstr "Accesso di riserva come: '%(nickname)s', il server LDAP non è raggiungibile o l'utente è sconosciuto" #: cps/web.py:1420 #, python-format @@ -1620,17 +1497,17 @@ msgstr "Errore con il convertitore Kepubify: %(error)s" msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "File convertito non trovato o più di un file nella cartella %(folder)s" -#: cps/tasks/convert.py:289 cps/tasks/convert.py:340 +#: cps/tasks/convert.py:291 cps/tasks/convert.py:342 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Si è verificato un errore con Calibre: %(error)s" -#: cps/tasks/convert.py:317 +#: cps/tasks/convert.py:319 #, python-format msgid "Ebook-converter failed: %(error)s" msgstr "Errore nel convertitore: %(error)s" -#: cps/tasks/convert.py:345 +#: cps/tasks/convert.py:347 msgid "Convert" msgstr "Converti" @@ -2138,11 +2015,8 @@ msgid "Add Identifier" msgstr "Aggiungi identificatore" #: cps/templates/book_edit.html:133 -msgid "" -"Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" -msgstr "" -"Recupera la copertina dall'URL (JPEG: l'immagine verrà scaricata e " -"archiviata nel database)" +msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" +msgstr "Recupera la copertina dall'URL (JPEG: l'immagine verrà scaricata e archiviata nel database)" #: cps/templates/book_edit.html:137 msgid "Upload Cover from Local Disk" @@ -2351,8 +2225,7 @@ msgstr "Revoca" #: cps/templates/config_db.html:80 msgid "New db location is invalid, please enter valid path" -msgstr "" -"La nuova posizione del database non è valida, inserisci un percorso valido" +msgstr "La nuova posizione del database non è valida, inserisci un percorso valido" #: cps/templates/config_edit.html:18 msgid "Server Configuration" @@ -2364,15 +2237,11 @@ msgstr "Porta del server" #: cps/templates/config_edit.html:28 msgid "SSL certfile location (leave it empty for non-SSL Servers)" -msgstr "" -"Posizione del file del certificato SSL (lascia vuoto per una configurazione " -"del server senza SSL)" +msgstr "Posizione del file del certificato SSL (lascia vuoto per una configurazione del server senza SSL)" #: cps/templates/config_edit.html:35 msgid "SSL Keyfile location (leave it empty for non-SSL Servers)" -msgstr "" -"Posizione del file della chiave SSL (lascia vuoto per una configurazione del " -"server senza SSL)" +msgstr "Posizione del file della chiave SSL (lascia vuoto per una configurazione del server senza SSL)" #: cps/templates/config_edit.html:43 msgid "Update Channel" @@ -2396,8 +2265,7 @@ msgstr "Configurazione del file di log" #: cps/templates/config_edit.html:77 msgid "Location and name of logfile (calibre-web.log for no entry)" -msgstr "" -"Posizione e nome del file di log (se non specificato sarà calibre-web.log)" +msgstr "Posizione e nome del file di log (se non specificato sarà calibre-web.log)" #: cps/templates/config_edit.html:82 msgid "Enable Access Log" @@ -2405,9 +2273,7 @@ msgstr "Abilita il log degli accessi" #: cps/templates/config_edit.html:85 msgid "Location and name of access logfile (access.log for no entry)" -msgstr "" -"Posizione e nome del file di log degli accessi (se non specificato sarà " -"access.log)" +msgstr "Posizione e nome del file di log degli accessi (se non specificato sarà access.log)" #: cps/templates/config_edit.html:96 msgid "Feature Configuration" @@ -2415,17 +2281,11 @@ msgstr "Configurazione funzionalità" #: cps/templates/config_edit.html:104 msgid "Convert non-English characters in title and author while saving to disk" -msgstr "" -"Converti caratteri non inglesi nel titolo e nell'autore durante il " -"salvataggio su disco" +msgstr "Converti caratteri non inglesi nel titolo e nell'autore durante il salvataggio su disco" #: cps/templates/config_edit.html:108 -msgid "" -"Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/" -"Kepubify binaries)" -msgstr "" -"Incorpora metadati nel file del libro al momento del download e della " -"conversione per e-mail (sono necessari gli eseguibili Calibre/Kepubify)" +msgid "Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/Kepubify binaries)" +msgstr "Incorpora metadati nel file del libro al momento del download e della conversione per e-mail (sono necessari gli eseguibili Calibre/Kepubify)" #: cps/templates/config_edit.html:112 msgid "Enable Uploads" @@ -2433,9 +2293,7 @@ msgstr "Abilita il caricamento" #: cps/templates/config_edit.html:112 msgid "(Please ensure that users also have upload permissions)" -msgstr "" -"(assicurati che gli utenti dispongano anche delle autorizzazioni di " -"caricamento)" +msgstr "(assicurati che gli utenti dispongano anche delle autorizzazioni di caricamento)" #: cps/templates/config_edit.html:116 msgid "Allowed Upload Fileformats" @@ -2518,24 +2376,16 @@ msgid "SSL" msgstr "SSL" #: cps/templates/config_edit.html:209 -msgid "" -"LDAP CACertificate Path (Only needed for Client Certificate Authentication)" -msgstr "" -"Percorso certificato CA LDAP (necessario solo per l'autenticazione del " -"certificato client)" +msgid "LDAP CACertificate Path (Only needed for Client Certificate Authentication)" +msgstr "Percorso certificato CA LDAP (necessario solo per l'autenticazione del certificato client)" #: cps/templates/config_edit.html:216 -msgid "" -"LDAP Certificate Path (Only needed for Client Certificate Authentication)" -msgstr "" -"Percorso certificato LDAP (necessario solo per l'autenticazione del " -"certificato client)" +msgid "LDAP Certificate Path (Only needed for Client Certificate Authentication)" +msgstr "Percorso certificato LDAP (necessario solo per l'autenticazione del certificato client)" #: cps/templates/config_edit.html:223 msgid "LDAP Keyfile Path (Only needed for Client Certificate Authentication)" -msgstr "" -"Percorso del file di chiavi LDAP (necessario solo per l'autenticazione del " -"certificato client)" +msgstr "Percorso del file di chiavi LDAP (necessario solo per l'autenticazione del certificato client)" #: cps/templates/config_edit.html:232 msgid "LDAP Authentication" @@ -2575,8 +2425,7 @@ msgstr "Il server LDAP è OpenLDAP?" #: cps/templates/config_edit.html:263 msgid "Following Settings are Needed For User Import" -msgstr "" -"Per l'importazione degli utenti sono necessarie le seguenti impostazioni" +msgstr "Per l'importazione degli utenti sono necessarie le seguenti impostazioni" #: cps/templates/config_edit.html:265 msgid "LDAP Group Object Filter" @@ -2659,9 +2508,7 @@ msgstr "Opzioni per il limitatore del Backend" #: cps/templates/config_edit.html:382 msgid "Check if file extensions matches file content on upload" -msgstr "" -"Controlla se le estensioni dei file corrispondono al contenuto del file al " -"momento del caricamento" +msgstr "Controlla se le estensioni dei file corrispondono al contenuto del file al momento del caricamento" #: cps/templates/config_edit.html:385 msgid "Session protection" @@ -2697,8 +2544,7 @@ msgstr "Obbliga caratteri maiuscoli" #: cps/templates/config_edit.html:414 msgid "Enforce characters (needed For Chinese/Japanese/Korean Characters)" -msgstr "" -"Obbliga caratteri (necessario per caratteri cinesi, giapponesi e coreani)" +msgstr "Obbliga caratteri (necessario per caratteri cinesi, giapponesi e coreani)" #: cps/templates/config_edit.html:418 msgid "Enforce special characters" @@ -2714,8 +2560,7 @@ msgstr "Numero di libri casuali da mostrare" #: cps/templates/config_view_edit.html:36 msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)" -msgstr "" -"Numero di autori da mostrare prima di nascondere (0=disabilita nascondere)" +msgstr "Numero di autori da mostrare prima di nascondere (0=disabilita nascondere)" #: cps/templates/config_view_edit.html:40 cps/templates/readcbr.html:101 msgid "Theme" @@ -2839,12 +2684,8 @@ msgid "Add to archive" msgstr "Aggiungi all'archivio" #: 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 "" -"Contrassegna il libro come archiviato o no per nasconderlo in Calibre-Web ed " -"eliminarlo da Kobo Reader" +msgid "Mark Book as archived or not, to hide it in Calibre-Web and delete it from Kobo Reader" +msgstr "Contrassegna il libro come archiviato o no per nasconderlo in Calibre-Web ed eliminarlo da Kobo Reader" #: cps/templates/detail.html:275 msgid "Archive" @@ -2933,12 +2774,8 @@ msgid "Denied Domains (Blacklist)" msgstr "Domini non consentiti (lista nera)" #: 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 "" -"Apri il file .kobo/Kobo/Kobo eReader.conf in un editor di testo e aggiungi " -"(o modifica):" +msgid "Open the .kobo/Kobo/Kobo eReader.conf file in a text editor and add (or edit):" +msgstr "Apri il file .kobo/Kobo/Kobo eReader.conf in un editor di testo e aggiungi (o modifica):" #: cps/templates/generate_kobo_auth_url.html:11 msgid "Kobo Token:" @@ -2950,8 +2787,7 @@ msgstr "Elenco" #: cps/templates/http_error.html:34 msgid "Calibre-Web Instance is unconfigured, please contact your administrator" -msgstr "" -"L'istanza Calibre-Web non è configurata, per favore contatta l'amministratore" +msgstr "L'istanza Calibre-Web non è configurata, per favore contatta l'amministratore" #: cps/templates/http_error.html:44 msgid "Create Issue" @@ -3155,8 +2991,7 @@ msgstr "Seleziona le categorie consentite/negate per l'utente" #: cps/templates/modal_dialogs.html:9 msgid "Select Allowed/Denied Custom Column Values of User" -msgstr "" -"Seleziona i valori personali consentiti/negati per le colonne dell'utente" +msgstr "Seleziona i valori personali consentiti/negati per le colonne dell'utente" #: cps/templates/modal_dialogs.html:15 msgid "Enter Tag" @@ -3179,19 +3014,12 @@ msgid "and hard disk" msgstr "e dal disco rigido" #: cps/templates/modal_dialogs.html:56 -msgid "" -"Important Kobo Note: deleted books will remain on any paired Kobo device." -msgstr "" -"Nota importante su Kobo: i libri eliminati rimarranno su qualsiasi " -"dispositivo Kobo associato." +msgid "Important Kobo Note: deleted books will remain on any paired Kobo device." +msgstr "Nota importante su Kobo: i libri eliminati rimarranno su qualsiasi dispositivo Kobo associato." #: cps/templates/modal_dialogs.html:57 -msgid "" -"Books must first be archived and the device synced before a book can safely " -"be deleted." -msgstr "" -"I libri devono essere prima archiviati e il dispositivo sincronizzato prima " -"che un libro possa essere eliminato in sicurezza." +msgid "Books must first be archived and the device synced before a book can safely be deleted." +msgstr "I libri devono essere prima archiviati e il dispositivo sincronizzato prima che un libro possa essere eliminato in sicurezza." #: cps/templates/modal_dialogs.html:76 msgid "Choose File Location" @@ -3640,31 +3468,20 @@ msgid "Actions" msgstr "Azioni" #: cps/templates/tasks.html:41 -msgid "" -"This task will be cancelled. Any progress made by this task will be saved." -msgstr "" -"Questa attività verrà annullata. Tutti i progressi compiuti da questa " -"attività verranno salvati." +msgid "This task will be cancelled. Any progress made by this task will be saved." +msgstr "Questa attività verrà annullata. Tutti i progressi compiuti da questa attività verranno salvati." #: cps/templates/tasks.html:42 -msgid "" -"If this is a scheduled task, it will be re-ran during the next scheduled " -"time." -msgstr "" -"Se si tratta di un'attività pianificata, verrà eseguita nuovamente " -"all'orario pianificato successivo." +msgid "If this is a scheduled task, it will be re-ran during the next scheduled time." +msgstr "Se si tratta di un'attività pianificata, verrà eseguita nuovamente all'orario pianificato successivo." #: cps/templates/user_edit.html:20 msgid "Reset user Password" msgstr "Reimposta la password dell'utente" #: cps/templates/user_edit.html:28 -msgid "" -"Send to eReader Email Address. Use comma to separate emails for multiple " -"eReaders" -msgstr "" -"Invia all'indirizzo e-mail dell'eReader. Usa la virgola per separare le " -"email per più eReader" +msgid "Send to eReader Email Address. Use comma to separate emails for multiple eReaders" +msgstr "Invia all'indirizzo e-mail dell'eReader. Usa la virgola per separare le email per più eReader" #: cps/templates/user_edit.html:43 msgid "Language of Books" @@ -3793,3 +3610,4 @@ msgstr "Sincronizza gli scaffali selezionati con Kobo" #: cps/templates/user_table.html:156 msgid "Show Read/Unread Section" msgstr "Mostra sezione Libri letti e Libri da leggere" +