diff --git a/README.md b/README.md index 896d4535..ea9d9ba0 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Calibre-Web is a web app providing a clean interface for browsing, reading and d - full graphical setup - User management with fine-grained per-user permissions - Admin interface -- User Interface in brazilian, czech, dutch, english, finnish, french, german, greek, hungarian, italian, japanese, khmer, polish, russian, simplified and traditional chinese, spanish, swedish, turkish, ukrainian +- User Interface in brazilian, czech, dutch, english, finnish, french, german, greek, hungarian, italian, japanese, khmer, korean, polish, russian, simplified and traditional chinese, spanish, swedish, turkish, ukrainian - OPDS feed for eBook reader apps - Filter and search by titles, authors, tags, series and language - Create a custom book collection (shelves) diff --git a/SECURITY.md b/SECURITY.md index bbaad7c4..c6f86607 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -10,21 +10,25 @@ To receive fixes for security vulnerabilities it is required to always upgrade t ## History -| Fixed in | Description |CVE number | -| ---------- |---------|---------| -| 3rd July 2018 | Guest access acts as a backdoor|| -| V 0.6.7 |Hardcoded secret key for sessions |CVE-2020-12627 | -| V 0.6.13|Calibre-Web Metadata cross site scripting |CVE-2021-25964| -| V 0.6.13|Name of Shelves are only visible to users who can access the corresponding shelf Thanks to @ibarrionuevo|| -| V 0.6.13|JavaScript could get executed in the description field. Thanks to @ranjit-git and Hagai Wechsler (WhiteSource)|| -| V 0.6.13|JavaScript could get executed in a custom column of type "comment" field || -| V 0.6.13|JavaScript could get executed after converting a book to another format with a title containing javascript code|| -| V 0.6.13|JavaScript could get executed after converting a book to another format with a username containing javascript code|| -| V 0.6.13|JavaScript could get executed in the description series, categories or publishers title|| -| V 0.6.13|JavaScript could get executed in the shelf title|| -| V 0.6.13|Login with the old session cookie after logout. Thanks to @ibarrionuevo|| -| V 0.6.14|CSRF was possible. Thanks to @mik317 and Hagai Wechsler (WhiteSource) |CVE-2021-25965| -| V 0.6.14|Cross-Site Scripting vulnerability on typeahead inputs. Thanks to @notdodo|| +| Fixed in | Description |CVE number | +|---------------|--------------------------------------------------------------------------------------------------------------------|---------| +| 3rd July 2018 | Guest access acts as a backdoor || +| V 0.6.7 | Hardcoded secret key for sessions |CVE-2020-12627 | +| V 0.6.13 | Calibre-Web Metadata cross site scripting |CVE-2021-25964| +| V 0.6.13 | Name of Shelves are only visible to users who can access the corresponding shelf Thanks to @ibarrionuevo || +| V 0.6.13 | JavaScript could get executed in the description field. Thanks to @ranjit-git and Hagai Wechsler (WhiteSource) || +| V 0.6.13 | JavaScript could get executed in a custom column of type "comment" field || +| V 0.6.13 | JavaScript could get executed after converting a book to another format with a title containing javascript code || +| V 0.6.13 | JavaScript could get executed after converting a book to another format with a username containing javascript code || +| V 0.6.13 | JavaScript could get executed in the description series, categories or publishers title || +| V 0.6.13 | JavaScript could get executed in the shelf title || +| V 0.6.13 | Login with the old session cookie after logout. Thanks to @ibarrionuevo || +| V 0.6.14 | CSRF was possible. Thanks to @mik317 and Hagai Wechsler (WhiteSource) |CVE-2021-25965| +| V 0.6.14 | Migrated some routes to POST-requests (CSRF protection). Thanks to @scara31 || +| V 0.6.15 | Fix for "javascript:" script links in identifier. Thanks to @scara31 || +| V 0.6.15 | Cross-Site Scripting vulnerability on uploaded cover file names. Thanks to @ibarrionuevo || +| V 0.6.15 | Creating public shelfs is now denied if user is missing the edit public shelf right. Thanks to @ibarrionuevo || +| V 0.6.15 | Changed error message in case of trying to delete a shelf unauthorized. Thanks to @ibarrionuevo || ## Staement regarding Log4j (CVE-2021-44228 and related) diff --git a/cps/about.py b/cps/about.py index ba5a99af..7e839520 100644 --- a/cps/about.py +++ b/cps/about.py @@ -74,13 +74,22 @@ opt = dep_check.load_dependencys(True) for i in (req + opt): ret[i[1]] = i[0] +if constants.NIGHTLY_VERSION[0] == "$Format:%H$": + calibre_web_version = constants.STABLE_VERSION['version'] +else: + calibre_web_version = (constants.STABLE_VERSION['version'] + ' - ' + + constants.NIGHTLY_VERSION[0].replace('%','%%') + ' - ' + + constants.NIGHTLY_VERSION[1].replace('%','%%')) +if getattr(sys, 'frozen', False): + calibre_web_version += " - Exe-Version" +elif constants.HOME_CONFIG: + calibre_web_version += " - pyPi" + if not ret: _VERSIONS = OrderedDict( Platform = '{0[0]} {0[2]} {0[3]} {0[4]} {0[5]}'.format(platform.uname()), Python=sys.version, - Calibre_Web=constants.STABLE_VERSION['version'] + ' - ' - + constants.NIGHTLY_VERSION[0].replace('%','%%') + ' - ' - + constants.NIGHTLY_VERSION[1].replace('%','%%'), + Calibre_Web=calibre_web_version, WebServer=server.VERSION, Flask=flask.__version__, Flask_Login=flask_loginVersion, @@ -110,9 +119,7 @@ else: _VERSIONS = OrderedDict( Platform = '{0[0]} {0[2]} {0[3]} {0[4]} {0[5]}'.format(platform.uname()), Python = sys.version, - Calibre_Web = constants.STABLE_VERSION['version'] + ' - ' - + constants.NIGHTLY_VERSION[0].replace('%', '%%') + ' - ' - + constants.NIGHTLY_VERSION[1].replace('%', '%%'), + Calibre_Web=calibre_web_version, Werkzeug = werkzeug.__version__, Jinja2=jinja2.__version__, pySqlite = sqlite3.version, diff --git a/cps/admin.py b/cps/admin.py index 04d9138f..c1931ea4 100644 --- a/cps/admin.py +++ b/cps/admin.py @@ -129,11 +129,11 @@ def admin_forbidden(): abort(403) -@admi.route("/shutdown") +@admi.route("/shutdown", methods=["POST"]) @login_required @admin_required def shutdown(): - task = int(request.args.get("parameter").strip()) + task = request.get_json().get('parameter', -1) showtext = {} if task in (0, 1): # valid commandos received # close all database connections @@ -756,7 +756,12 @@ def prepare_tags(user, action, tags_name, id_list): return ",".join(saved_tags_list) -@admi.route("/ajax/addrestriction/", defaults={"user_id": 0}, methods=['POST']) +@admi.route("/ajax/addrestriction/", methods=['POST']) +@login_required +@admin_required +def add_user_0_restriction(res_type): + return add_restriction(res_type, 0) + @admi.route("/ajax/addrestriction//", methods=['POST']) @login_required @admin_required @@ -803,7 +808,13 @@ def add_restriction(res_type, user_id): return "" -@admi.route("/ajax/deleterestriction/", defaults={"user_id": 0}, methods=['POST']) +@admi.route("/ajax/deleterestriction/", methods=['POST']) +@login_required +@admin_required +def delete_user_0_restriction(res_type): + return delete_restriction(res_type, 0) + + @admi.route("/ajax/deleterestriction//", methods=['POST']) @login_required @admin_required @@ -895,7 +906,7 @@ def list_restriction(res_type, user_id): response.headers["Content-Type"] = "application/json; charset=utf-8" return response -@admi.route("/ajax/fullsync") +@admi.route("/ajax/fullsync", methods=["POST"]) @login_required def ajax_fullsync(): count = ub.session.query(ub.KoboSyncedBooks).filter(current_user.id == ub.KoboSyncedBooks.user_id).delete() @@ -1404,16 +1415,25 @@ def _delete_user(content): for us in ub.session.query(ub.Shelf).filter(content.id == ub.Shelf.user_id): ub.session.query(ub.BookShelf).filter(us.id == ub.BookShelf.shelf).delete() ub.session.query(ub.Shelf).filter(content.id == ub.Shelf.user_id).delete() + ub.session.query(ub.Bookmark).filter(content.id == ub.Bookmark.user_id).delete() ub.session.query(ub.User).filter(ub.User.id == content.id).delete() + ub.session.query(ub.ArchivedBook).filter(ub.ArchivedBook.user_id == content.id).delete() + ub.session.query(ub.RemoteAuthToken).filter(ub.RemoteAuthToken.user_id == content.id).delete() + ub.session.query(ub.User_Sessions).filter(ub.User_Sessions.user_id == content.id).delete() + ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.user_id == content.id).delete() + # delete KoboReadingState and all it's children + kobo_entries = ub.session.query(ub.KoboReadingState).filter(ub.KoboReadingState.user_id == content.id).all() + for kobo_entry in kobo_entries: + ub.session.delete(kobo_entry) ub.session_commit() - log.info(u"User {} deleted".format(content.name)) - return(_(u"User '%(nick)s' deleted", nick=content.name)) + log.info("User {} deleted".format(content.name)) + return(_("User '%(nick)s' deleted", nick=content.name)) else: - log.warning(_(u"Can't delete Guest User")) - raise Exception(_(u"Can't delete Guest User")) + log.warning(_("Can't delete Guest User")) + raise Exception(_("Can't delete Guest User")) else: - log.warning(u"No admin user remaining, can't delete user") - raise Exception(_(u"No admin user remaining, can't delete user")) + log.warning("No admin user remaining, can't delete user") + raise Exception(_("No admin user remaining, can't delete user")) def _handle_edit_user(to_save, content, languages, translations, kobo_support): @@ -1615,7 +1635,7 @@ def edit_user(user_id): page="edituser") -@admi.route("/admin/resetpassword/") +@admi.route("/admin/resetpassword/", methods=["POST"]) @login_required @admin_required def reset_user_password(user_id): @@ -1791,7 +1811,7 @@ def ldap_import_create_user(user, user_data): return 0, message -@admi.route('/import_ldap_users') +@admi.route('/import_ldap_users', methods=["POST"]) @login_required @admin_required def import_ldap_users(): diff --git a/cps/cli.py b/cps/cli.py index 3685e8e2..31ea8417 100644 --- a/cps/cli.py +++ b/cps/cli.py @@ -45,6 +45,7 @@ parser.add_argument('-v', '--version', action='version', help='Shows version num parser.add_argument('-i', metavar='ip-address', help='Server IP-Address to listen') parser.add_argument('-s', metavar='user:pass', help='Sets specific username to new password') parser.add_argument('-f', action='store_true', help='Flag is depreciated and will be removed in next version') +parser.add_argument('-l', action='store_true', help='Allow loading covers from localhost') args = parser.parse_args() settingspath = args.p or os.path.join(_CONFIG_DIR, "app.db") @@ -77,6 +78,8 @@ if (args.k and not args.c) or (not args.k and args.c): if args.k == "": keyfilepath = "" +# load covers from localhost +allow_localhost = args.l or None # handle and check ip address argument ip_address = args.i or None if ip_address: diff --git a/cps/comic.py b/cps/comic.py index b094c60f..64711460 100644 --- a/cps/comic.py +++ b/cps/comic.py @@ -56,25 +56,25 @@ COVER_EXTENSIONS = ['.png', '.webp', '.bmp', '.jpg', '.jpeg'] def _cover_processing(tmp_file_name, img, extension): tmp_cover_name = os.path.join(os.path.dirname(tmp_file_name), 'cover.jpg') - if use_IM: - # convert to jpg because calibre only supports jpg - if extension in NO_JPEG_EXTENSIONS: - with Image(filename=tmp_file_name) as imgc: + if extension in NO_JPEG_EXTENSIONS: + if use_IM: + with Image(blob=img) as imgc: imgc.format = 'jpeg' imgc.transform_colorspace('rgb') - imgc.save(tmp_cover_name) + imgc.save(filename=tmp_cover_name) return tmp_cover_name - - if not img: + else: + return None + if img: + with open(tmp_cover_name, 'wb') as f: + f.write(img) + return tmp_cover_name + else: return None - with open(tmp_cover_name, 'wb') as f: - f.write(img) - return tmp_cover_name - def _extract_Cover_from_archive(original_file_extension, tmp_file_name, rarExecutable): - cover_data = None + cover_data = extension = None if original_file_extension.upper() == '.CBZ': cf = zipfile.ZipFile(tmp_file_name) for name in cf.namelist(): @@ -106,7 +106,7 @@ def _extract_Cover_from_archive(original_file_extension, tmp_file_name, rarExecu break except Exception as ex: log.debug('Rarfile failed with error: %s', ex) - return cover_data + return cover_data, extension def _extractCover(tmp_file_name, original_file_extension, rarExecutable): @@ -121,7 +121,7 @@ def _extractCover(tmp_file_name, original_file_extension, rarExecutable): cover_data = archive.getPage(index) break else: - cover_data = _extract_Cover_from_archive(original_file_extension, tmp_file_name, rarExecutable) + cover_data, extension = _extract_Cover_from_archive(original_file_extension, tmp_file_name, rarExecutable) return _cover_processing(tmp_file_name, cover_data, extension) diff --git a/cps/constants.py b/cps/constants.py index e37ad900..7fb973fc 100644 --- a/cps/constants.py +++ b/cps/constants.py @@ -151,7 +151,7 @@ def selected_roles(dictionary): BookMeta = namedtuple('BookMeta', 'file_path, extension, title, author, cover, description, tags, series, ' 'series_id, languages, publisher') -STABLE_VERSION = {'version': '0.6.15 Beta'} +STABLE_VERSION = {'version': '0.6.16 Beta'} NIGHTLY_VERSION = {} NIGHTLY_VERSION[0] = '$Format:%H$' diff --git a/cps/db.py b/cps/db.py index 0359d3d2..aa697ec6 100644 --- a/cps/db.py +++ b/cps/db.py @@ -23,6 +23,7 @@ import re import ast import json from datetime import datetime +from urllib.parse import quote from sqlalchemy import create_engine from sqlalchemy import Table, Column, ForeignKey, CheckConstraint @@ -164,6 +165,8 @@ class Identifiers(Base): return u"https://portal.issn.org/resource/ISSN/{0}".format(self.val) elif format_type == "isfdb": return u"http://www.isfdb.org/cgi-bin/pl.cgi?{0}".format(self.val) + elif self.val.lower().startswith("javascript:"): + return quote(self.val) else: return u"{0}".format(self.val) @@ -172,8 +175,8 @@ class Comments(Base): __tablename__ = 'comments' id = Column(Integer, primary_key=True) + book = Column(Integer, ForeignKey('books.id'), nullable=False, unique=True) text = Column(String(collation='NOCASE'), nullable=False) - book = Column(Integer, ForeignKey('books.id'), nullable=False) def __init__(self, text, book): self.text = text @@ -872,23 +875,24 @@ class CalibreDB(): def speaking_language(self, languages=None, return_all_languages=False, with_count=False, reverse_order=False): from . import get_locale - if not languages: - if with_count: + if with_count: + if not languages: languages = self.session.query(Languages, func.count('books_languages_link.book'))\ .join(books_languages_link).join(Books)\ .filter(self.common_filters(return_all_languages=return_all_languages)) \ .group_by(text('books_languages_link.lang_code')).all() - for lang in languages: - lang[0].name = isoLanguages.get_language_name(get_locale(), lang[0].lang_code) - return sorted(languages, key=lambda x: x[0].name, reverse=reverse_order) - else: + for lang in languages: + lang[0].name = isoLanguages.get_language_name(get_locale(), lang[0].lang_code) + return sorted(languages, key=lambda x: x[0].name, reverse=reverse_order) + else: + if not languages: languages = self.session.query(Languages) \ .join(books_languages_link) \ .join(Books) \ .filter(self.common_filters(return_all_languages=return_all_languages)) \ .group_by(text('books_languages_link.lang_code')).all() - for lang in languages: - lang.name = isoLanguages.get_language_name(get_locale(), lang.lang_code) + for lang in languages: + lang.name = isoLanguages.get_language_name(get_locale(), lang.lang_code) return sorted(languages, key=lambda x: x.name, reverse=reverse_order) diff --git a/cps/editbooks.py b/cps/editbooks.py old mode 100644 new mode 100755 index 8bbe8208..84bd7b2b --- a/cps/editbooks.py +++ b/cps/editbooks.py @@ -26,6 +26,8 @@ import json from shutil import copyfile from uuid import uuid4 from markupsafe import escape +from functools import wraps + try: from lxml.html.clean import clean_html except ImportError: @@ -52,13 +54,6 @@ from .render_template import render_title_template from .usermanagement import login_required_if_no_ano from .kobo_sync_status import change_archived_books -try: - from functools import wraps -except ImportError: - pass # We're not using Python 3 - - - editbook = Blueprint('editbook', __name__) log = logger.create() @@ -238,14 +233,14 @@ def modify_identifiers(input_identifiers, db_identifiers, db_session): changed = True return changed, error -@editbook.route("/ajax/delete/") +@editbook.route("/ajax/delete/", methods=["POST"]) @login_required def delete_book_from_details(book_id): return Response(delete_book_from_table(book_id, "", True), mimetype='application/json') -@editbook.route("/delete/", defaults={'book_format': ""}) -@editbook.route("/delete//") +@editbook.route("/delete/", defaults={'book_format': ""}, methods=["POST"]) +@editbook.route("/delete//", methods=["POST"]) @login_required def delete_book_ajax(book_id, book_format): return delete_book_from_table(book_id, book_format, False) @@ -347,6 +342,8 @@ def delete_book_from_table(book_id, book_format, jsonResponse): else: calibre_db.session.query(db.Data).filter(db.Data.book == book.id).\ filter(db.Data.format == book_format).delete() + if book_format.upper() in ['KEPUB', 'EPUB', 'EPUB3']: + kobo_sync_status.remove_synced_book(book.id, True) calibre_db.session.commit() except Exception as ex: log.debug_or_exception(ex) @@ -363,7 +360,16 @@ def delete_book_from_table(book_id, book_format, jsonResponse): else: # book not found log.error('Book with id "%s" could not be deleted: not found', book_id) - return render_delete_book_result(book_format, jsonResponse, warning, book_id) + return render_delete_book_result(book_format, jsonResponse, warning, book_id) + message = _("You are missing permissions to delete books") + if jsonResponse: + return json.dumps({"location": url_for("editbook.edit_book", book_id=book_id), + "type": "danger", + "format": "", + "message": message}) + else: + flash(message, category="error") + return redirect(url_for('editbook.edit_book', book_id=book_id)) def render_edit_book(book_id): @@ -847,7 +853,7 @@ def edit_book(book_id): if modif_date: book.last_modified = datetime.utcnow() - kobo_sync_status.remove_synced_book(edited_books_id) + kobo_sync_status.remove_synced_book(edited_books_id, all=True) calibre_db.session.merge(book) calibre_db.session.commit() @@ -1041,7 +1047,7 @@ def move_coverfile(meta, db_book): category="error") -@editbook.route("/upload", methods=["GET", "POST"]) +@editbook.route("/upload", methods=["POST"]) @login_required_if_no_ano @upload_required def upload(): diff --git a/cps/gdrive.py b/cps/gdrive.py index 6ca73ca9..e782cb9e 100644 --- a/cps/gdrive.py +++ b/cps/gdrive.py @@ -109,7 +109,7 @@ def revoke_watch_gdrive(): try: gdriveutils.stopChannel(gdriveutils.Gdrive.Instance().drive, last_watch_response['id'], last_watch_response['resourceId']) - except HttpError: + except (HttpError, AttributeError): pass config.config_google_drive_watch_changes_response = {} config.save() diff --git a/cps/gdriveutils.py b/cps/gdriveutils.py index 878c1f9f..c4445944 100644 --- a/cps/gdriveutils.py +++ b/cps/gdriveutils.py @@ -56,11 +56,13 @@ try: from pydrive2.auth import GoogleAuth from pydrive2.drive import GoogleDrive from pydrive2.auth import RefreshError + from pydrive2.files import ApiRequestError except ImportError as err: try: from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive from pydrive.auth import RefreshError + from pydrive.files import ApiRequestError except ImportError as err: importError = err gdrive_support = False @@ -322,6 +324,11 @@ def getFolderId(path, drive): log.error("gdrive.db DB is not Writeable") log.debug('Database error: %s', ex) session.rollback() + except ApiRequestError as ex: + log.error('{} {}'.format(ex.error['message'], path)) + session.rollback() + except RefreshError as ex: + log.error(ex) return currentFolderId diff --git a/cps/helper.py b/cps/helper.py index 21dab9a3..29c9e3bf 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -17,18 +17,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import sys import os import io import mimetypes import re import shutil -import time +import socket import unicodedata from datetime import datetime, timedelta from tempfile import gettempdir - +from urllib.parse import urlparse import requests + from babel.dates import format_datetime from babel.units import format_unit from flask import send_from_directory, make_response, redirect, abort, url_for @@ -38,11 +38,7 @@ from sqlalchemy.sql.expression import true, false, and_, text, func from werkzeug.datastructures import Headers from werkzeug.security import generate_password_hash from markupsafe import escape - -try: - from urllib.parse import quote -except ImportError: - from urllib import quote +from urllib.parse import quote try: import unidecode @@ -50,7 +46,7 @@ try: except ImportError: use_unidecode = False -from . import calibre_db +from . import calibre_db, cli from .tasks.convert import TaskConvert from . import logger, config, get_locale, db, ub, kobo_sync_status from . import gdriveutils as gd @@ -673,10 +669,17 @@ def get_book_cover_internal(book, use_generic_cover_on_failure): # saves book cover from url def save_cover_from_url(url, book_path): try: + if not cli.allow_localhost: + # 127.0.x.x, localhost, [::1], [::ffff:7f00:1] + ip = socket.getaddrinfo(urlparse(url).hostname, 0)[0][4][0] + if ip.startswith("127.") or ip.startswith('::ffff:7f') or ip == "::1": + log.error("Localhost was accessed for cover upload") + return False, _("You are not allowed to access localhost for cover uploads") img = requests.get(url, timeout=(10, 200)) # ToDo: Error Handling img.raise_for_status() return save_cover(img, book_path) - except (requests.exceptions.HTTPError, + except (socket.gaierror, + requests.exceptions.HTTPError, requests.exceptions.ConnectionError, requests.exceptions.Timeout) as ex: log.info(u'Cover Download Error %s', ex) @@ -758,9 +761,9 @@ def save_cover(img, book_path): def do_download_file(book, book_format, client, data, headers): if config.config_use_google_drive: - startTime = time.time() + #startTime = time.time() df = gd.getFileFromEbooksFolder(book.path, data.name + "." + book_format) - log.debug('%s', time.time() - startTime) + #log.debug('%s', time.time() - startTime) if df: return gd.do_gdrive_download(df, headers) else: diff --git a/cps/iso_language_names.py b/cps/iso_language_names.py index c6267ffd..f86e5612 100644 --- a/cps/iso_language_names.py +++ b/cps/iso_language_names.py @@ -102,6 +102,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolanguage)", "dsb": "Sorbian; Lower", + "dse": "holandský znakový jazyk", "dua": "dualština", "dum": "Dutch; Middle (ca. 1050-1350)", "dyu": "djula", @@ -526,6 +527,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (Makrosprache)", "dsb": "Sorbisch; Nieder", + "dse": "Niederländische Zeichensprache", "dua": "Duala", "dum": "Niederländisch; Mittel (ca. 1050-1350)", "dyu": "Dyula", @@ -945,6 +947,7 @@ LANGUAGE_NAMES = { "dgr": "Dogrib", "dua": "Duala", "nld": "Ολλανδικά", + "dse": "Ολλανδική νοηματική γλώσσα", "dyu": "Dyula", "dzo": "Dzongkha", "efi": "Efik", @@ -1329,6 +1332,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolengua)", "dsb": "Bajo sorabo", + "dse": "Lengua de signos neerlandesa", "dua": "Duala", "dum": "Neerlandés medio (ca. 1050-1350)", "dyu": "Diula", @@ -1753,6 +1757,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolanguage)", "dsb": "alasorbi", + "dse": "Dutch Sign Language", "dua": "duala", "dum": "Dutch; Middle (ca. 1050-1350)", "dyu": "dyula", @@ -2177,6 +2182,7 @@ LANGUAGE_NAMES = { "div": "dhivehi", "doi": "dogri (macrolangue)", "dsb": "bas-sorbien", + "dse": "langue des signes néerlandaise", "dua": "duala", "dum": "néerlandais moyen (environ 1050-1350)", "dyu": "dioula", @@ -2601,6 +2607,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolanguage)", "dsb": "Sorbian; Lower", + "dse": "Dutch Sign Language", "dua": "duala", "dum": "Dutch; Middle (ca. 1050-1350)", "dyu": "djula", @@ -3025,6 +3032,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolingua)", "dsb": "Lusaziano inferiore", + "dse": "Olandense (linguaggio dei segni)", "dua": "Duala", "dum": "Olandese medio (ca. 1050-1350)", "dyu": "Diula", @@ -3449,6 +3457,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolanguage)", "dsb": "Sorbian; Lower", + "dse": "Dutch Sign Language", "dua": "ドゥアラ語", "dum": "Dutch; Middle (ca. 1050-1350)", "dyu": "デュラ語", @@ -3873,6 +3882,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolanguage)", "dsb": "Sorbian; Lower", + "dse": "Dutch Sign Language", "dua": "Duala", "dum": "Dutch; Middle (ca. 1050-1350)", "dyu": "Dyula", @@ -4207,6 +4217,384 @@ LANGUAGE_NAMES = { "zxx": "No linguistic content", "zza": "Zaza" }, + "ko": { + "abk": "압하스어", + "ace": "아체어", + "ach": "아촐리어", + "ada": "Adangme", + "ady": "Adyghe", + "aar": "아파르어", + "afh": "Afrihili", + "afr": "아프리칸스어", + "ain": "Ainu (Japan)", + "aka": "Akan", + "akk": "Akkadian", + "sqi": "Albanian", + "ale": "Aleut", + "amh": "Amharic", + "anp": "Angika", + "ara": "아라비아어", + "arg": "Aragonese", + "arp": "Arapaho", + "arw": "Arawak", + "hye": "아르메니아어", + "asm": "Assamese", + "ast": "Asturian", + "ava": "Avaric", + "ave": "아베스타어", + "awa": "Awadhi", + "aym": "Aymara", + "aze": "Azerbaijani", + "ban": "발리 문자", + "bal": "Baluchi", + "bam": "Bambara", + "bas": "Basa (Cameroon)", + "bak": "Bashkir", + "eus": "바스크어", + "bej": "Beja", + "bel": "벨로루시어", + "bem": "Bemba (Zambia)", + "ben": "벵골 문자", + "bit": "Berinomo", + "bho": "Bhojpuri", + "bik": "Bikol", + "byn": "Bilin", + "bin": "Bini", + "bis": "Bislama", + "zbl": "Blissymbols", + "bos": "Bosnian", + "bra": "Braj", + "bre": "Breton", + "bug": "부기 문자", + "bul": "불가리아어", + "bua": "Buriat", + "mya": "Burmese", + "cad": "Caddo", + "cat": "카탈로니아어", + "ceb": "Cebuano", + "chg": "Chagatai", + "cha": "Chamorro", + "che": "Chechen", + "chr": "체로키 문자", + "chy": "Cheyenne", + "chb": "Chibcha", + "zho": "중국어", + "chn": "Chinook jargon", + "chp": "Chipewyan", + "cho": "Choctaw", + "cht": "Cholón", + "chk": "Chuukese", + "chv": "Chuvash", + "cop": "콥트어", + "cor": "Cornish", + "cos": "Corsican", + "cre": "Cree", + "mus": "Creek", + "hrv": "크로아티아어", + "ces": "체크어", + "dak": "Dakota", + "dan": "덴마크어", + "dar": "Dargwa", + "del": "Delaware", + "div": "Dhivehi", + "din": "Dinka", + "doi": "Dogri (macrolanguage)", + "dgr": "Dogrib", + "dua": "Duala", + "nld": "네덜란드어", + "dse": "Dutch Sign Language", + "dyu": "Dyula", + "dzo": "Dzongkha", + "efi": "Efik", + "egy": "Egyptian (Ancient)", + "eka": "Ekajuk", + "elx": "Elamite", + "eng": "영어", + "enu": "Enu", + "myv": "Erzya", + "epo": "에스페란토어", + "est": "에스토니아어", + "ewe": "Ewe", + "ewo": "Ewondo", + "fan": "Fang (Equatorial Guinea)", + "fat": "Fanti", + "fao": "페로스어", + "fij": "Fijian", + "fil": "Filipino", + "fin": "핀란드어", + "fon": "Fon", + "fra": "프랑스어", + "fur": "Friulian", + "ful": "Fulah", + "gaa": "Ga", + "glg": "Galician", + "lug": "Ganda", + "gay": "Gayo", + "gba": "Gbaya (Central African Republic)", + "hmj": "Ge", + "gez": "Geez", + "kat": "그루지야어", + "deu": "독일어", + "gil": "Gilbertese", + "gon": "Gondi", + "gor": "Gorontalo", + "got": "고트어", + "grb": "Grebo", + "grn": "Guarani", + "guj": "구자라트 문자", + "gwi": "Gwichʼin", + "hai": "Haida", + "hau": "Hausa", + "haw": "Hawaiian", + "heb": "헤브루어", + "her": "Herero", + "hil": "Hiligaynon", + "hin": "Hindi", + "hmo": "Hiri Motu", + "hit": "Hittite", + "hmn": "Hmong", + "hun": "헝가리어", + "hup": "Hupa", + "iba": "Iban", + "isl": "아이슬란드어", + "ido": "Ido", + "ibo": "Igbo", + "ilo": "Iloko", + "ind": "인도네시아어", + "inh": "Ingush", + "ina": "Interlingua (International Auxiliary Language Association)", + "ile": "Interlingue", + "iku": "Inuktitut", + "ipk": "Inupiaq", + "gle": "아일랜드어", + "ita": "이탈리아어", + "jpn": "일본어", + "jav": "Javanese", + "jrb": "Judeo-Arabic", + "jpr": "Judeo-Persian", + "kbd": "Kabardian", + "kab": "Kabyle", + "kac": "Kachin", + "kal": "Kalaallisut", + "xal": "Kalmyk", + "kam": "Kamba (Kenya)", + "kan": " 칸나다 문자", + "kau": "Kanuri", + "kaa": "Kara-Kalpak", + "krc": "Karachay-Balkar", + "krl": "Karelian", + "kas": "Kashmiri", + "csb": "Kashubian", + "kaw": "Kawi", + "kaz": "Kazakh", + "kha": "Khasi", + "kho": "Khotanese", + "kik": "Kikuyu", + "kmb": "Kimbundu", + "kin": "Kinyarwanda", + "kir": "Kirghiz", + "tlh": "Klingon", + "kom": "Komi", + "kon": "Kongo", + "kok": "Konkani (macrolanguage)", + "kor": "한국어", + "kos": "Kosraean", + "kpe": "Kpelle", + "kua": "Kuanyama", + "kum": "Kumyk", + "kur": "Kurdish", + "kru": "Kurukh", + "kut": "Kutenai", + "lad": "Ladino", + "lah": "Lahnda", + "lam": "Lamba", + "lao": "라오 문자", + "lat": "Latin", + "lav": "라트비아어", + "lez": "Lezghian", + "lim": "Limburgan", + "lin": "Lingala", + "lit": "리투아니아어", + "jbo": "Lojban", + "loz": "Lozi", + "lub": "Luba-Katanga", + "lua": "Luba-Lulua", + "lui": "Luiseno", + "smj": "Lule Sami", + "lun": "Lunda", + "luo": "Luo (Kenya and Tanzania)", + "lus": "Lushai", + "ltz": "Luxembourgish", + "mkd": "마케도니아어", + "mad": "Madurese", + "mag": "Magahi", + "mai": "Maithili", + "mak": "Makasar", + "mlg": "Malagasy", + "msa": "Malay (macrolanguage)", + "mal": "말라얄람 문자", + "mlt": "Maltese", + "mnc": "Manchu", + "mdr": "Mandar", + "man": "Mandingo", + "mni": "Manipuri", + "glv": "Manx", + "mri": "Maori", + "arn": "Mapudungun", + "mar": "Marathi", + "chm": "Mari (Russia)", + "mah": "Marshallese", + "mwr": "Marwari", + "mas": "Masai", + "men": "Mende (Sierra Leone)", + "mic": "Mi'kmaq", + "min": "Minangkabau", + "mwl": "Mirandese", + "moh": "Mohawk", + "mdf": "Moksha", + "lol": "Mongo", + "mon": "몽골 문자", + "mos": "Mossi", + "mul": "Multiple languages", + "nqo": "응코 문자", + "nau": "나우루어", + "nav": "나바호어", + "ndo": "Ndonga", + "nap": "Neapolitan", + "nia": "Nias", + "niu": "Niuean", + "zxx": "No linguistic content", + "nog": "Nogai", + "nor": "노르웨이어", + "nob": "Norwegian Bokmål", + "nno": "Norwegian Nynorsk", + "nym": "Nyamwezi", + "nya": "Nyanja", + "nyn": "Nyankole", + "nyo": "Nyoro", + "nzi": "Nzima", + "oci": "Occitan (post 1500)", + "oji": "Ojibwa", + "orm": "Oromo", + "osa": "Osage", + "oss": "Ossetian", + "pal": "Pahlavi", + "pau": "Palauan", + "pli": "Pali", + "pam": "Pampanga", + "pag": "Pangasinan", + "pan": "Panjabi", + "pap": "Papiamento", + "fas": "Persian", + "phn": " 페니키아 문자", + "pon": "Pohnpeian", + "pol": "폴란드어", + "por": "포르투갈어", + "pus": "Pashto", + "que": "Quechua", + "raj": "Rajasthani", + "rap": "Rapanui", + "ron": "루마니아어", + "roh": "Romansh", + "rom": "Romany", + "run": "Rundi", + "rus": "러시아어", + "smo": "Samoan", + "sad": "Sandawe", + "sag": "Sango", + "san": "Sanskrit", + "sat": "Santali", + "srd": "Sardinian", + "sas": "Sasak", + "sco": "Scots", + "sel": "Selkup", + "srp": "세르비아어", + "srr": "Serer", + "shn": "Shan", + "sna": "Shona", + "scn": "Sicilian", + "sid": "Sidamo", + "bla": "Siksika", + "snd": "Sindhi", + "sin": "싱할라 문자", + "den": "Slave (Athapascan)", + "slk": "슬로바키아어", + "slv": "슬로베니아어", + "sog": "Sogdian", + "som": "Somali", + "snk": "Soninke", + "spa": "스페인어", + "srn": "Sranan Tongo", + "suk": "Sukuma", + "sux": "Sumerian", + "sun": "Sundanese", + "sus": "Susu", + "swa": "Swahili (macrolanguage)", + "ssw": "Swati", + "swe": "스웨덴어", + "syr": "시리아 문자", + "tgl": "타갈로그 문자", + "tah": "Tahitian", + "tgk": "Tajik", + "tmh": "Tamashek", + "tam": "타밀 문자", + "tat": "Tatar", + "tel": "텔루구 문자", + "ter": "Tereno", + "tet": "Tetum", + "tha": "태국어", + "bod": "티베트 문자", + "tig": "Tigre", + "tir": "Tigrinya", + "tem": "Timne", + "tiv": "Tiv", + "tli": "Tlingit", + "tpi": "Tok Pisin", + "tkl": "Tokelau", + "tog": "Tonga (Nyasa)", + "ton": "Tonga (Tonga Islands)", + "tsi": "Tsimshian", + "tso": "Tsonga", + "tsn": "Tswana", + "tum": "Tumbuka", + "tur": "터키어", + "tuk": "Turkmen", + "tvl": "Tuvalu", + "tyv": "Tuvinian", + "twi": "Twi", + "udm": "Udmurt", + "uga": "우가리트 문자", + "uig": "Uighur", + "ukr": "Ukrainian", + "umb": "Umbundu", + "mis": "Uncoded languages", + "und": "Undetermined", + "urd": "Urdu", + "uzb": "Uzbek", + "vai": "Vai", + "ven": "Venda", + "vie": "베트남어", + "vol": "Volapük", + "vot": "Votic", + "wln": "Walloon", + "war": "Waray (Philippines)", + "was": "Washo", + "cym": "Welsh", + "wal": "Wolaytta", + "wol": "Wolof", + "xho": "Xhosa", + "sah": "Yakut", + "yao": "Yao", + "yap": "Yapese", + "yid": "Yiddish", + "yor": "Yoruba", + "zap": "Zapotec", + "zza": "Zaza", + "zen": "Zenaga", + "zha": "Zhuang", + "zul": "Zulu", + "zun": "Zuni" + }, "nl": { "aar": "Afar; Hamitisch", "abk": "Abchazisch", @@ -4297,6 +4685,7 @@ LANGUAGE_NAMES = { "div": "Divehi", "doi": "Dogri", "dsb": "Sorbisch; lager", + "dse": "Nederlandse gebarentaal", "dua": "Duala", "dum": "Nederlands; middel (ca. 1050-1350)", "dyu": "Dyula", @@ -4721,6 +5110,7 @@ LANGUAGE_NAMES = { "div": "malediwski; divehi", "doi": "dogri (makrojęzyk)", "dsb": "dolnołużycki", + "dse": "holenderski język migowy", "dua": "duala", "dum": "holenderski średniowieczny (ok. 1050-1350)", "dyu": "diula", @@ -5140,6 +5530,7 @@ LANGUAGE_NAMES = { "dgr": "Dogrib", "dua": "Duala", "nld": "Holandês", + "dse": "Língua gestual holandesa", "dyu": "Dyula", "dzo": "Dzongkha", "efi": "Efik", @@ -5522,6 +5913,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolanguage)", "dsb": "Sorbian; Lower", + "dse": "Dutch Sign Language", "dua": "Дуала", "dum": "Dutch; Middle (ca. 1050-1350)", "dyu": "Диула (Дьюла)", @@ -5946,6 +6338,7 @@ LANGUAGE_NAMES = { "div": "Divehi", "doi": "Dogri (macrolanguage)", "dsb": "Sorbian; nedre", + "dse": "Nederländskt teckenspråk", "dua": "Duala", "dum": "Hollänska; medeltida (ca. 1050-1350)", "dyu": "Dyula", @@ -6365,6 +6758,7 @@ LANGUAGE_NAMES = { "dgr": "Dogrib (Kanada)", "dua": "Duala (Afrika)", "nld": "Flâmanca (Hollanda dili)", + "dse": "Hollandalı İşaret Dili", "dyu": "Dyula (Burkina Faso; Mali)", "dzo": "Dzongkha (Butan)", "efi": "Efik (Afrika)", @@ -6747,6 +7141,7 @@ LANGUAGE_NAMES = { "div": "мальдивська", "doi": "догрі (макромова)", "dsb": "нижньолужицька", + "dse": "голландська мова жестів", "dua": "дуала", "dum": "середньовічна голландська (бл. 1050-1350)", "dyu": "діула", @@ -7171,6 +7566,7 @@ LANGUAGE_NAMES = { "div": "迪维希语", "doi": "多格拉语", "dsb": "索布语(下)", + "dse": "荷兰手语", "dua": "杜亚拉语", "dum": "荷兰语(中古,约 1050-1350)", "dyu": "迪尤拉语", @@ -7590,6 +7986,7 @@ LANGUAGE_NAMES = { "dgr": "Dogrib", "dua": "Duala", "nld": "荷蘭文", + "dse": "Dutch Sign Language", "dyu": "Dyula", "dzo": "Dzongkha", "efi": "Efik", @@ -7973,6 +8370,7 @@ LANGUAGE_NAMES = { "div": "Dhivehi", "doi": "Dogri (macrolanguage)", "dsb": "Sorbian; Lower", + "dse": "Dutch Sign Language", "dua": "Duala", "dum": "Dutch; Middle (ca. 1050-1350)", "dyu": "Dyula", diff --git a/cps/kobo.py b/cps/kobo.py index ef9a9476..de56a2f5 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -23,11 +23,7 @@ import os import uuid from time import gmtime, strftime import json - -try: - from urllib import unquote -except ImportError: - from urllib.parse import unquote +from urllib.parse import unquote from flask import ( Blueprint, @@ -177,10 +173,10 @@ def HandleSyncRequest(): ub.BookShelf.date_added, ub.ArchivedBook.is_archived) changed_entries = (changed_entries - .join(db.Data).outerjoin(ub.ArchivedBook, db.Books.id == ub.ArchivedBook.book_id) - .join(ub.KoboSyncedBooks, ub.KoboSyncedBooks.book_id == db.Books.id, isouter=True) - .filter(or_(ub.KoboSyncedBooks.user_id != current_user.id, - ub.KoboSyncedBooks.book_id == None)) + .join(db.Data).outerjoin(ub.ArchivedBook, and_(db.Books.id == ub.ArchivedBook.book_id, + ub.ArchivedBook.user_id == current_user.id)) + .filter(db.Books.id.notin_(calibre_db.session.query(ub.KoboSyncedBooks.book_id) + .filter(ub.KoboSyncedBooks.user_id == current_user.id))) .filter(ub.BookShelf.date_added > sync_token.books_last_modified) .filter(db.Data.format.in_(KOBO_FORMATS)) .filter(calibre_db.common_filters(allow_show_archived=True)) @@ -200,11 +196,11 @@ def HandleSyncRequest(): ub.ArchivedBook.last_modified, ub.ArchivedBook.is_archived) changed_entries = (changed_entries - .join(db.Data).outerjoin(ub.ArchivedBook, db.Books.id == ub.ArchivedBook.book_id) - .join(ub.KoboSyncedBooks, ub.KoboSyncedBooks.book_id == db.Books.id, isouter=True) - .filter(or_(ub.KoboSyncedBooks.user_id != current_user.id, - ub.KoboSyncedBooks.book_id == None)) - .filter(calibre_db.common_filters()) + .join(db.Data).outerjoin(ub.ArchivedBook, and_(db.Books.id == ub.ArchivedBook.book_id, + ub.ArchivedBook.user_id == current_user.id)) + .filter(db.Books.id.notin_(calibre_db.session.query(ub.KoboSyncedBooks.book_id) + .filter(ub.KoboSyncedBooks.user_id == current_user.id))) + .filter(calibre_db.common_filters(allow_show_archived=True)) .filter(db.Data.format.in_(KOBO_FORMATS)) .order_by(db.Books.last_modified) .order_by(db.Books.id) @@ -261,10 +257,12 @@ def HandleSyncRequest(): if sqlalchemy_version2: max_change = calibre_db.session.execute(changed_entries .filter(ub.ArchivedBook.is_archived) + .filter(ub.ArchivedBook.user_id == current_user.id) .order_by(func.datetime(ub.ArchivedBook.last_modified).desc()))\ .columns(db.Books).first() else: - max_change = changed_entries.from_self().filter(ub.ArchivedBook.is_archived) \ + max_change = changed_entries.from_self().filter(ub.ArchivedBook.is_archived)\ + .filter(ub.ArchivedBook.user_id==current_user.id) \ .order_by(func.datetime(ub.ArchivedBook.last_modified).desc()).first() max_change = max_change.last_modified if max_change else new_archived_last_modified @@ -299,7 +297,8 @@ def HandleSyncRequest(): changed_reading_states = changed_reading_states.filter( and_(ub.KoboReadingState.user_id == current_user.id, - ub.KoboReadingState.book_id.notin_(reading_states_in_new_entitlements))) + ub.KoboReadingState.book_id.notin_(reading_states_in_new_entitlements)))\ + .order_by(ub.KoboReadingState.last_modified) cont_sync |= bool(changed_reading_states.count() > SYNC_ITEM_LIMIT) for kobo_reading_state in changed_reading_states.limit(SYNC_ITEM_LIMIT).all(): book = calibre_db.session.query(db.Books).filter(db.Books.id == kobo_reading_state.book_id).one_or_none() @@ -325,7 +324,7 @@ def HandleSyncRequest(): def generate_sync_response(sync_token, sync_results, set_cont=False): extra_headers = {} - if config.config_kobo_proxy: + if config.config_kobo_proxy and not set_cont: # Merge in sync results from the official Kobo store. try: store_response = make_request_to_kobo_store(sync_token) @@ -343,7 +342,7 @@ def generate_sync_response(sync_token, sync_results, set_cont=False): extra_headers["x-kobo-sync"] = "continue" sync_token.to_headers(extra_headers) - log.debug("Kobo Sync Content: {}".format(sync_results)) + # log.debug("Kobo Sync Content: {}".format(sync_results)) # jsonify decodes the unicode string different to what kobo expects response = make_response(json.dumps(sync_results), extra_headers) response.headers["Content-Type"] = "application/json; charset=utf-8" @@ -675,11 +674,8 @@ def HandleTagRemoveItem(tag_id): # Note: Public shelves that aren't owned by the user aren't supported. def sync_shelves(sync_token, sync_results, only_kobo_shelves=False): new_tags_last_modified = sync_token.tags_last_modified - - for shelf in ub.session.query(ub.ShelfArchive).filter( - func.datetime(ub.ShelfArchive.last_modified) > sync_token.tags_last_modified, - ub.ShelfArchive.user_id == current_user.id - ): + # transmit all archived shelfs independent of last sync (why should this matter?) + for shelf in ub.session.query(ub.ShelfArchive).filter(ub.ShelfArchive.user_id == current_user.id): new_tags_last_modified = max(shelf.last_modified, new_tags_last_modified) sync_results.append({ "DeletedTag": { @@ -692,7 +688,6 @@ def sync_shelves(sync_token, sync_results, only_kobo_shelves=False): ub.session.delete(shelf) ub.session_commit() - extra_filters = [] if only_kobo_shelves: for shelf in ub.session.query(ub.Shelf).filter( @@ -855,7 +850,7 @@ def get_ub_read_status(kobo_read_status): def get_or_create_reading_state(book_id): book_read = ub.session.query(ub.ReadBook).filter(ub.ReadBook.book_id == book_id, - ub.ReadBook.user_id == current_user.id).one_or_none() + ub.ReadBook.user_id == int(current_user.id)).one_or_none() if not book_read: book_read = ub.ReadBook(user_id=current_user.id, book_id=book_id) if not book_read.kobo_reading_state: diff --git a/cps/kobo_auth.py b/cps/kobo_auth.py index a51095c8..5668e6da 100644 --- a/cps/kobo_auth.py +++ b/cps/kobo_auth.py @@ -62,6 +62,7 @@ particular calls to non-Kobo specific endpoints such as the CalibreWeb book down from binascii import hexlify from datetime import datetime from os import urandom +from functools import wraps from flask import g, Blueprint, url_for, abort, request from flask_login import login_user, current_user, login_required @@ -70,11 +71,6 @@ from flask_babel import gettext as _ from . import logger, config, calibre_db, db, helper, ub, lm from .render_template import render_title_template -try: - from functools import wraps -except ImportError: - pass # We're not using Python 3 - log = logger.create() @@ -122,55 +118,49 @@ kobo_auth = Blueprint("kobo_auth", __name__, url_prefix="/kobo_auth") @kobo_auth.route("/generate_auth_token/") @login_required def generate_auth_token(user_id): + warning = False host_list = request.host.rsplit(':') if len(host_list) == 1: host = ':'.join(host_list) else: host = ':'.join(host_list[0:-1]) - if host.startswith('127.') or host.lower() == 'localhost' or host.startswith('[::ffff:7f'): - warning = _('PLease access calibre-web from non localhost to get valid api_endpoint for kobo device') - return render_title_template( - "generate_kobo_auth_url.html", - title=_(u"Kobo Setup"), - warning = warning - ) - else: - # Invalidate any prevously generated Kobo Auth token for this user. - auth_token = ub.session.query(ub.RemoteAuthToken).filter( - ub.RemoteAuthToken.user_id == user_id - ).filter(ub.RemoteAuthToken.token_type==1).first() + if host.startswith('127.') or host.lower() == 'localhost' or host.startswith('[::ffff:7f') or host == "[::1]": + warning = _('Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device') - if not auth_token: - auth_token = ub.RemoteAuthToken() - auth_token.user_id = user_id - auth_token.expiration = datetime.max - auth_token.auth_token = (hexlify(urandom(16))).decode("utf-8") - auth_token.token_type = 1 + # Generate auth token if none is existing for this user + auth_token = ub.session.query(ub.RemoteAuthToken).filter( + ub.RemoteAuthToken.user_id == user_id + ).filter(ub.RemoteAuthToken.token_type==1).first() - ub.session.add(auth_token) - ub.session_commit() + if not auth_token: + auth_token = ub.RemoteAuthToken() + auth_token.user_id = user_id + auth_token.expiration = datetime.max + auth_token.auth_token = (hexlify(urandom(16))).decode("utf-8") + auth_token.token_type = 1 - books = calibre_db.session.query(db.Books).join(db.Data).all() + ub.session.add(auth_token) + ub.session_commit() - for book in books: - formats = [data.format for data in book.data] - if not 'KEPUB' in formats and config.config_kepubifypath and 'EPUB' in formats: - helper.convert_book_format(book.id, config.config_calibre_dir, 'EPUB', 'KEPUB', current_user.name) + books = calibre_db.session.query(db.Books).join(db.Data).all() - return render_title_template( - "generate_kobo_auth_url.html", - title=_(u"Kobo Setup"), - kobo_auth_url=url_for( - "kobo.TopLevelEndpoint", auth_token=auth_token.auth_token, _external=True - ), - warning = False - ) + for book in books: + formats = [data.format for data in book.data] + if not 'KEPUB' in formats and config.config_kepubifypath and 'EPUB' in formats: + helper.convert_book_format(book.id, config.config_calibre_dir, 'EPUB', 'KEPUB', current_user.name) + + return render_title_template( + "generate_kobo_auth_url.html", + title=_(u"Kobo Setup"), + auth_token=auth_token.auth_token, + warning = warning + ) -@kobo_auth.route("/deleteauthtoken/") +@kobo_auth.route("/deleteauthtoken/", methods=["POST"]) @login_required def delete_auth_token(user_id): - # Invalidate any prevously generated Kobo Auth token for this user. + # Invalidate any previously generated Kobo Auth token for this user ub.session.query(ub.RemoteAuthToken).filter(ub.RemoteAuthToken.user_id == user_id)\ .filter(ub.RemoteAuthToken.token_type==1).delete() diff --git a/cps/kobo_sync_status.py b/cps/kobo_sync_status.py index 580ac8ea..19679e59 100644 --- a/cps/kobo_sync_status.py +++ b/cps/kobo_sync_status.py @@ -20,7 +20,8 @@ from flask_login import current_user from . import ub import datetime -from sqlalchemy.sql.expression import or_, and_ +from sqlalchemy.sql.expression import or_, and_, true +from sqlalchemy import exc # Add the current book id to kobo_synced_books table for current user, if entry is already present, # do nothing (safety precaution) @@ -36,10 +37,18 @@ def add_synced_books(book_id): # Select all entries of current book in kobo_synced_books table, which are from current user and delete them -def remove_synced_book(book_id): - ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == book_id) \ - .filter(ub.KoboSyncedBooks.user_id == current_user.id).delete() - ub.session_commit() +def remove_synced_book(book_id, all=False, session=None): + if not all: + user = ub.KoboSyncedBooks.user_id == current_user.id + else: + user = true() + if not session: + ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == book_id).filter(user).delete() + ub.session_commit() + else: + session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == book_id).filter(user).delete() + ub.session_commit(sess=session) + def change_archived_books(book_id, state=None, message=None): @@ -56,7 +65,7 @@ def change_archived_books(book_id, state=None, message=None): return archived_book.is_archived -# select all books which are synced by the current user and do not belong to a synced shelf and them to archive +# select all books which are synced by the current user and do not belong to a synced shelf and set them to archive # select all shelves from current user which are synced and do not belong to the "only sync" shelves def update_on_sync_shelfs(user_id): books_to_archive = (ub.session.query(ub.KoboSyncedBooks) @@ -71,6 +80,7 @@ def update_on_sync_shelfs(user_id): .filter(ub.KoboSyncedBooks.user_id == user_id).delete() ub.session_commit() + # Search all shelf which are currently not synced shelves_to_archive = ub.session.query(ub.Shelf).filter(ub.Shelf.user_id == user_id).filter( ub.Shelf.kobo_sync == 0).all() for a in shelves_to_archive: diff --git a/cps/logger.py b/cps/logger.py index 5847188b..053d0bd3 100644 --- a/cps/logger.py +++ b/cps/logger.py @@ -42,20 +42,15 @@ logging.addLevelName(logging.CRITICAL, "CRIT") class _Logger(logging.Logger): - def debug_or_exception(self, message, *args, **kwargs): + def debug_or_exception(self, message, stacklevel=2, *args, **kwargs): if sys.version_info > (3, 7): if is_debug_enabled(): - self.exception(message, stacklevel=2, *args, **kwargs) + self.exception(message, stacklevel=stacklevel, *args, **kwargs) else: - self.error(message, stacklevel=2, *args, **kwargs) - elif sys.version_info > (3, 0): - if is_debug_enabled(): - self.exception(message, stack_info=True, *args, **kwargs) - else: - self.error(message, *args, **kwargs) + self.error(message, stacklevel=stacklevel, *args, **kwargs) else: if is_debug_enabled(): - self.exception(message, *args, **kwargs) + self.exception(message, stack_info=True, *args, **kwargs) else: self.error(message, *args, **kwargs) diff --git a/cps/metadata_provider/comicvine.py b/cps/metadata_provider/comicvine.py index 8f496608..45e5f341 100644 --- a/cps/metadata_provider/comicvine.py +++ b/cps/metadata_provider/comicvine.py @@ -26,7 +26,7 @@ class ComicVine(Metadata): __name__ = "ComicVine" __id__ = "comicvine" - def search(self, query, __): + def search(self, query, generic_cover=""): val = list() apikey = "57558043c53943d5d1e96a9ad425b0eb85532ee6" if self.active: @@ -36,7 +36,7 @@ class ComicVine(Metadata): result = requests.get("https://comicvine.gamespot.com/api/search?api_key=" + apikey + "&resources=issue&query=" + query + "&sort=name:desc&format=json", headers=headers) - for r in result.json()['results']: + for r in result.json().get('results'): seriesTitle = r['volume'].get('name', "") if r.get('store_date'): dateFomers = r.get('store_date') diff --git a/cps/metadata_provider/google.py b/cps/metadata_provider/google.py index f3d02d8e..1bc8185b 100644 --- a/cps/metadata_provider/google.py +++ b/cps/metadata_provider/google.py @@ -26,14 +26,14 @@ class Google(Metadata): __name__ = "Google" __id__ = "google" - def search(self, query, __): + def search(self, query, generic_cover=""): if self.active: val = list() result = requests.get("https://www.googleapis.com/books/v1/volumes?q="+query.replace(" ","+")) - for r in result.json()['items']: + for r in result.json().get('items'): v = dict() v['id'] = r['id'] - v['title'] = r['volumeInfo']['title'] + v['title'] = r['volumeInfo'].get('title',"") v['authors'] = r['volumeInfo'].get('authors', []) v['description'] = r['volumeInfo'].get('description', "") v['publisher'] = r['volumeInfo'].get('publisher', "") diff --git a/cps/metadata_provider/scholar.py b/cps/metadata_provider/scholar.py index 6e13c768..df387831 100644 --- a/cps/metadata_provider/scholar.py +++ b/cps/metadata_provider/scholar.py @@ -20,7 +20,6 @@ from scholarly import scholarly from cps.services.Metadata import Metadata - class scholar(Metadata): __name__ = "Google Scholar" __id__ = "googlescholar" @@ -32,7 +31,7 @@ class scholar(Metadata): i = 0 for publication in scholar_gen: v = dict() - v['id'] = "1234" # publication['bib'].get('title') + v['id'] = publication['url_scholarbib'].split(':')[1] v['title'] = publication['bib'].get('title') v['authors'] = publication['bib'].get('author', []) v['description'] = publication['bib'].get('abstract', "") @@ -41,10 +40,10 @@ class scholar(Metadata): v['publishedDate'] = publication['bib'].get('pub_year')+"-01-01" else: v['publishedDate'] = "" - v['tags'] = "" - v['ratings'] = 0 + v['tags'] = [] + v['rating'] = 0 v['series'] = "" - v['cover'] = generic_cover + v['cover'] = "" v['url'] = publication.get('pub_url') or publication.get('eprint_url') or "", v['source'] = { "id": self.__id__, diff --git a/cps/redirect.py b/cps/redirect.py index d491b353..8bd68109 100644 --- a/cps/redirect.py +++ b/cps/redirect.py @@ -27,10 +27,8 @@ # http://flask.pocoo.org/snippets/62/ -try: - from urllib.parse import urlparse, urljoin -except ImportError: - from urlparse import urlparse, urljoin +from urllib.parse import urlparse, urljoin + from flask import request, url_for, redirect diff --git a/cps/search_metadata.py b/cps/search_metadata.py index e837fe21..b88f222f 100644 --- a/cps/search_metadata.py +++ b/cps/search_metadata.py @@ -103,9 +103,9 @@ def metadata_search(): data = list() active = current_user.view_settings.get('metadata', {}) if query: - static_cover = url_for('static', filename='generic_cover.jpg') + generic_cover = "" with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor: - meta = {executor.submit(c.search, query, static_cover): c for c in cl if active.get(c.__id__, True)} + meta = {executor.submit(c.search, query, generic_cover): c for c in cl if active.get(c.__id__, True)} for future in concurrent.futures.as_completed(meta): data.extend(future.result()) return Response(json.dumps(data), mimetype='application/json') diff --git a/cps/services/SyncToken.py b/cps/services/SyncToken.py index 0072a20d..a53d7a99 100644 --- a/cps/services/SyncToken.py +++ b/cps/services/SyncToken.py @@ -21,11 +21,8 @@ import sys from base64 import b64decode, b64encode from jsonschema import validate, exceptions, __version__ from datetime import datetime -try: - # pylint: disable=unused-import - from urllib import unquote -except ImportError: - from urllib.parse import unquote + +from urllib.parse import unquote from flask import json from .. import logger diff --git a/cps/shelf.py b/cps/shelf.py index 04d9f8b9..1382fb22 100644 --- a/cps/shelf.py +++ b/cps/shelf.py @@ -56,7 +56,7 @@ def check_shelf_view_permissions(cur_shelf): return True -@shelf.route("/shelf/add//") +@shelf.route("/shelf/add//", methods=["POST"]) @login_required def add_to_shelf(shelf_id, book_id): xhr = request.headers.get('X-Requested-With') == 'XMLHttpRequest' @@ -112,7 +112,7 @@ def add_to_shelf(shelf_id, book_id): return "", 204 -@shelf.route("/shelf/massadd/") +@shelf.route("/shelf/massadd/", methods=["POST"]) @login_required def search_to_shelf(shelf_id): shelf = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).first() @@ -164,7 +164,7 @@ def search_to_shelf(shelf_id): return redirect(url_for('web.index')) -@shelf.route("/shelf/remove//") +@shelf.route("/shelf/remove//", methods=["POST"]) @login_required def remove_from_shelf(shelf_id, book_id): xhr = request.headers.get('X-Requested-With') == 'XMLHttpRequest' @@ -248,12 +248,17 @@ def create_edit_shelf(shelf, page_title, page, shelf_id=False): if not current_user.role_edit_shelfs() and to_save.get("is_public") == "on": flash(_(u"Sorry you are not allowed to create a public shelf"), category="error") return redirect(url_for('web.index')) - shelf.is_public = 1 if to_save.get("is_public") else 0 + is_public = 1 if to_save.get("is_public") == "on" else 0 if config.config_kobo_sync: shelf.kobo_sync = True if to_save.get("kobo_sync") else False + if shelf.kobo_sync: + ub.session.query(ub.ShelfArchive).filter(ub.ShelfArchive.user_id == current_user.id).filter( + ub.ShelfArchive.uuid == shelf.uuid).delete() + ub.session_commit() shelf_title = to_save.get("title", "") - if check_shelf_is_unique(shelf, shelf_title, shelf_id): + if check_shelf_is_unique(shelf, shelf_title, is_public, shelf_id): shelf.name = shelf_title + shelf.is_public = is_public if not shelf_id: shelf.user_id = int(current_user.id) ub.session.add(shelf) @@ -284,12 +289,12 @@ def create_edit_shelf(shelf, page_title, page, shelf_id=False): sync_only_selected_shelves=sync_only_selected_shelves) -def check_shelf_is_unique(shelf, title, shelf_id=False): +def check_shelf_is_unique(shelf, title, is_public, shelf_id=False): if shelf_id: ident = ub.Shelf.id != shelf_id else: ident = true() - if shelf.is_public == 1: + if is_public == 1: is_shelf_name_unique = ub.session.query(ub.Shelf) \ .filter((ub.Shelf.name == title) & (ub.Shelf.is_public == 1)) \ .filter(ident) \ @@ -323,12 +328,13 @@ def delete_shelf_helper(cur_shelf): ub.session_commit("successfully deleted Shelf {}".format(cur_shelf.name)) -@shelf.route("/shelf/delete/") +@shelf.route("/shelf/delete/", methods=["POST"]) @login_required def delete_shelf(shelf_id): cur_shelf = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).first() try: delete_shelf_helper(cur_shelf) + flash(_("Shelf successfully deleted"), category="success") except InvalidRequestError: ub.session.rollback() log.error("Settings DB is not Writeable") diff --git a/cps/static/js/details.js b/cps/static/js/details.js index 9caf9470..f559234e 100644 --- a/cps/static/js/details.js +++ b/cps/static/js/details.js @@ -61,8 +61,11 @@ $("#archived_cb").on("change", function() { $("#shelf-actions").on("click", "[data-shelf-action]", function (e) { e.preventDefault(); - - $.get(this.href) + $.ajax({ + url: this.href, + method:"post", + data: {csrf_token:$("input[name='csrf_token']").val()}, + }) .done(function() { var $this = $(this); switch ($this.data("shelf-action")) { diff --git a/cps/static/js/get_meta.js b/cps/static/js/get_meta.js index 51ab740d..aab767a2 100644 --- a/cps/static/js/get_meta.js +++ b/cps/static/js/get_meta.js @@ -40,7 +40,7 @@ $(function () { $("#book_title").val(book.title); $("#tags").val(uniqueTags.join(", ")); $("#rating").data("rating").setValue(Math.round(book.rating)); - if(book.cover !== null){ + if(book.cover && $("#cover_url").length){ $(".cover img").attr("src", book.cover); $("#cover_url").val(book.cover); } @@ -128,9 +128,7 @@ $(function () { e.preventDefault(); keyword = $("#keyword").val(); $('.pill').each(function(){ - // console.log($(this).data('control')); $(this).data("initial", $(this).prop('checked')); - // console.log($(this).data('initial')); }); doSearch(keyword); }); diff --git a/cps/static/js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js b/cps/static/js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js new file mode 100644 index 00000000..9751ee5c --- /dev/null +++ b/cps/static/js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ko={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],today:"오늘",clear:"삭제",format:"yyyy-mm-dd",titleFormat:"yyyy년mm월",weekStart:0}}(jQuery); \ No newline at end of file diff --git a/cps/static/js/libs/tinymce/langs/ko.js b/cps/static/js/libs/tinymce/langs/ko.js new file mode 100644 index 00000000..c6b3f266 --- /dev/null +++ b/cps/static/js/libs/tinymce/langs/ko.js @@ -0,0 +1,261 @@ +tinymce.addI18n('ko_KR',{ +"Redo": "\ub2e4\uc2dc\uc2e4\ud589", +"Undo": "\uc2e4\ud589\ucde8\uc18c", +"Cut": "\uc798\ub77c\ub0b4\uae30", +"Copy": "\ubcf5\uc0ac\ud558\uae30", +"Paste": "\ubd99\uc5ec\ub123\uae30", +"Select all": "\uc804\uccb4\uc120\ud0dd", +"New document": "\uc0c8 \ubb38\uc11c", +"Ok": "\ud655\uc778", +"Cancel": "\ucde8\uc18c", +"Visual aids": "\uc2dc\uac01\uad50\uc7ac", +"Bold": "\uad75\uac8c", +"Italic": "\uae30\uc6b8\uc784\uaf34", +"Underline": "\ubc11\uc904", +"Strikethrough": "\ucde8\uc18c\uc120", +"Superscript": "\uc717\ucca8\uc790", +"Subscript": "\uc544\ub798\ucca8\uc790", +"Clear formatting": "\ud3ec\ub9f7\ucd08\uae30\ud654", +"Align left": "\uc67c\ucabd\uc815\ub82c", +"Align center": "\uac00\uc6b4\ub370\uc815\ub82c", +"Align right": "\uc624\ub978\ucabd\uc815\ub82c", +"Justify": "\uc591\ucabd\uc815\ub82c", +"Bullet list": "\uc810\ub9ac\uc2a4\ud2b8", +"Numbered list": "\uc22b\uc790\ub9ac\uc2a4\ud2b8", +"Decrease indent": "\ub0b4\uc5b4\uc4f0\uae30", +"Increase indent": "\ub4e4\uc5ec\uc4f0\uae30", +"Close": "\ub2eb\uae30", +"Formats": "\ud3ec\ub9f7", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\ube0c\ub77c\uc6b0\uc838\uac00 \ud074\ub9bd\ubcf4\ub4dc \uc811\uadfc\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Ctrl+X\/C\/V \ud0a4\ub97c \uc774\uc6a9\ud574 \uc8fc\uc138\uc694.", +"Headers": "\uc2a4\ud0c0\uc77c", +"Header 1": "\uc81c\ubaa9 1", +"Header 2": "\uc81c\ubaa9 2", +"Header 3": "\uc81c\ubaa9 3", +"Header 4": "\uc81c\ubaa9 4", +"Header 5": "\uc81c\ubaa9 5", +"Header 6": "\uc81c\ubaa9 6", +"Headings": "\uc81c\ubaa9", +"Heading 1": "\uc81c\ubaa9 1", +"Heading 2": "\uc81c\ubaa9 2", +"Heading 3": "\uc81c\ubaa9 3", +"Heading 4": "\uc81c\ubaa9 4", +"Heading 5": "\uc81c\ubaa9 5", +"Heading 6": "\uc81c\ubaa9 6", +"Preformatted": "Preformatted", +"Div": "\uad6c\ubd84", +"Pre": "Pre", +"Code": "\ucf54\ub4dc", +"Paragraph": "\ub2e8\ub77d", +"Blockquote": "\uad6c\ud68d", +"Inline": "\ub77c\uc778 \uc124\uc815", +"Blocks": "\ube14\ub85d \uc124\uc815", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\uc2a4\ud0c0\uc77c\ubcf5\uc0ac \ub044\uae30. \uc774 \uc635\uc158\uc744 \ub044\uae30 \uc804\uc5d0\ub294 \ubcf5\uc0ac \uc2dc, \uc2a4\ud0c0\uc77c\uc774 \ubcf5\uc0ac\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.", +"Font Family": "\uae00\uaf34", +"Font Sizes": "\ud3f0\ud2b8 \uc0ac\uc774\uc988", +"Class": "\ud074\ub798\uc2a4", +"Browse for an image": "\uc774\ubbf8\uc9c0 \ucc3e\uae30", +"OR": "\ud639\uc740", +"Drop an image here": "\uc774\ubbf8\uc9c0 \ub4dc\ub86d", +"Upload": "\uc5c5\ub85c\ub4dc", +"Block": "\ube14\ub85d", +"Align": "\uc815\ub82c", +"Default": "\uae30\ubcf8", +"Circle": "\uc6d0", +"Disc": "\uc6d0\ubc18", +"Square": "\uc0ac\uac01", +"Lower Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790", +"Lower Greek": "\uadf8\ub9ac\uc2a4\uc5b4 \uc18c\ubb38\uc790", +"Lower Roman": "\ub85c\ub9c8\uc790 \uc18c\ubb38\uc790", +"Upper Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790", +"Upper Roman": "\ub85c\ub9c8\uc790 \ub300\ubb38\uc790", +"Anchor": "\uc575\ucee4", +"Name": "\uc774\ub984", +"Id": "\uc544\uc774\ub514", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\uc544\uc774\ub514\ub294 \ubb38\uc790, \uc22b\uc790, \ub300\uc2dc, \uc810, \ucf5c\ub860 \ub610\ub294 \ubc11\uc904\ub85c \uc2dc\uc791\ud574\uc57c\ud569\ub2c8\ub2e4.", +"You have unsaved changes are you sure you want to navigate away?": "\uc800\uc7a5\ud558\uc9c0 \uc54a\uc740 \uc815\ubcf4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\ub97c \ubc97\uc5b4\ub098\uc2dc\uaca0\uc2b5\ub2c8\uae4c?", +"Restore last draft": "\ub9c8\uc9c0\ub9c9 \ucd08\uc548 \ubcf5\uc6d0", +"Special character": "\ud2b9\uc218\ubb38\uc790", +"Source code": "\uc18c\uc2a4\ucf54\ub4dc", +"Insert\/Edit code sample": "\ucf54\ub4dc\uc0d8\ud50c \uc0bd\uc785\/\ud3b8\uc9d1", +"Language": "\uc5b8\uc5b4", +"Code sample": "\ucf54\ub4dc\uc0d8\ud50c", +"Color": "\uc0c9\uc0c1", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\uc67c\ucabd\uc5d0\uc11c \uc624\ub978\ucabd", +"Right to left": "\uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd", +"Emoticons": "\uc774\ubaa8\ud2f0\ucf58", +"Document properties": "\ubb38\uc11c \uc18d\uc131", +"Title": "\uc81c\ubaa9", +"Keywords": "\ud0a4\uc6cc\ub4dc", +"Description": "\uc124\uba85", +"Robots": "\ub85c\ubd07", +"Author": "\uc800\uc790", +"Encoding": "\uc778\ucf54\ub529", +"Fullscreen": "\uc804\uccb4\ud654\uba74", +"Action": "\ub3d9\uc791", +"Shortcut": "\ub2e8\ucd95\ud0a4", +"Help": "\ub3c4\uc6c0\ub9d0", +"Address": "\uc8fc\uc18c", +"Focus to menubar": "\uba54\ub274\uc5d0 \ud3ec\ucee4\uc2a4", +"Focus to toolbar": "\ud234\ubc14\uc5d0 \ud3ec\ucee4\uc2a4", +"Focus to element path": "element path\uc5d0 \ud3ec\ucee4\uc2a4", +"Focus to contextual toolbar": "\ucf04\ud14d\uc2a4\ud2b8 \ud234\ubc14\uc5d0 \ud3ec\ucee4\uc2a4", +"Insert link (if link plugin activated)": "\ub9c1\ud06c \uc0bd\uc785 (link \ud50c\ub7ec\uadf8\uc778\uc774 \ud65c\uc131\ud654\ub41c \uc0c1\ud0dc\uc5d0\uc11c)", +"Save (if save plugin activated)": "\uc800\uc7a5 (save \ud50c\ub7ec\uadf8\uc778\uc774 \ud65c\uc131\ud654\ub41c \uc0c1\ud0dc\uc5d0\uc11c)", +"Find (if searchreplace plugin activated)": "\ucc3e\uae30(searchreplace \ud50c\ub7ec\uadf8\uc778\uc774 \ud65c\uc131\ud654\ub41c \uc0c1\ud0dc\uc5d0\uc11c)", +"Plugins installed ({0}):": "\uc124\uce58\ub41c \ud50c\ub7ec\uadf8\uc778 ({0}):", +"Premium plugins:": "\uace0\uae09 \ud50c\ub7ec\uadf8\uc778", +"Learn more...": "\uc880 \ub354 \uc0b4\ud3b4\ubcf4\uae30", +"You are using {0}": "{0}\ub97c \uc0ac\uc6a9\uc911", +"Plugins": "\ud50c\ub7ec\uadf8\uc778", +"Handy Shortcuts": "\ub2e8\ucd95\ud0a4", +"Horizontal line": "\uac00\ub85c", +"Insert\/edit image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785\/\uc218\uc815", +"Image description": "\uc774\ubbf8\uc9c0 \uc124\uba85", +"Source": "\uc18c\uc2a4", +"Dimensions": "\ud06c\uae30", +"Constrain proportions": "\uc791\uc5c5 \uc81c\ud55c", +"General": "\uc77c\ubc18", +"Advanced": "\uace0\uae09", +"Style": "\uc2a4\ud0c0\uc77c", +"Vertical space": "\uc218\uc9c1 \uacf5\ubc31", +"Horizontal space": "\uc218\ud3c9 \uacf5\ubc31", +"Border": "\ud14c\ub450\ub9ac", +"Insert image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785", +"Image": "\uc774\ubbf8\uc9c0", +"Image list": "\uc774\ubbf8\uc9c0 \ubaa9\ub85d", +"Rotate counterclockwise": "\uc2dc\uacc4\ubc18\ub300\ubc29\ud5a5\uc73c\ub85c \ud68c\uc804", +"Rotate clockwise": "\uc2dc\uacc4\ubc29\ud5a5\uc73c\ub85c \ud68c\uc804", +"Flip vertically": "\uc218\uc9c1 \ub4a4\uc9d1\uae30", +"Flip horizontally": "\uc218\ud3c9 \ub4a4\uc9d1\uae30", +"Edit image": "\uc774\ubbf8\uc9c0 \ud3b8\uc9d1", +"Image options": "\uc774\ubbf8\uc9c0 \uc635\uc158", +"Zoom in": "\ud655\ub300", +"Zoom out": "\ucd95\uc18c", +"Crop": "\uc790\ub974\uae30", +"Resize": "\ud06c\uae30 \uc870\uc808", +"Orientation": "\ubc29\ud5a5", +"Brightness": "\ubc1d\uae30", +"Sharpen": "\uc120\uba85\ud558\uac8c", +"Contrast": "\ub300\ube44", +"Color levels": "\uc0c9\uc0c1\ub808\ubca8", +"Gamma": "\uac10\ub9c8", +"Invert": "\ubc18\uc804", +"Apply": "\uc801\uc6a9", +"Back": "\ub4a4\ub85c", +"Insert date\/time": "\ub0a0\uc9dc\/\uc2dc\uac04\uc0bd\uc785", +"Date\/time": "\ub0a0\uc9dc\/\uc2dc\uac04", +"Insert link": "\ub9c1\ud06c \uc0bd\uc785 ", +"Insert\/edit link": "\ub9c1\ud06c \uc0bd\uc785\/\uc218\uc815", +"Text to display": "\ubcf8\ubb38", +"Url": "\uc8fc\uc18c", +"Target": "\ub300\uc0c1", +"None": "\uc5c6\uc74c", +"New window": "\uc0c8\ucc3d", +"Remove link": "\ub9c1\ud06c\uc0ad\uc81c", +"Anchors": "\ucc45\uac08\ud53c", +"Link": "\ub9c1\ud06c", +"Paste or type a link": "\ub9c1\ud06c\ub97c \ubd99\uc5ec\ub123\uac70\ub098 \uc785\ub825\ud558\uc138\uc694", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\ud604\uc7ac E-mail\uc8fc\uc18c\ub97c \uc785\ub825\ud558\uc168\uc2b5\ub2c8\ub2e4. E-mail \uc8fc\uc18c\uc5d0 \ub9c1\ud06c\ub97c \uac78\uae4c\uc694?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\ud604\uc7ac \uc6f9\uc0ac\uc774\ud2b8 \uc8fc\uc18c\ub97c \uc785\ub825\ud558\uc168\uc2b5\ub2c8\ub2e4. \ud574\ub2f9 \uc8fc\uc18c\uc5d0 \ub9c1\ud06c\ub97c \uac78\uae4c\uc694?", +"Link list": "\ub9c1\ud06c \ub9ac\uc2a4\ud2b8", +"Insert video": "\ube44\ub514\uc624 \uc0bd\uc785", +"Insert\/edit video": "\ube44\ub514\uc624 \uc0bd\uc785\/\uc218\uc815", +"Insert\/edit media": "\ubbf8\ub514\uc5b4 \uc0bd\uc785\/\uc218\uc815", +"Alternative source": "\ub300\uccb4 \uc18c\uc2a4", +"Poster": "\ud3ec\uc2a4\ud130", +"Paste your embed code below:": "\uc544\ub798\uc5d0 \ucf54\ub4dc\ub97c \ubd99\uc5ec\ub123\uc73c\uc138\uc694:", +"Embed": "\uc0bd\uc785", +"Media": "\ubbf8\ub514\uc5b4", +"Nonbreaking space": "\ub744\uc5b4\uc4f0\uae30", +"Page break": "\ud398\uc774\uc9c0 \uad6c\ubd84\uc790", +"Paste as text": "\ud14d\uc2a4\ud2b8\ub85c \ubd99\uc5ec\ub123\uae30", +"Preview": "\ubbf8\ub9ac\ubcf4\uae30", +"Print": "\ucd9c\ub825", +"Save": "\uc800\uc7a5", +"Find": "\ucc3e\uae30", +"Replace with": "\uad50\uccb4", +"Replace": "\uad50\uccb4", +"Replace all": "\uc804\uccb4 \uad50\uccb4", +"Prev": "\uc774\uc804", +"Next": "\ub2e4\uc74c", +"Find and replace": "\ucc3e\uc544\uc11c \uad50\uccb4", +"Could not find the specified string.": "\ubb38\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.", +"Match case": "\ub300\uc18c\ubb38\uc790 \uc77c\uce58", +"Whole words": "\uc804\uccb4 \ub2e8\uc5b4", +"Spellcheck": "\ubb38\ubc95\uccb4\ud06c", +"Ignore": "\ubb34\uc2dc", +"Ignore all": "\uc804\uccb4\ubb34\uc2dc", +"Finish": "\uc644\ub8cc", +"Add to Dictionary": "\uc0ac\uc804\uc5d0 \ucd94\uac00", +"Insert table": "\ud14c\uc774\ube14 \uc0bd\uc785", +"Table properties": "\ud14c\uc774\ube14 \uc18d\uc131", +"Delete table": "\ud14c\uc774\ube14 \uc0ad\uc81c", +"Cell": "\uc140", +"Row": "\uc5f4", +"Column": "\ud589", +"Cell properties": "\uc140 \uc18d", +"Merge cells": "\uc140 \ud569\uce58\uae30", +"Split cell": "\uc140 \ub098\ub204\uae30", +"Insert row before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785", +"Insert row after": "\ub2e4\uc74c\uc5d0 \ud589 \uc0bd\uc785", +"Delete row": "\ud589 \uc9c0\uc6b0\uae30", +"Row properties": "\ud589 \uc18d\uc131", +"Cut row": "\ud589 \uc798\ub77c\ub0b4\uae30", +"Copy row": "\ud589 \ubcf5\uc0ac", +"Paste row before": "\uc774\uc804\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30", +"Paste row after": "\ub2e4\uc74c\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30", +"Insert column before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785", +"Insert column after": "\ub2e4\uc74c\uc5d0 \uc5f4 \uc0bd\uc785", +"Delete column": "\uc5f4 \uc9c0\uc6b0\uae30", +"Cols": "\uc5f4", +"Rows": "\ud589", +"Width": "\ub113\uc774", +"Height": "\ub192\uc774", +"Cell spacing": "\uc140 \uac04\uaca9", +"Cell padding": "\uc140 \uc548\ucabd \uc5ec\ubc31", +"Caption": "\ucea1\uc158", +"Left": "\uc67c\ucabd", +"Center": "\uac00\uc6b4\ub370", +"Right": "\uc624\ub978\ucabd", +"Cell type": "\uc140 \ud0c0\uc785", +"Scope": "\ubc94\uc704", +"Alignment": "\uc815\ub82c", +"H Align": "\uac00\ub85c \uc815\ub82c", +"V Align": "\uc138\ub85c \uc815\ub82c", +"Top": "\uc0c1\ub2e8", +"Middle": "\uc911\uac04", +"Bottom": "\ud558\ub2e8", +"Header cell": "\ud5e4\ub354 \uc140", +"Row group": "\ud589 \uadf8\ub8f9", +"Column group": "\uc5f4 \uadf8\ub8f9", +"Row type": "\ud589 \ud0c0\uc785", +"Header": "\ud5e4\ub354", +"Body": "\ubc14\ub514", +"Footer": "\ud478\ud130", +"Border color": "\ud14c\ub450\ub9ac \uc0c9", +"Insert template": "\ud15c\ud50c\ub9bf \uc0bd\uc785", +"Templates": "\ud15c\ud50c\ub9bf", +"Template": "\ud15c\ud50c\ub9bf", +"Text color": "\ubb38\uc790 \uc0c9\uae54", +"Background color": "\ubc30\uacbd\uc0c9", +"Custom...": "\uc9c1\uc811 \uc0c9\uae54 \uc9c0\uc815\ud558\uae30", +"Custom color": "\uc9c1\uc811 \uc9c0\uc815\ud55c \uc0c9\uae54", +"No color": "\uc0c9\uc0c1 \uc5c6\uc74c", +"Table of Contents": "\ubaa9\ucc28", +"Show blocks": "\ube14\ub7ed \ubcf4\uc5ec\uc8fc\uae30", +"Show invisible characters": "\uc548\ubcf4\uc774\ub294 \ubb38\uc790 \ubcf4\uc774\uae30", +"Words: {0}": "\ub2e8\uc5b4: {0}", +"{0} words": "{0} \ub2e8\uc5b4", +"File": "\ud30c\uc77c", +"Edit": "\uc218\uc815", +"Insert": "\uc0bd\uc785", +"View": "\ubcf4\uae30", +"Format": "\ud3ec\ub9f7", +"Table": "\ud14c\uc774\ube14", +"Tools": "\ub3c4\uad6c", +"Powered by {0}": "Powered by {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\uc11c\uc2dd \uc788\ub294 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uae30 \uc785\ub2c8\ub2e4. ALT-F9\ub97c \ub204\ub974\uba74 \uba54\ub274, ALT-F10\ub97c \ub204\ub974\uba74 \ud234\ubc14, ALT-0\uc744 \ub204\ub974\uba74 \ub3c4\uc6c0\ub9d0\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4." +}); diff --git a/cps/static/js/main.js b/cps/static/js/main.js old mode 100644 new mode 100755 index 585d2296..75599d9b --- a/cps/static/js/main.js +++ b/cps/static/js/main.js @@ -20,6 +20,20 @@ function getPath() { return jsFileLocation.substr(0, jsFileLocation.search("/static/js/libs/jquery.min.js")); // the js folder path } +function postButton(event, action){ + event.preventDefault(); + var newForm = jQuery('
', { + "action": action, + 'target': "_top", + 'method': "post" + }).append(jQuery('', { + 'name': 'csrf_token', + 'value': $("input[name=\'csrf_token\']").val(), + 'type': 'hidden' + })).appendTo('body'); + newForm.submit(); +} + function elementSorter(a, b) { a = +a.slice(0, -2); b = +b.slice(0, -2); @@ -71,6 +85,22 @@ $(document).on("change", "select[data-controlall]", function() { } }); +/*$(document).on("click", "#sendbtn", function (event) { + postButton(event, $(this).data('action')); +}); + +$(document).on("click", ".sendbutton", function (event) { + // $(".sendbutton").on("click", "body", function(event) { + postButton(event, $(this).data('action')); +});*/ + +$(document).on("click", ".postAction", function (event) { + // $(".sendbutton").on("click", "body", function(event) { + postButton(event, $(this).data('action')); +}); + + + // Syntax has to be bind not on, otherwise problems with firefox $(".container-fluid").bind("dragenter dragover", function () { if($("#btn-upload").length && !$('body').hasClass('shelforder')) { @@ -168,18 +198,18 @@ function confirmDialog(id, dialogid, dataValue, yesFn, noFn) { $confirm.modal('show'); } -$("#delete_confirm").click(function() { +$("#delete_confirm").click(function(event) { //get data-id attribute of the clicked element var deleteId = $(this).data("delete-id"); var bookFormat = $(this).data("delete-format"); var ajaxResponse = $(this).data("ajax"); if (bookFormat) { - window.location.href = getPath() + "/delete/" + deleteId + "/" + bookFormat; + postButton(event, getPath() + "/delete/" + deleteId + "/" + bookFormat); } else { if (ajaxResponse) { path = getPath() + "/ajax/delete/" + deleteId; $.ajax({ - method:"get", + method:"post", url: path, timeout: 900, success:function(data) { @@ -198,8 +228,7 @@ $("#delete_confirm").click(function() { } }); } else { - window.location.href = getPath() + "/delete/" + deleteId; - + postButton(event, getPath() + "/delete/" + deleteId); } } @@ -376,9 +405,11 @@ $(function() { $("#restart").click(function() { $.ajax({ + method:"post", + contentType: "application/json; charset=utf-8", dataType: "json", - url: window.location.pathname + "/../../shutdown", - data: {"parameter":0}, + url: getPath() + "/shutdown", + data: JSON.stringify({"parameter":0}), success: function success() { $("#spinner").show(); setTimeout(restartTimer, 3000); @@ -387,9 +418,11 @@ $(function() { }); $("#shutdown").click(function() { $.ajax({ + method:"post", + contentType: "application/json; charset=utf-8", dataType: "json", - url: window.location.pathname + "/../../shutdown", - data: {"parameter":1}, + url: getPath() + "/shutdown", + data: JSON.stringify({"parameter":1}), success: function success(data) { return alert(data.text); } @@ -447,9 +480,11 @@ $(function() { $("#DialogContent").html(""); $("#spinner2").show(); $.ajax({ + method:"post", + contentType: "application/json; charset=utf-8", dataType: "json", url: getPath() + "/shutdown", - data: {"parameter":2}, + data: JSON.stringify({"parameter":2}), success: function success(data) { $("#spinner2").hide(); $("#DialogContent").html(data.text); @@ -500,6 +535,7 @@ $(function() { $("#modal_kobo_token") .on("show.bs.modal", function(e) { + $(e.relatedTarget).one('focus', function(e){$(this).blur();}); var $modalBody = $(this).find(".modal-body"); // Prevent static assets from loading multiple times @@ -527,7 +563,7 @@ $(function() { $(this).data('value'), function (value) { $.ajax({ - method: "get", + method: "post", url: getPath() + "/kobo_auth/deleteauthtoken/" + value, }); $("#config_delete_kobo_token").hide(); @@ -574,7 +610,7 @@ $(function() { function(value){ path = getPath() + "/ajax/fullsync" $.ajax({ - method:"get", + method:"post", url: path, timeout: 900, success:function(data) { @@ -638,7 +674,7 @@ $(function() { else { $("#InvalidDialog").modal('show'); } - } else { + } else { changeDbSettings(); } } @@ -679,13 +715,14 @@ $(function() { }); }); - $("#delete_shelf").click(function() { + $("#delete_shelf").click(function(event) { confirmDialog( $(this).attr('id'), "GeneralDeleteModal", $(this).data('value'), function(value){ - window.location.href = window.location.pathname + "/../../shelf/delete/" + value + postButton(event, $("#delete_shelf").data("action")); + // $("#delete_shelf").closest("form").submit() } ); @@ -734,7 +771,8 @@ $(function() { $("#DialogContent").html(""); $("#spinner2").show(); $.ajax({ - method:"get", + method:"post", + contentType: "application/json; charset=utf-8", dataType: "json", url: getPath() + "/import_ldap_users", success: function success(data) { @@ -768,4 +806,3 @@ $(function() { }); }); }); - diff --git a/cps/static/js/table.js b/cps/static/js/table.js index 48c7631a..dce1d06c 100644 --- a/cps/static/js/table.js +++ b/cps/static/js/table.js @@ -47,15 +47,15 @@ $(function() { var rows = rowsAfter; if (e.type === "uncheck-all") { - rows = rowsBefore; + selections = []; + } else { + var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) { + return row.id; + }); + + var func = $.inArray(e.type, ["check", "check-all"]) > -1 ? "union" : "difference"; + selections = window._[func](selections, ids); } - - var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) { - return row.id; - }); - - var func = $.inArray(e.type, ["check", "check-all"]) > -1 ? "union" : "difference"; - selections = window._[func](selections, ids); if (selections.length >= 2) { $("#merge_books").removeClass("disabled"); $("#merge_books").attr("aria-disabled", false); @@ -540,14 +540,14 @@ $(function() { var rows = rowsAfter; if (e.type === "uncheck-all") { - rows = rowsBefore; + selections = []; + } else { + var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) { + return row.id; + }); + var func = $.inArray(e.type, ["check", "check-all"]) > -1 ? "union" : "difference"; + selections = window._[func](selections, ids); } - - var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) { - return row.id; - }); - var func = $.inArray(e.type, ["check", "check-all"]) > -1 ? "union" : "difference"; - selections = window._[func](selections, ids); handle_header_buttons(); }); }); diff --git a/cps/tasks/convert.py b/cps/tasks/convert.py index 59ad6909..596bf95c 100644 --- a/cps/tasks/convert.py +++ b/cps/tasks/convert.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import sys import os import re @@ -31,7 +30,8 @@ from cps import db from cps import logger, config from cps.subproc_wrapper import process_open from flask_babel import gettext as _ -from flask import url_for +from cps.kobo_sync_status import remove_synced_book +from cps.ub import ini from cps.tasks.mail import TaskEmail from cps import gdriveutils @@ -147,6 +147,10 @@ class TaskConvert(CalibreTask): try: local_db.session.merge(new_format) local_db.session.commit() + if self.settings['new_book_format'].upper() in ['KEPUB', 'EPUB', 'EPUB3']: + ub_session = ini() + remove_synced_book(book_id, True, ub_session) + ub_session.close() except SQLAlchemyError as e: local_db.session.rollback() log.error("Database error: %s", e) diff --git a/cps/tasks/mail.py b/cps/tasks/mail.py index 05b2175f..03526c8b 100644 --- a/cps/tasks/mail.py +++ b/cps/tasks/mail.py @@ -158,10 +158,10 @@ class TaskEmail(CalibreTask): else: self.send_gmail_email(msg) except MemoryError as e: - log.debug_or_exception(e) + log.debug_or_exception(e, stacklevel=3) self._handleError(u'MemoryError sending e-mail: {}'.format(str(e))) except (smtplib.SMTPException, smtplib.SMTPAuthenticationError) as e: - log.debug_or_exception(e) + log.debug_or_exception(e, stacklevel=3) if hasattr(e, "smtp_error"): text = e.smtp_error.decode('utf-8').replace("\n", '. ') elif hasattr(e, "message"): @@ -171,11 +171,11 @@ class TaskEmail(CalibreTask): else: text = '' self._handleError(u'Smtplib Error sending e-mail: {}'.format(text)) - except socket.error as e: - log.debug_or_exception(e) + except (socket.error) as e: + log.debug_or_exception(e, stacklevel=3) self._handleError(u'Socket Error sending e-mail: {}'.format(e.strerror)) except Exception as ex: - log.debug_or_exception(ex) + log.debug_or_exception(ex, stacklevel=3) self._handleError(u'Error sending e-mail: {}'.format(ex)) def send_standard_email(self, msg): @@ -248,7 +248,7 @@ class TaskEmail(CalibreTask): data = file_.read() file_.close() except IOError as e: - log.debug_or_exception(e) + log.debug_or_exception(e, stacklevel=3) log.error(u'The requested file could not be read. Maybe wrong permissions?') return None # Set mimetype diff --git a/cps/templates/admin.html b/cps/templates/admin.html index 9728cb6d..6cd7815e 100644 --- a/cps/templates/admin.html +++ b/cps/templates/admin.html @@ -188,9 +188,8 @@ - - {% if feature_support['updater'] %} + {% if feature_support['updater'] %}
{{_('Check for Update')}}
diff --git a/cps/templates/author.html b/cps/templates/author.html index f2b71eab..d832ad5c 100644 --- a/cps/templates/author.html +++ b/cps/templates/author.html @@ -5,11 +5,11 @@ {% if author is not none %}
{%if author.image_url is not none %} - {{author.name|safe}} + {{author.name}} {% endif %} {%if author.about is not none %} -

{{author.about|safe}}

+

{{author.about}}

{% endif %} - {{_("via")}} Goodreads @@ -36,7 +36,7 @@
- + {% if entry.id in read_book_ids %}{% endif %} @@ -98,7 +98,7 @@ {% if other_books and author is not none %}
-

{{_("More by")}} {{ author.name.replace('|',',')|safe }}

+

{{_("More by")}} {{ author.name.replace('|',',') }}

{% for entry in other_books %}
diff --git a/cps/templates/book_edit.html b/cps/templates/book_edit.html index cac3219c..57470858 100644 --- a/cps/templates/book_edit.html +++ b/cps/templates/book_edit.html @@ -226,7 +226,7 @@
@@ -265,17 +265,17 @@ >

- <%= title %> + <%= title %>

-

{{_('Author')}}:<%= authors.join(" & ") %>

+

{{_('Author')}}:<%= authors.join(" & ") %>

<% if (publisher) { %> -

{{_('Publisher')}}:<%= publisher %>

+

{{_('Publisher')}}:<%= publisher %>

<% } %> <% if (description) { %> -

{{_('Description')}}: <%= description %>

+

{{_('Description')}}: <%= description %>

<% } %>

{{_('Source')}}: - <%= source.description %> + <%= source.description %>

diff --git a/cps/templates/book_table.html b/cps/templates/book_table.html index c842811b..4b379b37 100644 --- a/cps/templates/book_table.html +++ b/cps/templates/book_table.html @@ -123,8 +123,8 @@
diff --git a/cps/templates/detail.html b/cps/templates/detail.html index 919afaff..85f1c09d 100644 --- a/cps/templates/detail.html +++ b/cps/templates/detail.html @@ -38,7 +38,7 @@ {% endif %} {% if g.user.kindle_mail and entry.kindle_list %} {% if entry.kindle_list.__len__() == 1 %} - {{entry.kindle_list[0]['text']}} +
{{entry.kindle_list[0]['text']}}
{% else %}
diff --git a/cps/templates/generate_kobo_auth_url.html b/cps/templates/generate_kobo_auth_url.html index fb62424c..b8b74bda 100644 --- a/cps/templates/generate_kobo_auth_url.html +++ b/cps/templates/generate_kobo_auth_url.html @@ -1,12 +1,15 @@ {% extends "fragment.html" %} {% block body %}
-

- {{_('Open the .kobo/Kobo eReader.conf file in a text editor and add (or edit):')}} +

+ {% if not warning %} + {{_('Open the .kobo/Kobo eReader.conf file in a text editor and add (or edit):')}} +

+ api_endpoint={{url_for("kobo.TopLevelEndpoint", auth_token=auth_token, _external=True)}} + {% else %} + {{warning}} +

{{_('Kobo Token:')}} {{ auth_token }} + {% endif %}

-

- {% if not warning %}api_endpoint={{kobo_auth_url}}{% else %}{{warning}}{% endif %} -

-

{% endblock %} diff --git a/cps/templates/layout.html b/cps/templates/layout.html index 8cb6b76e..ec69c91b 100644 --- a/cps/templates/layout.html +++ b/cps/templates/layout.html @@ -183,7 +183,7 @@
diff --git a/cps/templates/search.html b/cps/templates/search.html index 7640192f..1a4162e9 100644 --- a/cps/templates/search.html +++ b/cps/templates/search.html @@ -17,7 +17,7 @@ diff --git a/cps/templates/shelf.html b/cps/templates/shelf.html index 4f74a4da..adfead60 100644 --- a/cps/templates/shelf.html +++ b/cps/templates/shelf.html @@ -2,14 +2,16 @@ {% block body %}

{{title}}

+ {% if g.user.role_download() %} {{ _('Download') }} {% endif %} {% if g.user.is_authenticated %} {% if (g.user.role_edit_shelfs() and shelf.is_public ) or not shelf.is_public %} - -
{{ _('Delete this Shelf') }}
+ +
{{ _('Delete this Shelf') }}
{{ _('Edit Shelf Properties') }} + {% if entries.__len__() %} {{ _('Arrange books manually') }} @@ -84,22 +86,6 @@ {% endfor %}
- - {% endblock %} {% block modal %} {{ delete_confirm_modal() }} diff --git a/cps/templates/user_edit.html b/cps/templates/user_edit.html index e6fbdb74..de7a4fb3 100644 --- a/cps/templates/user_edit.html +++ b/cps/templates/user_edit.html @@ -17,7 +17,7 @@ {% if ( g.user and g.user.role_passwd() or g.user.role_admin() ) and not content.role_anonymous() %} {% if g.user and g.user.role_admin() and not new_user and not profile and ( mail_configured and content.email if content.email != None ) %} - {{_('Reset user Password')}} + {{_('Reset user Password')}} {% endif %}
diff --git a/cps/translations/cs/LC_MESSAGES/messages.mo b/cps/translations/cs/LC_MESSAGES/messages.mo index c77a5c21..b4984db1 100644 Binary files a/cps/translations/cs/LC_MESSAGES/messages.mo and b/cps/translations/cs/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/cs/LC_MESSAGES/messages.po b/cps/translations/cs/LC_MESSAGES/messages.po index f835c699..1d6acaba 100644 --- a/cps/translations/cs/LC_MESSAGES/messages.po +++ b/cps/translations/cs/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-06-09 21:11+0100\n" "Last-Translator: Lukas Heroudek \n" "Language: cs_CZ\n" @@ -25,7 +25,7 @@ msgstr "není nainstalováno" msgid "installed" msgstr "nainstalováno" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statistika" @@ -45,9 +45,9 @@ msgstr "Úspěšně obnovené připojení" msgid "Unknown command" msgstr "Neznámý příkaz" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Neznámý" @@ -75,7 +75,7 @@ msgstr "Uživatel admin" msgid "All" msgstr "Vše" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Uživatel nenalezen" @@ -92,7 +92,7 @@ msgstr "Zobrazit vše" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Nezbývá žádný správce, nelze odebrat roli správce" @@ -144,7 +144,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Konfigurace Calibre-Web aktualizována" @@ -160,7 +160,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Jste si jisti, že chcete odstranit tuto polici?" @@ -208,279 +208,279 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Zakázat" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Povolit" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json není nakonfigurováno pro webové aplikace" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Umístění zápisového souboru není platné. Určete prosím platnou polohu" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Umístění zápisového souboru pro přístup není platné. Určete prosím platnou polohu" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Prosím zadejte LDAP poskytovatele, port, DN a Identifikátor objektu uživatele" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Zadejte platné uživatelské jméno pro obnovení hesla" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "Filtr objektů skupiny LDAP musí mít jeden “%s” formátový identifikátor" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Filtr objektů skupiny LDAP má nesrovnatelnou závorku" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "Filtr uživatelských objektů LDAP musí mít jeden “%s” formátový identifikátor" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Filtr uživatelských objektů LDAP má nesrovnatelnou závorku" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Umístění databáze není platné, opravte prosím cestu" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Databáze není zapisovatelná" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Umístění souboru klíčů není platné, zadejte prosím správnou cestu" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Umístění certifikátu není platné, zadejte prosím správnou cestu" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Nastavení e-mailového serveru aktualizováno" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Konfigurace funkcí" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Vyplňte všechna pole!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-mail není z platné domény" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Přidat nového uživatele" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Uživatel '%(user)s' vytvořen" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Byl nalezen existující účet pro tuto e-mailovou adresu nebo přezdívku." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Uživatel '%(nick)s' smazán" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Nezbývá žádný správce, nemůžete jej odstranit" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Upravit uživatele %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Uživatel '%(nick)s' aktualizován" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Neznámá chyba. Opakujte prosím později." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Změnit SMTP nastavení" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Při odesílání zkušebního e-mailu došlo k chybě: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Prvně nastavte svou e-mailovou adresu..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Nastavení e-mailového serveru aktualizováno" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Heslo pro uživatele %(user)s resetováno" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Nejprve nakonfigurujte nastavení pošty SMTP..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Prohlížeč log souborů" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Požadování balíčku aktualizace" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Stahování balíčku aktualizace" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Rozbalování balíčku aktualizace" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Nahrazování souborů" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Databázová připojení jsou uzavřena" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Zastavuji server" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Aktualizace dokončena, klepněte na tlačítko OK a znovu načtěte stránku" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Aktualizace selhala:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP chyba" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Chyba připojení" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Vypršel časový limit při navazování spojení" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Všeobecná chyba" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Aktualizační soubor nemohl být uložen do Temp Dir" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Nepodařilo se vytvořit nejméně jednoho uživatele LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Nepodařilo se vytvořit nejméně jednoho uživatele LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Chyba: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Chyba: Žádná reakce od uživatele LDAP serveru" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "Nejméně jeden uživatel LDAP nenalezen v databázi" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -492,108 +492,112 @@ msgstr "není nakonfigurováno" msgid "Execution permissions missing" msgstr "Chybí povolení k exekuci" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Vlastní sloupec %(column)d neexistuje v databázi" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Formát knihy úspěšně smazán" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Kniha úspěšně smazána" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Jejda! Vybraná kniha není k dispozici. Soubor neexistuje nebo není přístupný" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "upravit metadata" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s není platným jazykem" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Soubor s příponou '%(ext)s' nelze odeslat na tento server" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Soubor, který má být odeslán musí mít příponu" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Nepodařilo se vytvořit cestu %(path)s (oprávnění odepřeno)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Uložení souboru %(file)s se nezdařilo." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Chyba databáze: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Formát souboru %(ext)s přidán do %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metadata úspěšně aktualizována" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Chyba při úpravách knihy, zkontrolujte prosím log pro podrobnosti" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Nahraná kniha pravděpodobně existuje v knihovně, zvažte prosím změnu před nahráním nové: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Soubor %(filename)s nemohl být uložen do dočasného adresáře" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Nepodařilo se přesunout soubor obalu %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Soubor %(file)s nahrán" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Chybí zdrojový nebo cílový formát pro převod" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Kniha byla úspěšně zařazena do fronty pro převod do %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Při převodu této knihy došlo k chybě: %(res)s" @@ -606,175 +610,175 @@ msgstr "Google Drive nastavení nebylo dokončeno, zkuste znovu deaktivovat a a msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Doména zpětného volání není ověřena, postupujte podle pokynů k ověření domény v konzole pro vývojáře google" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formát pro knihu: %(book)d nenalezen" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s nenalezen na Google Drive: %(fn)s" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nenalezen: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Poslat do Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Tento e-mail byl odeslán přes Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web zkušební e-mail" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Zkušební e-mail" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Začínáme s Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Registrační e-mail pro uživatele: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Převést %(orig)s do %(format)s a poslat do Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Poslat %(format)s do Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Poslat do Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Mazání knihy selhalo %(id)s failed: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, python-format 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:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Přejmenování názvu z: '%(src)s' na '%(dest)s' selhalo chybou: %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Přejmenování souboru v cestě '%(src)s' na '%(dest)s' selhalo chybou: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Soubor %(file)s nenalezen na Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Cesta ke knize %(path)s nebyla nalezena na Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Byl nalezen existující účet pro tuto e-mailovou adresu." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Zadané uživatelské jméno je již použito" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Chyba stahování obalu" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Chyba formátu obalu" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Vytvoření cesty obalu selhalo" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Soubor obalu není platný, nebo nelze uložit" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Pouze jpg/jpeg jsou podporované soubory pro obal" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Unrar binární soubor nenalezen" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Chyba provádění UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Čekám" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Selhalo" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Spuštěno" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Dokončeno" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Neznámý stav" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Pro získání platného api_endpoint pro zařízení Kobo, přístupte na calibre-web bez localhost" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Kobo nastavení" @@ -783,7 +787,7 @@ msgstr "Kobo nastavení" msgid "Register with %(provider)s" msgstr "Registrovat s %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "nyní jste přihlášen jako: '%(nickname)s'" @@ -849,7 +853,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Přihlásit" @@ -1068,41 +1072,46 @@ msgstr "Upravit polici" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Police %(title)s vytvořena" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Police %(title)s změněna" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Došlo k chybě" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Veřejná police s názvem '%(title)s' již existuje." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Osobní police s názvem ‘%(title)s’ již existuje." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Kniha úspěšně smazána" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Změnit pořadí Police: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Police: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Chyba otevírání police. Police neexistuje nebo není přístupná" @@ -1183,14 +1192,14 @@ msgstr "Kategorie: %(name)s" msgid "Language: %(name)s" msgstr "Jazyky: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Rozšířené hledání" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Hledat" @@ -1210,102 +1219,102 @@ msgstr "Seznam formátů" msgid "Tasks" msgstr "Úlohy" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Vydáno po " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Vydáno před " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Hodnocení <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Hodnocení >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Kniha byla úspěšně zařazena do fronty pro odeslání na %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Při odesílání této knihy došlo k chybě: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Nejprve nakonfigurujte vaši kindle e-mailovou adresu.." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-mailový server není nakonfigurován, kontaktujte svého správce!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Registrovat" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Váš e-mail nemá povolení k registraci" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Potvrzovací e-mail byl odeslán na váš účet." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Nelze aktivovat ověření LDAP" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Záložní přihlášení jako: ‘%(nickname)s’, server LDAP není dosažitelný nebo neznámý uživatel" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Nelze se přihlásit: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Špatné uživatelské jméno nebo heslo" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Nové heslo bylo zasláno na vaši emailovou adresu" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Zadejte platné uživatelské jméno pro obnovení hesla" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Nyní jste přihlášeni jako: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s profil" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil aktualizován" @@ -1342,7 +1351,7 @@ msgstr "Převedený soubor nebyl nalezen nebo více než jeden soubor ve složce msgid "Ebook-converter failed: %(error)s" msgstr "Převaděč eknih selhal: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1382,7 +1391,7 @@ msgid "Upload" msgstr "Nahrávat" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Stahovat" @@ -1549,39 +1558,38 @@ msgstr "Detaily" msgid "Current version" msgstr "Současná verze" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Zkontrolovat aktualizace" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Provést aktualizaci" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Opravdu chcete restartovat?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "OK" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Zrušit" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Opravdu chcete vypnout?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Probíhá aktualizace, prosím nenačítejte stránku znovu" @@ -1594,39 +1602,39 @@ msgid "In Library" msgstr "V knihovně" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "redukovat" @@ -2471,12 +2479,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2581,7 +2589,7 @@ msgstr "Chyba" msgid "Upload done, processing, please wait..." msgstr "Nahrávání hotovo, zpracovávám, čekejte prosím..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Nastavení" @@ -2732,7 +2740,7 @@ msgstr "Calibre-Web katalog eknih" msgid "epub Reader" msgstr "Čtečka PDF" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Po otevření postranních panelů přeformátujte text." @@ -2965,30 +2973,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Smazat tuto polici" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Police bude smazána pro všechny uživatele" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Sdílet se všemi" diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo index 6721cea9..b53a9c59 100644 Binary files a/cps/translations/de/LC_MESSAGES/messages.mo and b/cps/translations/de/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/de/LC_MESSAGES/messages.po b/cps/translations/de/LC_MESSAGES/messages.po index 272328a3..7112ce22 100644 --- a/cps/translations/de/LC_MESSAGES/messages.po +++ b/cps/translations/de/LC_MESSAGES/messages.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" -"PO-Revision-Date: 2021-08-01 17:24+0200\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" +"PO-Revision-Date: 2022-01-10 17:37+0100\n" "Last-Translator: Ozzie Isaacs\n" "Language: de\n" "Language-Team: \n" @@ -26,7 +26,7 @@ msgstr "Nicht installiert" msgid "installed" msgstr "Installiert" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statistiken" @@ -46,9 +46,9 @@ msgstr "Erfolgreich neu verbunden" msgid "Unknown command" msgstr "Unbekannter Befehl" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Unbekannt" @@ -75,7 +75,7 @@ msgstr "Benutzer bearbeiten" msgid "All" msgstr "Alle" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Benutzer nicht gefunden" @@ -92,7 +92,7 @@ msgstr "Zeige alle" msgid "Malformed request" msgstr "Ungültige Anfrage" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "Guest Name kann nicht geändert werden" @@ -100,7 +100,7 @@ msgstr "Guest Name kann nicht geändert werden" msgid "Guest can't have this role" msgstr "Guest Benutzer kann diese Rolle nicht haben" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Kein Admin Benutzer verblieben Admin Berechtigung kann nicht entfernt werden" @@ -144,7 +144,7 @@ msgstr "Ungültige Lese Spalte" msgid "Invalid Restricted Column" msgstr "Ungültiger Spaltenname für Einschränkung" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Konfiguration von Calibre-Web wurde aktualisiert" @@ -160,7 +160,7 @@ msgstr "Möchten Sie wirklich diese Domain löschen?" msgid "Do you really want to delete this user?" msgstr "Möchten Sie wirklich diesen Benutzer löschen?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Möchten Sie wirklich dieses Bücherregal löschen?" @@ -194,7 +194,7 @@ msgstr "Ort der Calibre Datenbank editieren?" #: cps/admin.py:594 msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" -msgstr "" +msgstr "Möchten Sie wirklich die Synchronisationsdatenbank von Calibre-Web löschen, um eine komplette Synchronisation zu erzwingen?" #: cps/admin.py:743 msgid "Tag not found" @@ -204,276 +204,273 @@ msgstr "Tag nicht gefunden" msgid "Invalid Action" msgstr "Ungültige Aktion" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Verbieten" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Erlauben" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" -msgstr "" +msgstr "{} Synchronisationseinträge gelöscht" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json ist nicht für Web Anwendungen konfiguriert" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Logdatei Pfad ist ungültig, bitte einen gültigen Pfad angeben" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Zugriffs Logdatei Pfad ist ungültig, bitte einen gültigen Pfad angeben" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Bitte einen LDAP Server, Port, DN und Benutzer Objekt angeben" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "Bitte einen LDAP Service Account und Password eingeben" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Bitte einen LDAP Service Account eingeben" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP Gruppen Objekt Filter benötigt genau eine \"%s\" Format Kennung" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP Gruppen Objekt Filter hat ungleiche Anzahl von Klammern" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP Benutzer Objekt Filter benötigt genau eine \"%s\" Format Kennung" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP Benutzer Objekt Filter hat ungleiche Anzahl von Klammern" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "Der LDAP Member User Filter benötigt genau eine \"%s\" Formatierungsmarkierung" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP Member User Filter hat eine ungleiche Anzahl von geöffneten und geschlossenen Klammern" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CA-Zertifikat, Zertifikat oder Key Datei ist kein gültiger Pfad" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "Einstellungsdatenbank ist nicht schreibbar" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "DB Pfad ist nicht gültig, bitte einen gültigen Pfad angeben" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Datenbank ist nicht schreibbar" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Schlüsseldatei ist ungültig, bitte einen gültigen Pfad angeben" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Zertifikatsdatei ist ungültig, bitte einen gültigen Pfad angeben" -#: cps/admin.py:1335 -#, fuzzy +#: cps/admin.py:1346 msgid "Database Settings updated" -msgstr "Einstellungen des E-Mail-Servers aktualisiert" +msgstr "Datenbankeinstellung aktualisiert" -#: cps/admin.py:1343 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "Datenbank-Konfiguration" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Bitte alle Felder ausfüllen!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-Mail bezieht sich nicht auf eine gültige Domain" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Neuen Benutzer hinzufügen" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Benutzer '%(user)s' angelegt" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "Es existiert bereits ein Account für diese E-Mailadresse oder diesen Benutzernamen." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Benutzer '%(nick)s' gelöscht" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "Guest Benutzer kann nicht gelöscht werden" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Benutzer kann nicht gelöscht werden, es wäre kein Admin Benutzer übrig" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Benutzer %(nick)s bearbeiten" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Benutzer '%(nick)s' aktualisiert" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "SMTP-Einstellungen ändern" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Gmail Account Verifikation erfolgreich" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "Test E-Mail an %(email)s wurde zum Senden in die Warteschlange eingereiht, für das Ergebnis bitte Aufgaben überprüfen" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Es trat ein Fehler beim Versenden der Test-E-Mail auf: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Bitte zuerst E-Mail Adresse konfigurieren..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Einstellungen des E-Mail-Servers aktualisiert" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Bitte zuerst die SMTP-Einstellung konfigurieren ..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Logdatei Anzeige" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Frage Update an" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Lade Update herunter" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Entpacke Update" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Ersetze Dateien" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Schließe Datenbankverbindungen" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Stoppe Server" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Update fehlgeschlagen:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP Fehler" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Verbindungsfehler" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Timeout beim Verbindungsaufbau" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Allgemeiner Fehler" -#: cps/admin.py:1720 -#, fuzzy +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "Updatedatei konnte nicht in Temporärem Ordner gespeichert werden" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" -msgstr "" +msgstr "Dateien konnten während des Updates nicht ausgetauscht werden" -#: cps/admin.py:1745 -#, fuzzy +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" -msgstr "Mindestens ein LDAP Benutzer konnte nicht erzeugt werden" +msgstr "Mindestens ein LDAP Benutzer konnte nicht extrahiert werden" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Mindestens ein LDAP Benutzer konnte nicht erzeugt werden" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Fehler: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Fehler: Keine Benutzerinformationen von LDAP Server empfangen" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "Mindestens ein LDAP Benutzer wurde nicht in der Datenbank gefudnen" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Benutzer erfolgreich importiert" @@ -485,108 +482,112 @@ msgstr "Nicht konfiguriert" msgid "Execution permissions missing" msgstr "Ausführeberechtigung fehlt" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Benutzerdefinierte Spalte Nr. %(column)d ist nicht in Calibre Datenbank vorhanden" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Buch Format erfolgreich gelöscht" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Buch erfolgreich gelöscht" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "Keine Erlaubnis zum Bücher löschen" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Öffnen des Buchs fehlgeschlagen. Datei existiert nicht oder ist nicht zugänglich" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "Metadaten editieren" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s ist keine gültige Zahl, Eintrag wird ignoriert" -#: cps/editbooks.py:490 cps/editbooks.py:954 -#, fuzzy, python-format +#: cps/editbooks.py:494 cps/editbooks.py:958 +#, python-format msgid "'%(langname)s' is not a valid language" -msgstr "%(langname)s ist keine gültige Sprache" +msgstr "'%(langname)s' ist keine gültige Sprache" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Dateiendung '%(ext)s' kann nicht auf diesen Server hochgeladen werden" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Dateien müssen eine Erweiterung haben, um hochgeladen zu werden" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Fehler beim Erzeugen des Pfads %(path)s (Zugriff verweigert)" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Fehler beim Speichern der Datei %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Datenbankfehler: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Dateiformat %(ext)s zu %(book)s hinzugefügt" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "IDs unterscheiden nicht Groß-Kleinschreibung, alte ID wird überschrieben" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metadaten wurden erfolgreich aktualisiert" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Fehler beim Editieren des Buchs, Details im Logfile" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Das hochgeladene Buch existiert evtl. schon in der Bibliothek: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Die Datei %(filename)s konnte nicht im temporären Ordner gespeichert werden" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Fehler beim Verschieben der Cover Datei %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Datei %(file)s hochgeladen" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Quell- oder Zielformat für Konvertierung fehlt" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Buch wurde erfolgreich für die Konvertierung nach %(book_format)s eingereiht" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Es trat ein Fehler beim Konvertieren des Buches auf: %(res)s" @@ -599,174 +600,174 @@ msgstr "Google Drive Setup is nicht komplett, bitte versuche Google Drive zu dea msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Callback Domain ist nicht verifiziert, bitte Domain in der Google Developer Console verifizieren" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format 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:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nicht gefunden: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "An Kindle senden" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Diese E-Mail wurde durch Calibre-Web versendet." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web Test-E-Mail" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Test-E-Mail" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Loslegen mit Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Registrierungs-E-Mail für Benutzer %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Konvertiere %(orig)s nach %(format)s und sende an Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Sende %(format)s an Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 -#, fuzzy, python-format +#: cps/helper.py:216 cps/tasks/convert.py:90 +#, python-format msgid "%(book)s send to Kindle" -msgstr "An Kindle senden" +msgstr "%(book)s an Kindle senden" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Löschen des Ordners für Buch %(id)s ist fehlgeschlagen, der Pfad hat Unterordner: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Löschen von Buch %(id)s fehlgeschlagen: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format 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:388 +#: cps/helper.py:385 #, 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" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Umbenennen der Datei im Pfad '%(src)s' nach '%(dest)s' ist fehlgeschlagen: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Buchpfad %(path)s wurde nicht auf Google Drive gefunden" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Benutzername ist schon vorhanden" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "Ungültiges E-Mail Adressformat" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Fehler beim Herunterladen des Covers" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Coverdatei fehlerhaft" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Fehler beim Erzeugen des Ordners für die Coverdatei" -#: cps/helper.py:627 +#: cps/helper.py:624 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" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Nur jpg/jpeg/png/webp/bmp Dateien werden als Coverdatei unterstützt" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" -msgstr "" +msgstr "Ungültiger Cover Dateiinhalt" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Es werden nur jpg/jpeg Dateien als Cover untertützt" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "UnRar Programm nicht gefunden" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Fehler beim ausführen von UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Wartend" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Fehlgeschlagen" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Gestartet" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Beendet" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Unbekannter Status" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 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" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Kobo Setup" @@ -775,7 +776,7 @@ msgstr "Kobo Setup" msgid "Register with %(provider)s" msgstr "Anmelden mit %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Du bist nun eingeloggt als '%(nickname)s'" @@ -841,7 +842,7 @@ msgid "{} Stars" msgstr "{} Sterne" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Login" @@ -1016,7 +1017,7 @@ msgstr "Das Buch wurde dem Bücherregal %(sname)s hinzugefügt" #: cps/shelf.py:126 msgid "You are not allowed to add a book to the shelf" -msgstr "" +msgstr "Keine Erlaubnis Bücher zu diesem Bücherregal hinzuzufügen" #: cps/shelf.py:144 #, python-format @@ -1040,7 +1041,7 @@ msgstr "Das Buch wurde aus dem Bücherregal: %(sname)s entfernt" #: cps/shelf.py:218 msgid "Sorry you are not allowed to remove a book from this shelf" -msgstr "" +msgstr "Sie haben keine Berechtigung um Bücher aus diesem Bücherregal zu löschen" #: cps/shelf.py:228 cps/templates/layout.html:140 msgid "Create a Shelf" @@ -1056,43 +1057,48 @@ msgstr "Bücherregal editieren" #: cps/shelf.py:249 msgid "Sorry you are not allowed to create a public shelf" -msgstr "" +msgstr "Sie haben keine Berechtigung um öffentliche Bücherregal zu erzeugen" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Bücherregal %(title)s erzeugt" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Bücherregal %(title)s verändert" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Es trat ein Fehler auf" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, 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'." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, 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'." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Buch erfolgreich gelöscht" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Reihenfolge in Bücherregal '%(name)s' verändern" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Bücherregal: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Fehler beim Öffnen des Bücherregals. Bücherregal exisitert nicht oder ist nicht zugänglich" @@ -1173,14 +1179,14 @@ msgstr "Kategorie: %(name)s" msgid "Language: %(name)s" msgstr "Sprache: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Erweiterte Suche" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Suche" @@ -1200,102 +1206,102 @@ msgstr "Liste der Dateiformate" msgid "Tasks" msgstr "Aufgaben" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Herausgegeben nach dem " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Herausgegeben vor dem " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Bewertung <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Bewertung >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Lesestatus = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "Fehler bei der Suche nach eigenen Spalten, bitte Calibre-Web neustarten" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Beim Senden des Buchs trat ein Fehler auf: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Der E-Mail Server ist nicht konfigurierte, bitte den Administrator kontaktieren!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Registrieren" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Eine Bestätigungs-E-Mail wurde an deinen E-Mail Account versendet." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "LDAP-Authentifizierung kann nicht aktiviert werden" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Rückfall Login als: '%(nickname)s', LDAP Server ist nicht erreichbar, oder der Nutzer ist unbekannt" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Login nicht erfolgreich: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Falscher Benutzername oder Passwort" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Das neue Passwort wurde an die E-Mail Adresse verschickt" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Bitte einen gültigen Benutzernamen zum Zurücksetzen des Passworts angeben" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Eingeloggt als: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's Profil" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil aktualisiert" @@ -1332,7 +1338,7 @@ msgstr "Konvertierte Datei nicht gefunden, oder mehr als eine Datei im Pfad %(fo msgid "Ebook-converter failed: %(error)s" msgstr "Fehler des EBook-Converters: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre fehlgeschlagen mit Fehler: %(error)s" @@ -1372,7 +1378,7 @@ msgid "Upload" msgstr "Upload" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Download" @@ -1538,39 +1544,38 @@ msgstr "Details" msgid "Current version" msgstr "Aktuelle Version" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Nach Update suchen" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Update durchführen" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Calibre-Web wirklich neustarten?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "OK" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Abbruch" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Calibre-Web wirklich anhalten?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Updatevorgang, Seite bitte nicht neu laden" @@ -1583,39 +1588,39 @@ msgid "In Library" msgstr "In Bibliothek" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Sortiere nach Buchdatum, Neuestes zuerst" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Sortiere nach Buchdatum, Aältestes zuerst" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Sortiere Titel in alphabetischer Reihenfolge" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Sortiere Titel in umgekehrt alphabetischer Reihenfolge" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Sortiere nach Herausgabedatum, Neueste zuerst" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Sortiere nach Herausgabedatum, Älteste zuerst" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "Reduzieren" @@ -1755,9 +1760,8 @@ msgid "Keyword" msgstr "Suchbegriff" #: cps/templates/book_edit.html:233 -#, fuzzy msgid "Search keyword" -msgstr " Suchbegriff " +msgstr "Suche Schlüsselbegriff" #: cps/templates/book_edit.html:239 msgid "Click the cover to load metadata to the form" @@ -1865,21 +1869,19 @@ msgid "Enter Publishers" msgstr "Herausgeber eingeben" #: cps/templates/book_table.html:73 -#, fuzzy msgid "Enter comments" -msgstr "Domainnamen eingeben" +msgstr "Kommentare eingeben" #: cps/templates/book_table.html:73 msgid "Comments" -msgstr "" +msgstr "Kommentare" #: cps/templates/book_table.html:77 cps/templates/book_table.html:79 #: cps/templates/book_table.html:81 cps/templates/book_table.html:83 #: cps/templates/book_table.html:87 cps/templates/book_table.html:89 #: cps/templates/book_table.html:91 cps/templates/book_table.html:93 -#, fuzzy msgid "Enter " -msgstr "IDs" +msgstr "Eingeben " #: cps/templates/book_table.html:110 cps/templates/modal_dialogs.html:46 msgid "Are you really sure?" @@ -1955,7 +1957,7 @@ msgstr "Nightly" #: cps/templates/config_edit.html:50 msgid "Trusted Hosts (Comma Separated)" -msgstr "" +msgstr "Trusted Hosts (Komma separiert)" #: cps/templates/config_edit.html:61 msgid "Logfile Configuration" @@ -1979,7 +1981,7 @@ msgstr "Feature-Konfiguration" #: cps/templates/config_edit.html:104 msgid "Convert non-English characters in title and author while saving to disk" -msgstr "" +msgstr "Nicht-englische Zeichen in Titel und Autor beim Speichern auf Festplatte ersetzen" #: cps/templates/config_edit.html:108 msgid "Enable Uploads" @@ -1987,7 +1989,7 @@ msgstr "Hochladen aktivieren" #: cps/templates/config_edit.html:108 msgid "(Please ensure users having also upload rights)" -msgstr "" +msgstr "(Bitte stellen Sie sicher das sie über die Upload Berechtigung verfügen)" #: cps/templates/config_edit.html:112 msgid "Allowed Upload Fileformats" @@ -2274,14 +2276,12 @@ msgid "Allow Editing Public Shelves" msgstr "Editieren öffentlicher Bücherregale erlauben" #: cps/templates/config_view_edit.html:123 -#, fuzzy msgid "Default Language" -msgstr "Sprachen ausschließen" +msgstr "Default Sprache" #: cps/templates/config_view_edit.html:131 -#, fuzzy msgid "Default Visible Language of Books" -msgstr "Zeige nur Bücher mit dieser Sprache" +msgstr "Defaulteinstellung sichtbare Büchersprache" #: cps/templates/config_view_edit.html:147 msgid "Default Visibilities for New Users" @@ -2451,19 +2451,19 @@ msgstr "Benutzer ausloggem" #: cps/templates/index.html:69 msgid "Sort ascending according to download count" -msgstr "" +msgstr "Aufsteigend nach Downloadzahlen sortieren" #: cps/templates/index.html:70 msgid "Sort descending according to download count" -msgstr "" +msgstr "Absteigend nach Downloadzahlen sortieren" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Sortiere Autoren in alphabetischer Reihenfolge" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Sortiere Autoren in umgekehrt alphabetischer Reihenfolge" @@ -2568,7 +2568,7 @@ msgstr "Fehler" msgid "Upload done, processing, please wait..." msgstr "Hochladen beendet, verarbeite Daten, bitte warten..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Einstellungen" @@ -2717,7 +2717,7 @@ msgstr "Calibre-Web E-Book-Katalog" msgid "epub Reader" msgstr "epub-Leser" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Text umbrechen, wenn Seitenleiste geöffnet ist." @@ -2945,30 +2945,26 @@ msgstr "Von:" msgid "To:" msgstr "Bis:" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Lösche dieses Bücherregal" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Bücherregal Eigenschaften bearbeiten" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Bücher manuell sortieren" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Manuelles Sortieren deaktivieren" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Manuelles Sortieren aktivieren" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Das Bücherregal wird für alle und für immer gelöscht" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Bücherregal mit anderen Benutzern teilen" @@ -3071,7 +3067,7 @@ msgstr "Erzeugen/Ansehen" #: cps/templates/user_edit.html:70 msgid "Force full kobo sync" -msgstr "" +msgstr "Komplettsynchronisation Kobo erzwingen" #: cps/templates/user_edit.html:88 msgid "Add allowed/Denied Custom Column Values" @@ -3150,9 +3146,8 @@ msgid "Edit Denied Column Values" msgstr "Erlaubte/Verbotene Calibre Spalten bearbeiten" #: cps/templates/user_table.html:142 -#, fuzzy msgid "Denied Column Values" -msgstr "Verbotene Calibre Spalten" +msgstr "Verbotene Spaltennamen" #: cps/templates/user_table.html:144 msgid "Change Password" @@ -3167,7 +3162,6 @@ msgid "Edit Public Shelves" msgstr "Öffentliche Bücherregale bearbeiten" #: cps/templates/user_table.html:152 -#, fuzzy msgid "Sync selected Shelves with Kobo" msgstr "Ausgesuchte Bücherregale mit Kobo synchronisieren" diff --git a/cps/translations/el/LC_MESSAGES/messages.mo b/cps/translations/el/LC_MESSAGES/messages.mo index bbafe7de..f9eedd9b 100644 Binary files a/cps/translations/el/LC_MESSAGES/messages.mo and b/cps/translations/el/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/el/LC_MESSAGES/messages.po b/cps/translations/el/LC_MESSAGES/messages.po index c4389f7a..77034e28 100644 --- a/cps/translations/el/LC_MESSAGES/messages.po +++ b/cps/translations/el/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Depountis Georgios\n" "Language: el\n" @@ -25,7 +25,7 @@ msgstr "δεν εγκαταστάθηκε" msgid "installed" msgstr "εγκαταστάθηκε" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Στατιστικά" @@ -45,9 +45,9 @@ msgstr "Επιτυχής επανασύνδεση" msgid "Unknown command" msgstr "Άγνωστη εντολή" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "ʼΑγνωστο" @@ -75,7 +75,7 @@ msgstr "Χρήστης Διαχειριστής" msgid "All" msgstr "Όλα" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Δεν βρέθηκε χρήστης" @@ -92,7 +92,7 @@ msgstr "Προβολή Όλων" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Δεν έχει απομείνει χρήστης διαχειριστής, δεν μπορεί να αφαιρεθεί ο ρόλος διαχειριστή" @@ -144,7 +144,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Ενημερώθηκε η διαμόρφωση Calibre-Web" @@ -160,7 +160,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Είσαι σίγουρος/η πως θέλεις να διαγράψεις αυτό το ράφι;" @@ -208,279 +208,279 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Απόρριψη" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Επιτρέπεται" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json Δεν Έχει Διαμορφωθεί Για Διαδικτυακή Εφαρμογή" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Το Φύλλο Καταγραφής Τοποθεσίας δεν είναι Έγκυρο, Παρακαλούμε Συμπλήρωσε Τη Σωστή Πορεία" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Η Πρόσβαση Φύλλου Καταγραφης Τοποθεσίας δεν είναι έγκυρη, Παρακαλούμε Συμπλήρωσε Τη Σωστή Πορεία" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Παρακαλούμε Συμπλήρωσε ένα Πάροχο LDAP, Θύρα, DN και Αντικείμενο Αναγνώρισης Χρήστη" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Παρακαλούμε συμπλήρωσε ένα έγκυρο όνομα χρήστη για επαναφορά του κωδικού" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "Το Αντικείμενο Φίλτρου Ομάδας LDAP Πρέπει να Έχει Μια \"%s\" Αναγνώριση Μορφής" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Το Αντικείμενο Φίλτρου Ομάδας LDAP Έχει Παρενθέσεις Που Δεν Ταιριάζουν" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "Το Αντικείμενο Φίλτρου Χρήστη LDAP πρέπει να Έχει Μια \"%s\" Αναγνώριση Μορφής" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Το Αντικείμενο Φίλτρου Χρήστη LDAP Έχει Παρενθέσεις Που Δεν Ταιριάζουν" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "Οι ρυθμίσεις DB δεν μπορούν να Γραφτούν" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Η Τοποθεσία DB δεν είναι Έγκυρη, Παρακαλούμε Συμπληρώστε Τη Σωστή Πορεία" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Η DB δεν μπορεί να Γραφτεί" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Το Αρχειο Κλειδί Τοποθεσίας δεν είναι Έγκυρο, Παρακαλούμε Συμπληρώστε Τη Σωστή Πορεία" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Η Τοποθεσία Certfile δεν είναι Έγκυρη, Παρακαλούμε Συμπληρώστε Τη Σωστή Πορεία" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Ενημερώθηκαν οι ρυθμίσεις E-mail διακομιστή" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Διαμόρφωση Λειτουργίας" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Παρακαλούμε συμπλήρωσε όλα τα πεδία!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Το E-mail δεν είναι από έγκυρο domain" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Προσθήκη νέου χρήστη" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Χρήστης/ες '%(user)s' δημιουργήθηκαν" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Βρέθηκε ένας ήδη υπάρχον λογαριασμός για αυτή τη διεύθυνση e-mail ή όνομα χρήστη." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Χρήστης/ες '%(nick)s' διαγράφηκαν" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Δεν έχει απομείνει χρήστης διαχειριστής, δεν μπορεί να διαγραφεί ο χρήστης" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Επεξεργασία χρήστη %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Χρήστης/ες '%(nick)s' ενημερώθηκαν" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Προέκυψε ένα άγνωστο σφάλμα. Παρακαλούμε δοκίμασε ξανά αργότερα." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Επεξεργασία Ρυθμίσεων E-mail Διακομιστή" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Παρουσιάστηκε σφάλμα κατά την αποστολή του δοκιμαστικού e-mail:% (res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Παρακαλούμε ρύθμισε πρώτα τη διεύθυνση e-mail σου..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Ενημερώθηκαν οι ρυθμίσεις E-mail διακομιστή" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Κωδικός για επαναφορά %(user) χρήστη/ών" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Παρακαλούμε διαμόρφωσε πρώτα τις ρυθμίσεις ταχυδρομείου SMTP..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Προβολέας αρχείου φύλλου καταγραφής" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Αίτημα πακέτου ενημέρωσης" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Κατεβάζει πακέτο ενημέρωσης" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Ανοίγει πακέτο ενημέρωσης" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Αντικατάσταση αρχείων" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Οι συνδέσεις βάσης δεδομένων είναι κλειστές" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Σταματάει το διακομιστή" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Η ενημέρωση τελειώσε, παρακαλούμε πιέστε το εντάξει και φορτώστε ξανά τη σελίδα" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Η ενημέρωση απέτυχε:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP Σφάλμα" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Τελείωσε ο χρόνος κατά την προσπάθεια δημιουργίας σύνδεσης" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Γενικό σφάλμα" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Το Αρχείο Ενημέρωσης Δεν Μπόρεσε Να Αποθηκευτεί σε" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Αποτυχία Δημιουργίας Τουλάχιστον Ενός Χρήστη LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Αποτυχία Δημιουργίας Τουλάχιστον Ενός Χρήστη LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Σφάλμα: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Σφάλμα: Δεν επιστράφηκε χρήστης σε απάντηση του διακομιστή LDAP" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "Τουλάχιστον Ένας Χρήστης LDAP Δεν Βρέθηκε Στη Βάση Δεδομένων" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -492,108 +492,112 @@ msgstr "δεν διαμορφώθηκε" msgid "Execution permissions missing" msgstr "Λείπουν άδειες εκτέλεσης" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Η ειδικά προσαρμοσμένη στήλη No.%(column)d δεν υπάρχει στο επίπεδο βάσης δεδομένων" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Η μορφή βιβλίου Διαγράφηκε Επιτυχώς" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Το Βιβλίο Διαγράφηκε Επιτυχώς" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Oυπς! Ο επιλεγμένος τίτλος βιβλίου δεν είναι διαθέσιμος. Το αρχείο δεν υπάρχει ή δεν είναι προσβάσιμο" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "επεξεργασία μεταδεδομένων" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s δεν είναι μια έγκυρη γλώσσα" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Η επέκταση αρχείου '%(ext)s' δεν επιτρέπεται να ανέβει σε αυτό το διακομιστή" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Το αρχείο προς ανέβασμα πρέπει να έχει μια επέκταση" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Αποτυχεία δημιουργίας πορείας %(path)s (Η άδεια απορρήφθηκε)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Αποτυχία αποθήκευσης αρχείου %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Σφάλμα βάσης δεδομένων: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Μορφή αρχείου %(ext)s προστέθηκε σε %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "Τα αναγνωριστικά δεν έχουν Διάκριση Πεζών-Κεφαλαίων Γραμμάτων, Αντικατάσταση Παλιού Αναγνωριστικού" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Τα μεταδεδομένα ενημερώθηκαν επιτυχώς" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Σφάλμα επεξεργασίας βιβλίου, παρακαλούμε έλεγξε το φύλλο καταγραφής για λεπτομέρειες" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Το βιβλίο που ανέβηκε πιθανόν να υπάρχει στη βιβλιοθήκη, σκέψου να το αλλάξεις πριν ανεβάσεις νέο: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Το αρχείο %(filename)s δεν μπόρεσε να αποθηκευτεί σε temp dir" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Αποτυχία Μετακίνησης Αρχείου Φόντου %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Το αρχείο %(file)s ανέβηκε" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Η δομή πηγής ή προορισμού για μετατροπή λείπει" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Το βιβλίο είναι σε σειρά επιτυχώς για μετατροπή σε %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Υπήρξε ένα σφάλμα στη μετατροπή αυτού του βιβλίου: %(res)s" @@ -606,175 +610,175 @@ msgstr "Η ρύθμιση του Google Drive δεν ολοκληρώθηκε, msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Η ανάκληση ονόματος δεν έχει επαληθευτεί, παρακαλούμε ακολούθησε τα βήματα για την επαλήθευση ονόματος στην κονσόλα προγραμματιστή google" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s η δομή δεν βρέθηκε για την ταυτότητα βιβλίου: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s δεν βρέθηκε στο Google Drive: %(fn)s" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s δεν βρέθηκε: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Αποστολή στο Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Αυτό το e-mail έχει σταλεί μέσω Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web δοκιμαστικό e-mail" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Δοκιμαστικό e-mail" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Ξεκινήστε με το Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "e-mail εγγραφής για χρήστη: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Μετατροπή %(orig)s σε %(format)s και αποστολή στο Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Αποστολή %(format)s στο Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Αποστολή στο Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Το αρχείου που χητήθηκε δεν μπορεί να διαβαστεί. Μπορεί να υπάρχουν λαθασμένες άδειες;" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Η διαγραφή φακέλου βιβλίου για το βιβλίο %(id)s απέτυχε, η πορεία έχει υπό-φακέλους: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Η διαγραφή βιβλίου %(id)s απέτυχε: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, 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:388 +#: cps/helper.py:385 #, 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:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Η μετονομασία αρχείου σε πορεία '%(src)s' σε '%(dest)s' απέτυχε με σφάλμα: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Το αρχείο %(file)s δεν βρέθηκε στο Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Η πορεία βιβλίου %(path)s δεν βρέθηκε στο Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Βρέθηκε ένας ήδη υπάρχον λογαριασμός για αυτή τη διεύθυνση e-mail." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Αυτό το όνομα χρήστη έχει ήδη παρθεί" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Σφάλμα Κατεβάσματος Φόντου" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Σφάλμα Μορφής Φόντου" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Αποτυχία δημιουργίας πορείας για φόντο" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Το αρχείο φόντου δεν είναι ένα έγκυρο αρχείο εικόνας, ή δεν μπόρεσε να αποθηκευτεί" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Μόνο jpg/jpeg αρχεία υποστηρίζονται ως αρχεία φόντου" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Δεν βρέθηκε δυαδικό αρχείο Unrar" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Σφάλμα εκτέλεσης UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Αναμονή" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Απέτυχε" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Ξεκίνησε" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Τελείωσε" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "ʼΑγνωστη κατάσταση" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Παρακαλούμε λάβε πρόσβαση στο calibre-web από ένα μη τοπικό εξηπηρετητή για να λάβεις μια έγκυρη api_endpoint για συσκευή kobo" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Καθορισμός Kobo" @@ -783,7 +787,7 @@ msgstr "Καθορισμός Kobo" msgid "Register with %(provider)s" msgstr "Εγγραφή με %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "τώρα έχεις συνδεθεί ως: '%(nickname)s'" @@ -849,7 +853,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Σύνδεση" @@ -1068,41 +1072,46 @@ msgstr "Επεξεργασία ενός ραφιού" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Το ράφι %(title)s δημιουργήθηκε" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Το ράφι %(title)s άλλαξε" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Υπήρξε ένα σφάλμα" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Ένα δημόσιο ράφι με το όνομα '%(title)s' υπάρχει ήδη." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Ένα ιδιωτικό ράφι με το όνομα '%(title)s' υπάρχει ήδη." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Το Βιβλίο Διαγράφηκε Επιτυχώς" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Αλλαγή σειράς του Ραφιού: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Ράφι: '%(name)s" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Σφάλμα κατά το άνοιγμα του ραφιού. Το ράφι δεν υπάρχει ή δεν είναι προσβάσιμο" @@ -1183,14 +1192,14 @@ msgstr "Κατηγορία: %(name)s" msgid "Language: %(name)s" msgstr "Γλώσσα: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Προχωρημένη Αναζήτηση" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Αναζήτηση" @@ -1210,102 +1219,102 @@ msgstr "Λίστα μορφών αρχείου" msgid "Tasks" msgstr "Εργασίες" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Εκδόθηκε μετά" -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Εκδόθηκε πριν" -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Αξιολόγηση <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Αξιολόγηση >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Το βιβλίο έχει επιτυχώς μπει σε σειρά για αποστολή στο %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Oυπς! Υπήρξε ένα σφάλμα κατά την αποστολή αυτού του βιβλίου: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Παρακαλούμε ενημέρωσε το προφίλ σου με μια έγκυρη Διεύθυνση E-mail Αποστολής στο Kindle." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Ο διακομιστής E-Mail δεν έχει διαμορφωθεί, παρακαλούμε επικοινώνησε με το διαχειριστή σου!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Εγγραφή" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Η διεύθυνση e-mail σου δεν επιτρέπεται να εγγραφεί" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Το e-mail επιβεβαίωσης έχει σταλεί στον e-mail λογαριασμό σου." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Δεν μπόρεσε να ενεργοποιηθεί η επαλήθευση LDAP" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Εναλλακτική Σύνδεση ως: '%(nickname)s', Ο Διακομιστής LDAP δεν είναι προσβάσιμος, ή ο χρήστης δεν είναι γνωστός" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Δεν μπόρεσε να συνδεθεί: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Λανθασμένο Όνομα Χρήστη ή Κωδικός" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Ο Νέος Κωδικός έχει σταλεί στη διεύθυνση email σου" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Παρακαλούμε συμπλήρωσε ένα έγκυρο όνομα χρήστη για επαναφορά του κωδικού" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Έχεις συνδεθεί ως: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's προφίλ" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Το προφίλ ενημερώθηκε" @@ -1342,7 +1351,7 @@ msgstr "Το τροποποιημένο αρχείο δεν βρέθηκε ή υ msgid "Ebook-converter failed: %(error)s" msgstr "Ο μετατροπέας Ebook απέτυχε: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Το Calibre απέτυχε με σφάλμα: %(error)s" @@ -1382,7 +1391,7 @@ msgid "Upload" msgstr "Ανέβασμα" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Κατέβασμα" @@ -1549,39 +1558,38 @@ msgstr "Λεπτομέρειες" msgid "Current version" msgstr "Τρέχουσα έκδοση" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Έλεγχος για Ενημέρωση" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Πραγματοποίηση Ενημέρωσης" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Είσαι σίγουρος/η πως θέλεις να κάνεις επανεκκίνηση" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "OK" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Ακύρωση" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Είσαι σίγουρος/η πως θέλεις να κάνεις κλείσιμο;" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Γίνεται ενημέρωση, παρακαλούμε μη φορτώσεις ξανά αυτή τη σελίδα" @@ -1594,39 +1602,39 @@ msgid "In Library" msgstr "Στη Βιβλιοθήκη" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "μείωση" @@ -2471,12 +2479,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2581,7 +2589,7 @@ msgstr "Σφάλμα" msgid "Upload done, processing, please wait..." msgstr "Το ανέβασμα έγινε, γίνεται επεξεργασία, παρακαλούμε περίμενε..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ρυθμίσεις" @@ -2732,7 +2740,7 @@ msgstr "Calibre-Web Κατάλογος eBook" msgid "epub Reader" msgstr "PDF πρόγραμμα ανάγνωσης" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Επανάληψη ροής κειμένου όταν οι μπάρες στο πλάι είναι ανοιχτές." @@ -2965,30 +2973,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Διαγραφή αυτού του Ραφιού" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Το ράφι θα διαγραφεί για όλους τουε χρήστες" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Κοινοποίηση με Όλους" diff --git a/cps/translations/es/LC_MESSAGES/messages.mo b/cps/translations/es/LC_MESSAGES/messages.mo index a476236c..bd6afe28 100644 Binary files a/cps/translations/es/LC_MESSAGES/messages.mo and b/cps/translations/es/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po index 4254df10..2f100e3b 100644 --- a/cps/translations/es/LC_MESSAGES/messages.po +++ b/cps/translations/es/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-05-25 17:22+0200\n" "Last-Translator: minakmostoles \n" "Language: es\n" @@ -29,7 +29,7 @@ msgid "installed" msgstr "instalado" # "Last-Translator: victorhck \n" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Estadísticas" @@ -49,9 +49,9 @@ msgstr "Reconexión correcta" msgid "Unknown command" msgstr "Comando desconocido" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Desconocido" @@ -79,7 +79,7 @@ msgstr "Editar usuarios" msgid "All" msgstr "Todo" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Usuario no encontrado" @@ -96,7 +96,7 @@ msgstr "Mostrar todo" msgid "Malformed request" msgstr "Petición mal formulada" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "El nombre de invitado no se puede cambiar" @@ -104,7 +104,7 @@ msgstr "El nombre de invitado no se puede cambiar" msgid "Guest can't have this role" msgstr "El invitado no puede tener ese rol" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "No queda ningún usuario administrador, no se puede eliminar al usuario" @@ -148,7 +148,7 @@ msgstr "Columna de lectura no válida" msgid "Invalid Restricted Column" msgstr "Columna restringida no válida" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Configuración de Calibre-Web actualizada" @@ -164,7 +164,7 @@ msgstr "¿Realmente deseas borrar este dominio?" msgid "Do you really want to delete this user?" msgstr "¿Realmente quieres borrar este usuario?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "¿Realmente quieres eliminar este estante?" @@ -212,279 +212,279 @@ msgstr "Etiqueta no encontrada" msgid "Invalid Action" msgstr "Acción no válida" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Denegar" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Permitir" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json no está configurado para la aplicación web" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "La ruta del Logfile no es válida. Por favor, Introduce la ruta correcta" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "La ruta del Access Logfile no es válida. Por favor, Introduce la ruta correcta" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Por favor, Introduce un proveedor LDAP, puerto, DN y el User Object Identifier" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Por favor, introduce una cuenta de servicio LDAP y su contraseña" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Por favor, introduce una cuenta de servicio LDAP" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP Group Object Filter necesita tener un identificador de formato \"%s\"" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "El LDAP Group Object Filter tiene un paréntesis diferente" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP Group Object Filter necesita tener un identificador de formato \"%s\"" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "El LDAP Group Object Filter tiene un paréntesis diferente" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "El filtro de usuarios LDAP necesita tener un identificador de formato \"%s\"" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "El filtro de LDAP \"Member User\" tiene paréntesis no coincidentes" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "Ubicaciones del certificado de la CA del LDAP, del certificado o de la clave no válidos. Por favor introduce la ruta correcta" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "La base de datos de configuración no es modificable" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "La ruta de la base de datos no es válida. Por favor, Introduce la ruta correcta" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "La base de datos no es modificable" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "La ruta del Keyfile no es válida, por favor, Introduce la ruta correcta" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "La ruta de Certfile no es válida, por favor, Introduce la ruta correcta" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Actualizados los ajustes del servidor de correo electrónico" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Configuración de la base de datos" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "¡Por favor, rellena todos los campos!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "El correo electrónico no tiene un dominio válido" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Añadir un nuevo usuario" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Usuario '%(user)s' creado" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Encontrada una cuenta existente para este correo electrónico o nombre de usuario." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuario '%(nick)s' eliminado" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "No puedes borrar al Usuario Invitado" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "No queda ningún usuario administrador, no se puede borrar al usuario" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Editar Usuario %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuario '%(nick)s' actualizado" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Ha ocurrido un error desconocido. Por favor vuelva a intentarlo más tarde." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Cambiar parámetros de correo" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Verificación de cuenta de Gmail exitosa" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "Puesto en cola un correo electrónico de prueba enviado a %(email)s, por favor, comprueba el resultado en Tareas" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Ocurrió un error enviando el correo electrónico de prueba: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Por favor, configure su correo electrónico primero..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Actualizados los ajustes del servidor de correo electrónico" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Contraseña para el usuario %(user)s reinicializada" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Configura primero los parámetros del servidor SMTP..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visor del fichero de log" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Solicitando paquete de actualización" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Descargando paquete de actualización" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Descomprimiendo paquete de actualización" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Remplazando archivos" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Los conexiones con la base datos están cerradas" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Parando el servidor" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Falló la actualización:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "Error HTTP" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Error de conexión" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Tiempo agotado mientras se trataba de establecer la conexión" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Error general" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "La actualización del archivo no pudo guardarse en el directorio temporal (Temp Dir)" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Error al crear al menos un usuario LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Error al crear al menos un usuario LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Error: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Error: el servidor LDAP no ha devuelto ningún usuario" -#: cps/admin.py:1840 +#: cps/admin.py:1860 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:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Usuario importado con éxito" @@ -496,108 +496,112 @@ msgstr "no configurado" msgid "Execution permissions missing" msgstr "Faltan permisos de ejecución" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Columna personalizada No.%(column)d no existe en la base de datos calibre" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Formato de libro eliminado con éxito" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Libro eliminado con éxito" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "oh, oh, el libro seleccionado no está disponible. El archivo no existe o no es accesible" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "editar metadatos" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex) no es un número válido, saltando" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s no es un idioma válido" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "No se permite subir archivos con la extensión '%(ext)s' a este servidor" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "El archivo a subir debe tener una extensión" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Fallo al crear la ruta %(path)s (permiso denegado)" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Fallo al guardar el archivo %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Error en la base de datos: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Archivo con formato %(ext)s añadido a %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "Los identificadores no distinguen entre mayúsculas y minúsculas, sobrescribiendo el identificador antiguo" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metadatos actualizados con éxito" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Error al editar el libro, por favor, compruebe el archivo de registro (logfile) para tener más detalles" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "El libro cargado probablemente existe en la biblioteca, considera cambiarlo antes de subirlo de nuevo: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "El archivo %(filename)s no pudo salvarse en el directorio temporal (Temp Dir)" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Fallo al mover el archivo de cubierta %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "El fichero %(file)s ha sido subido" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Falta la fuente o el formato de destino para la conversión" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Libro puesto a la cola para su conversión a %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Ocurrió un error al convertir este libro: %(res)s" @@ -610,175 +614,175 @@ msgstr "La configuración de Google Drive no se ha completado, intente desactiva msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "El dominio Callback no se ha verificado, siga los pasos para verificarlo en la consola de desarrollador de Google" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formato no encontrado para el id del libro: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s no encontrado: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Enviar al Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Este correo electrónico ha sido enviado usando Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Correo de prueba de Calibre-Web" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Comprobar correo electrónico" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Primeros pasos con Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Correo electrónico de registro para el usuario: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Convertir %(orig)s a %(format)s y enviar al Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Enviado %(format)s al Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Enviar al Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Fallo al intentar borrar la carpeta del libro %(id)s, la ruta tiene subcarpetas: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "El eliminado del libro %(id)s falló: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Borrando el libro %(id)s, la ruta del libro es no válida: %(path)s" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "El renombrado del título de: '%(src)s' a '%(dest)s' falló con el error: %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Ha fallado el cambio de nombre del archivo '%(src)s' a '%(dest)s' con el error: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Fichero %(file)s no encontrado en Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "La ruta %(path)s del libro no fue encontrada en Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Encontrada una cuenta existente para esa dirección de correo electrónico" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Este nombre de usuario ya está en uso" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "Dirección de correo no válida" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Error al descargar la cubierta" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Error en el formato de la cubierta" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Error al crear una ruta para la cubierta" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "El archivo de cubierta no es una imágen válida" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Sólo se admiten como portada los archivos jpg/jpeg/png/webp/bmp" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Sólo se admiten como portada los archivos jpg/jpeg" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "No se encuentra el archivo binario UnRar" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Error ejecutando UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Esperando" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Fallido" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Comenzado" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Finalizado" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Estado desconocido" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Por favor, accede a calibre-web desde una ubicación que no sea localhost para obtener una api_endpoint válida para tu dispositivo Kobo" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Configuración de Kobo" @@ -787,7 +791,7 @@ msgstr "Configuración de Kobo" msgid "Register with %(provider)s" msgstr "Registrado con %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "has iniciado sesión como : '%(nickname)s'" @@ -853,7 +857,7 @@ msgid "{} Stars" msgstr "{} Estrellas" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Inicio de sesión" @@ -1072,41 +1076,46 @@ msgstr "Editar un estante" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Estante %(title)s creado" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Estante %(title)s cambiado" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Ha sucedido un error" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Ya existe un estante público con el nombre '%(title)s'." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Ya existe un estante privado con el nombre '%(title)s'." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Libro eliminado con éxito" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Cambiar orden del estante: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Estante: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Error al abrir un estante. El estante no existe o no es accesible" @@ -1187,14 +1196,14 @@ msgstr "Categoría : %(name)s" msgid "Language: %(name)s" msgstr "Idioma: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Búsqueda avanzada" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Buscar" @@ -1214,102 +1223,102 @@ msgstr "Lista de formatos" msgid "Tasks" msgstr "Tareas" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Publicado después de " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Publicado antes de " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Calificación <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Calificación >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Estado de lectura = $(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "Error en la búsqueda de columnas personalizadas, por favor reinicia Calibre-Web" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Libro puesto en la cola de envío a %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Ha sucedido un error en el envío del libro: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Por favor actualiza tu perfil con la dirección de correo de su kindle..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "El servidor de correo no está configurado, por favor, ¡avisa a tu administrador!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Registro" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Su correo electrónico no está permitido para registrarse" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Se ha enviado un correo electrónico de verificación a su cuenta de correo." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "No se puede activar la autenticación LDAP" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Fallback login como: '%(nickname)s', no se puede acceder al servidor LDAP o usuario desconocido" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "No se pudo entrar: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Usuario o contraseña inválido" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Una nueva contraseña se ha enviado a su cuenta de correo electrónico" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Por favor, introduce un usuario válido para restablecer la contraseña" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Ahora estás conectado como: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Perfil actualizado" @@ -1346,7 +1355,7 @@ msgstr "Archivo convertido no encontrado, o más de un archivo en el directorio msgid "Ebook-converter failed: %(error)s" msgstr "Falló Ebook-converter: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre falló con el error: %(error)s" @@ -1386,7 +1395,7 @@ msgid "Upload" msgstr "Subir archivo" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Descargar" @@ -1553,39 +1562,38 @@ msgstr "Detalles" msgid "Current version" msgstr "Versión actual" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Comprobar actualizaciones" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Realizar actualización" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "¿Realmente quieres reiniciar?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Ok" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Cancelar" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "¿Realmente quiere detener?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Actualizando. Por favor, no recargue la página" @@ -1598,39 +1606,39 @@ msgid "In Library" msgstr "En la Librería" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Ordenar en base a fecha del libro, más reciente primero" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Ordenar en base a fecha del libro, menos reciente primero" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Ordenar en base al título en orden alfabético" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Ordenar en base al título en orden alfabético invertido" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Ordenar en base a fecha de publicación, más reciente primero" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Ordenar en base a fecha de publicación, menos reciente primero" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "reducir" @@ -2475,12 +2483,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Ordenar autores en orden alfabético" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Ordenar autores en orden alfabético inverso" @@ -2585,7 +2593,7 @@ msgstr "Error" msgid "Upload done, processing, please wait..." msgstr "Carga hecha, procesando, por favor espere ..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ajustes" @@ -2736,7 +2744,7 @@ msgstr "Catálogo de ebooks de Calibre-Web" msgid "epub Reader" msgstr "Lector PDF" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Redimensionar el texto cuando las barras laterales están abiertas." @@ -2969,30 +2977,26 @@ msgstr "De:" msgid "To:" msgstr "Para:" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Borrar este estante" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Editar propiedades del estante" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Ordenar libros manualmente" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Deshabilitar cambio de orden" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Habilitar cambio de orden" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "La estantería se eliminará para todos los usuarios" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Compartir con todos" diff --git a/cps/translations/fi/LC_MESSAGES/messages.mo b/cps/translations/fi/LC_MESSAGES/messages.mo index a6a8eea2..7c98af45 100644 Binary files a/cps/translations/fi/LC_MESSAGES/messages.mo and b/cps/translations/fi/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/fi/LC_MESSAGES/messages.po b/cps/translations/fi/LC_MESSAGES/messages.po index 5fe3845e..40b237d9 100644 --- a/cps/translations/fi/LC_MESSAGES/messages.po +++ b/cps/translations/fi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-01-12 13:56+0100\n" "Last-Translator: Samuli Valavuo \n" "Language: fi\n" @@ -26,7 +26,7 @@ msgstr "ei asennettu" msgid "installed" msgstr "asennettu" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Tilastot" @@ -46,9 +46,9 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Tuntematon" @@ -76,7 +76,7 @@ msgstr "Pääkäyttäjä" msgid "All" msgstr "Kaikki" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -93,7 +93,7 @@ msgstr "Näytä kaikki" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -101,7 +101,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -145,7 +145,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web asetukset päivitetty" @@ -161,7 +161,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Oletko varma, että haluat poistaa hyllyn?" @@ -209,276 +209,276 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Sähköpostipalvelimen tiedot päivitetty" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Ominaisuuksien asetukset" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Ole hyvä ja täytä kaikki kentät!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Sähköpostiosoite ei ole toimivasta domainista" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Lisää uusi käyttäjä" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Käyttäjä '%(user)s' lisätty" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Tälle sähköpostiosoitteelle tai tunnukselle löytyi jo tili." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Käyttäjä '%(nick)s' poistettu" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Pääkäyttäjiä ei jää jäljelle, käyttäjää ei voi poistaa" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Muokkaa käyttäjää %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Käyttäjä '%(nick)s' päivitetty" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Tapahtui tuntematon virhe. Yritä myöhemmin uudelleen." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Muuta SMTP asetuksia" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Testisähköpostin lähetyksessä tapahtui virhe: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Sähköpostipalvelimen tiedot päivitetty" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Käyttäjän %(user)s salasana palautettu" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Ole hyvä ja aseta SMTP postiasetukset ensin..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Lokitiedoston katselin" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Haetaan päivitystiedostoa" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Ladataan päivitystiedostoa" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Puretaan päivitystiedostoa" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Korvataan tiedostoja" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Tietokantayhteydet on katkaistu" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Sammutetaan palvelin" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Päivitys valmistui, ole hyvä ja paina OK ja lataa sivu uudelleen" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Päivitys epäonnistui:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP virhe" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Yhteysvirhe" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Aikakatkaisu yhteyttä luotaessa" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Yleinen virhe" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -490,108 +490,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Virhe eKirjan avaamisessa. Tiedostoa ei ole tai se ei ole saatavilla:" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "muokkaa metadataa" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s ei ole kelvollinen kieli" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Tiedostopääte '%(ext)s' ei ole sallittujen palvelimelle ladattavien listalla" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Ladattavalla tiedostolla on oltava tiedostopääte" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Polun %(path)s luonti epäonnistui (Ei oikeutta)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Tiedoston %(file)s tallennus epäonnistui." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Tiedostoformaatti %(ext)s lisätty %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metadata päivitetty onnistuneesti" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Kirjan editoinnissa tapahtui virhe, tarkista virheilmoitus lokista" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Tiedosto %(file)s tallennettu" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Lähteen tai kohteen tiedostomuoto puuttuu" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Kirja lisätty muutosjonoon muotoon %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Kirjan muunnoksessa tapahtui virhe: %(res)s" @@ -604,175 +608,175 @@ msgstr "Google Drive asetukset ei ole valmiit. Koita poistaa Google Drive käyt msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Paluuosoitteen domain ei ole varmistettu, seuraa ohjeita vamistaaksesi sen googlen kehittäjäkonsolissa" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s tiedostomuotoa ei löytynyt kirjalle: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s ei löydy: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Lähetä Kindleen" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Tämä sähköposti on lähetetty Calibre-Web:sta." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web testisähköposti" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Testi sähköposti" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Aloita Calibre-Web:in käyttö" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Rekiströintisähköposti käyttäjälle: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Muunna %(orig)s muotoon %(format)s ja lähetä Kindleen" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Lähetä %(format)s Kindleen" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Lähetä Kindleen" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Tiedon muuttaminen arvosta: '%(src)s' arvoon '%(dest)s' epäonnistui virheeseen: %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Tiedoston nimeäminen polusta '%(src)s' polkuun '%(dest)s' epäonnistui virheeseen: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Tiedostoa %(file)s ei löytynyt Google Drivesta" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Kirjan polkua %(path)s ei löytynyt Google Drivesta" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Tälle sähköpostiosoitteelle läytyi jo käyttäjätunnus." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Odottaa" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Epäonnistui" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Aloitettu" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Valmistui" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Tuntematon tila" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "" @@ -781,7 +785,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "Rekisteröi tuottajalle %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "olet nyt kirjautunut tunnuksella: \"%(nickname)s\"" @@ -847,7 +851,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Kirjaudu sisään" @@ -1066,41 +1070,46 @@ msgstr "Muokkaa hyllyä" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Hylly %(title)s luotu" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Hylly %(title)s muutettu" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Tapahtui virhe" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Metadata päivitetty onnistuneesti" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Muuta hyllyn: '%(name)s' järjestystä" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Hylly: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Virhe hyllyn avauksessa. Hyllyä ei ole tai se ei ole saatavilla" @@ -1181,14 +1190,14 @@ msgstr "Kategoria: %(name)s" msgid "Language: %(name)s" msgstr "Kieli: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Edistynyt haku" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Hae" @@ -1208,102 +1217,102 @@ msgstr "Tiedostomuotolistaus" msgid "Tasks" msgstr "Tehtävät" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Julkaistu alkaen " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Julkaisut ennen " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Arvostelu <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Arvostelu >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Kirja lisätty onnistuneeksi lähetettäväksi osoitteeseen %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Kirjan: %(res)s lähettämisessa tapahtui virhe" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Ole hyvä ja aseta Kindle sähköpostiosoite ensin..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Rekisteröi" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Sähköpostiosoitteellasi ei ole sallittua rekisteröityä" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Vahvistusviesti on lähetetty sähköpostiosoitteeseesi." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "LDAP autnetikoinnin aktivointi ei onnistu" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Väärä käyttäjätunnus tai salasana" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "olet kirjautunut tunnuksella: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)sn profiili" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profiili päivitetty" @@ -1340,7 +1349,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "E-kirjan muunnos epäonnistui: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1380,7 +1389,7 @@ msgid "Upload" msgstr "Lähetä" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Lataa" @@ -1547,39 +1556,38 @@ msgstr "Yksityiskohdat" msgid "Current version" msgstr "Nykyinen versio" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Tarkista päivitykset" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Päivitä" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Haluatko varmasti uudelleenkäynnistää Calibre-Webin?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Ok" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Haluatko varmasti pysäyttää Calibre-Webin?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Päivitetään, älä päivitä sivua" @@ -1592,39 +1600,39 @@ msgid "In Library" msgstr "Kirjastossa" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "vähennä" @@ -2467,12 +2475,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2577,7 +2585,7 @@ msgstr "Virhe" msgid "Upload done, processing, please wait..." msgstr "Lataus tehty, prosessoidaan, ole hyvä ja odota..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Asetukset" @@ -2728,7 +2736,7 @@ msgstr "Calibre-Web e-kirjaluettelo" msgid "epub Reader" msgstr "PDF lukija" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Uudelleenjärjestä teksti kun sivut on auki." @@ -2961,30 +2969,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Poista tämä hylly" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Hylly poistetaan kaikilta ja ikuisesti!" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "pitäisikö hyllyn olla julkinen?" diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo index 1c4e6de1..d06c2568 100644 Binary files a/cps/translations/fr/LC_MESSAGES/messages.mo and b/cps/translations/fr/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po index 753263fb..7380af1d 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: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-06-07 06:47+0200\n" "Last-Translator: \n" "Language: fr\n" @@ -41,7 +41,7 @@ msgstr "non installé" msgid "installed" msgstr "installé" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statistiques" @@ -61,9 +61,9 @@ msgstr "Reconnecté avec succès" msgid "Unknown command" msgstr "Commande inconnue" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Inconnu" @@ -83,7 +83,7 @@ msgstr "Configuration de l’interface utilisateur" #: cps/admin.py:277 cps/templates/admin.html:50 #, fuzzy msgid "Edit Users" -msgstr "Utilisateur admin" +msgstr "Éditer les utilisateurs" #: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275 #: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9 @@ -91,7 +91,7 @@ msgstr "Utilisateur admin" msgid "All" msgstr "Tout" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "L'utilisateur n'a pas été trouvé" @@ -108,7 +108,7 @@ msgstr "Montrer tout" msgid "Malformed request" msgstr "Demande malformée" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "Le nom de l’invité ne peut pas être modifié" @@ -116,7 +116,7 @@ msgstr "Le nom de l’invité ne peut pas être modifié" msgid "Guest can't have this role" msgstr "L’invité ne peut pas avoir ce rôle" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Aucun utilisateur admin restant, impossible de supprimer le rôle admin" @@ -160,7 +160,7 @@ msgstr "Colonne de lecture non valide" msgid "Invalid Restricted Column" msgstr "Colonne restreinte non valide" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Configuration de Calibre-Web mise à jour" @@ -176,7 +176,7 @@ msgstr "Voulez-vous vraiment supprimer ce domaine ?" msgid "Do you really want to delete this user?" msgstr "Voulez-vous vraiment supprimer cet utilisateur ?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Voulez-vous vraiment supprimer l’étagère ?" @@ -214,7 +214,7 @@ msgstr "Voulez-vous vraiment arrêter Calibre-Web ?" #: cps/admin.py:594 msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" -msgstr "" +msgstr "Êtes-vous certain de vouloir supprimer la base de données de synchronisation de Calibre-Web pour forcer une synchronisation complète avec votre liseuse Kobo ?" #: cps/admin.py:743 msgid "Tag not found" @@ -224,279 +224,279 @@ msgstr "Étiquette introuvable" msgid "Invalid Action" msgstr "Action invalide" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Refuser" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Autoriser" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" -msgstr "" +msgstr "{} entrées de synchronisation supprimées" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json n'est pas configuré pour l'application Web" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "L'emplacement du fichier logfile est incorrect, veuillez saisir un chemin valide" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "L'emplacement du fichier Access Logfile est incorrect, veuillez saisir un chemin valide" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Veuillez saisir un fournisseur LDAP, Port, DN et l'identifiant objet de l'utilisateur" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Veuillez entrer un nom d'utilisateur valide pour réinitialiser le mot de passe" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Veuillez entrer un compte de service LDAP" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "Le filtre objet du groupe LDAP a besoin d'un identifiant de format \"%s\"" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Le filtre objet du groupe LDAP a une parenthèse non gérée" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "Le filtre objet de l'utilisateur LDAP a besoin d'un identifiant de format \"%s\"" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Le filtre objet de l'utilisateur LDAP a une parenthèse non gérée" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "Le filtre utilisateur des membres LDAP doit avoir un identificateur de format \"%s\\ »" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "Le filtre utilisateur de membre LDAP a des parenthèses non appariées" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CACertificat, certificat ou emplacement de clé non valide, veuillez entrer le chemin correct" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "Les paramètres de la base de données ne sont pas accessibles en écriture" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "L'emplacement de la base de données est incorrect, veuillez saisir un chemin valide" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "La base de données n'est pas accessible en écriture" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "L'emplacement du fichier Keyfile est incorrect, veuillez saisir un chemin valide" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "L'emplacement du fichier Certfile est incorrect, veuillez saisir un chemin valide" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Les paramètres du serveur de courriels ont été mis à jour" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Configuration des options" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Veuillez compléter tous les champs !" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Cette adresse de courriel n’appartient pas à un domaine valide" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Ajouter un nouvel utilisateur" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Utilisateur '%(user)s' créé" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Un compte existant a été trouvé pour cette adresse de courriel ou pour ce surnom." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Utilisateur '%(nick)s' supprimé" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "Impossible de supprimer l’utilisateur Invité" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Aucun utilisateur admin restant, impossible de supprimer l’utilisateur" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Éditer l'utilisateur %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Utilisateur '%(nick)s' mis à jour" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Une erreur inconnue est survenue. Veuillez réessayer plus tard." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Modifier les paramètres du serveur de courriels" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "La vérification du compte Gmail réussie" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "Teste les courriels en file d’attente pour l’envoi à %(email)s, veuillez vérifier le résultat des tâches" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Il y a eu une erreur pendant l’envoi du courriel de test : %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Veuillez d'abord configurer votre adresse de courriel..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Les paramètres du serveur de courriels ont été mis à jour" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Le mot de passe de l’utilisateur %(user)s a été réinitialisé" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Veuillez configurer les paramètres SMTP au préalable..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visualiseur de fichier journal" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Demande de mise à jour" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Téléchargement de la mise à jour" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Décompression de la mise à jour" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Remplacement des fichiers" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Les connexions à la base de données ont été fermées" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Arrêt du serveur" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la page" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "La mise à jour a échoué :" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "Erreur HTTP" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Erreur de connexion" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Délai d'attente dépassé lors de l'établissement de connexion" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Erreur générale" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Le fichier de mise à jour ne peut pas être sauvegardé dans le répertoire temporaire" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" -msgstr "" +msgstr "Les fichiers n’ont pas pu être remplacés pendant la mise à jour" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Impossible de créer au moins un utilisateur LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Impossible de créer au moins un utilisateur LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Erreur : %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Erreur : Aucun utilisateur renvoyé dans la réponse LDAP du serveur" -#: cps/admin.py:1840 +#: cps/admin.py:1860 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:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} utilisateur importé avec succès" @@ -508,108 +508,112 @@ msgstr "non configuré" msgid "Execution permissions missing" msgstr "Les permissions d'exécutions manquantes" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "La colonne personnalisée No.%(column)d n'existe pas dans la base de données calibre" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Le format du livre a été supprimé avec succès" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Le livre a été supprimé avec succès" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "Vous n’avez par les permissions pour supprimer les livres" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est pas accessible" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "modifier les métadonnées" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s n’est pas un nombre valide, ignoré" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s n'est pas une langue valide" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "L’extension de fichier '%(ext)s' n’est pas autorisée pour être déposée sur ce serveur" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Pour être déposé le fichier doit avoir une extension" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Impossible de créer le chemin %(path)s (Permission refusée)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Échec de la sauvegarde du fichier %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Erreur de la base de données: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Le format de fichier %(ext)s a été ajouté à %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "Les identificateurs ne sont pas sensibles à la casse, écrasant l’ancien identificateur" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Les métadonnées ont bien été mises à jour" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Erreur d’édition du livre, veuillez consulter le journal (log) pour plus de détails" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Le fichier téléchargé existe probablement dans la librairie, veuillez le modifier avant de le télécharger de nouveau: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Le fichier %(filename)s ne peut pas être sauvegardé dans le répertoire temporaire" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Impossible de déplacer le fichier de couverture %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Le fichier %(file)s a été téléchargé" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Le format de conversion de la source ou de la destination est manquant" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Le livre a été mis avec succès en file de traitement pour conversion vers %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Une erreur est survenue au cours de la conversion du livre : %(res)s" @@ -622,175 +626,175 @@ msgstr "La configuration de Google Drive n’est pas terminée, essayez de désa msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Le domaine de retour d’appel (Callback domain) est non vérifié, veuillez suivre les étapes nécessaires pour vérifier le domaine dans la console de développement de Google" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "le format %(format)s est introuvable pour le livre : %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s introuvable : %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Envoyer vers Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Ce courriel a été envoyé depuis Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Courriel de test de Calibre-Web" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Courriel de test" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Bien démarrer avec Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Courriel d’inscription pour l’utilisateur : %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Convertir de %(orig)s vers %(format)s et envoyer au Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Envoyer %(format)s vers le Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Envoyer vers Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Échec de la suppression du dossier de livre pour le livre %(id)s, le chemin d’accès comporte des sous-dossiers : %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "La suppression du livre %(id)s a échoué: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, python-format 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:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Renommer le titre de : '%(src)s' à '%(dest)s' a échoué avec l’erreur : %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modification du nom de fichier du chemin : '%(src)s' vers '%(dest)s' a échoué avec l’erreur : %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Le fichier %(file)s n'a pas été trouvé dans Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Le chemin du livre %(path)s n'a pas été trouvé dans Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Un compte existant a été trouvé pour cette adresse de courriel." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Cet utilisateur est déjà pris" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "Format de l’adresse courriel invalide" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Erreur lors du téléchargement de la couverture" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Erreur de format de couverture" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Impossible de créer le chemin pour la couverture" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Le fichier couverture n'est pas un fichier image valide, ou ne peut pas être stocké" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Seuls les fichiers jpg/jpeg/png/webp/bmp sont supportés comme fichier de couverture" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" -msgstr "" +msgstr "Contenu du fichier de couverture invalide" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Seuls les fichiers jpg/jpeg sont supportés comme fichier de couverture" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Fichier binaire Unrar non trouvé" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Une erreur est survenue lors de l'exécution d'UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "En attente" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Echoué" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Débuté" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Terminé" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Statut inconnu" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Veuilllez ne pas accéder à calibre-web par localhost pour obtenir un api_endpoint valide pour un appareil kobo" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Configuration Kobo" @@ -799,7 +803,7 @@ msgstr "Configuration Kobo" msgid "Register with %(provider)s" msgstr "Enregistrer avec %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "vous êtes maintenant connecté comme : '%(nickname)s'" @@ -865,7 +869,7 @@ msgid "{} Stars" msgstr "{} Étoiles" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Connexion" @@ -1041,7 +1045,7 @@ msgstr "Le livre a bien été ajouté à l'étagère : %(sname)s" #: cps/shelf.py:126 msgid "You are not allowed to add a book to the shelf" -msgstr "" +msgstr "Vous n’êtes pas autorisé à ajouter un livre à l’étagère" #: cps/shelf.py:144 #, python-format @@ -1065,7 +1069,7 @@ msgstr "Le livre a été supprimé de l'étagère %(sname)s" #: cps/shelf.py:218 msgid "Sorry you are not allowed to remove a book from this shelf" -msgstr "" +msgstr "Désolé, vous n’êtes pas autorisé à supprimer un livre de cette étagère" #: cps/shelf.py:228 cps/templates/layout.html:140 msgid "Create a Shelf" @@ -1082,43 +1086,48 @@ msgstr "Modifier une étagère" #: cps/shelf.py:249 msgid "Sorry you are not allowed to create a public shelf" -msgstr "" +msgstr "Désolé, vous n’êtes pas autorisé à créer une étagère publique" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Étagère %(title)s créée" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "L’étagère %(title)s a été modifiée" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Il y a eu une erreur" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Une étagère publique avec le nom '%(title)s' existe déjà." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Une étagère privée avec le nom '%(title)s' existe déjà." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Le livre a été supprimé avec succès" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Modifier l’arrangement de l’étagère : ‘%(name)s’" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Étagère : '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Erreur à l’ouverture de l’étagère. Elle n’existe plus ou n’est plus accessible" @@ -1199,14 +1208,14 @@ msgstr "Catégorie : %(name)s" msgid "Language: %(name)s" msgstr "Langue : %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Recherche avancée" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Chercher" @@ -1226,102 +1235,102 @@ msgstr "Liste de formats de fichiers" msgid "Tasks" msgstr "Tâches" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Publié après le " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Publié avant le " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Évaluation <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Évaluation >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Status de lecture = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "Erreur lors de la recherche de colonnes personnalisées, veuillez redémarrer Calibre-Web" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Le livre a été mis en file de traitement avec succès pour un envoi vers %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Veuillez mettre à jour votre profil avec une adresse de courriel Kindle valide." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Le serveur de courriel n'est pas configuré, veuillez contacter votre administrateur!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Créer un compte" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Votre adresse de courriel n’est pas autorisé pour une inscription" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Le courriel de confirmation a été envoyé à votre adresse." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Impossible d’activer l’authentification LDAP" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Connexion de secours comme: '%(nickname)s', le serveur LDAP est indisponible, ou l'utilisateur est inconnu" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Impossible de se connecter: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Mauvais nom d'utilisateur ou mot de passe" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Le nouveau mot de passe a été envoyé vers votre adresse de courriel" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Veuillez entrer un nom d'utilisateur valide pour réinitialiser le mot de passe" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Vous êtes maintenant connecté en tant que : ‘%(nickname)s’" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Profil de %(name)s" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil mis à jour" @@ -1358,7 +1367,7 @@ msgstr "Fichier converti non trouvé ou plus d'un fichier dans le chemin %(folde msgid "Ebook-converter failed: %(error)s" msgstr "La commande ebook-convert a échouée : %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre a échoué avec l’erreur : %(error)s" @@ -1398,7 +1407,7 @@ msgid "Upload" msgstr "Téléverser" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Télécharger" @@ -1515,7 +1524,7 @@ msgstr "Nom de l'en-tête du Reverse Proxy" #: cps/templates/admin.html:157 #, fuzzy msgid "Edit Calibre Database Configuration" -msgstr "Éditer la configuration principale" +msgstr "Éditer la configuration de la base de données Calibre" #: cps/templates/admin.html:158 msgid "Edit Basic Configuration" @@ -1523,7 +1532,7 @@ msgstr "Éditer la configuration principale" #: cps/templates/admin.html:159 msgid "Edit UI Configuration" -msgstr "Configuration de l’interface utilisateur" +msgstr "Éditer la configuration de l’interface utilisateur" #: cps/templates/admin.html:164 msgid "Administration" @@ -1565,39 +1574,38 @@ msgstr "Détails" msgid "Current version" msgstr "Version actuelle" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Rechercher les mises à jour" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Effectuer la mise à jour" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Voulez-vous vraiment redémarrer Calibre-Web?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "OK" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Annuler" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Voulez-vous vraiment arrêter Calibre-Web?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Mise à jour en cours, ne pas rafraîchir la page" @@ -1610,39 +1618,39 @@ msgid "In Library" msgstr "Dans la librairie" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Trier en fonction de la date du livre, le plus récent en premier" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Trier en fonction de la date du livre, le plus ancien en premier" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Trier les titres dans l’ordre alphabétique" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Trier le titre dans l’ordre alphabétique inverse" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Trier en fonction de la date de publication, le plus récent en premier" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Trier en fonction de la date de publication, le plus ancien en premier" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "réduire" @@ -1898,7 +1906,7 @@ msgstr "Saisir le nom du domaine" #: cps/templates/book_table.html:73 msgid "Comments" -msgstr "" +msgstr "Commentaires" #: cps/templates/book_table.html:77 cps/templates/book_table.html:79 #: cps/templates/book_table.html:81 cps/templates/book_table.html:83 @@ -1983,7 +1991,7 @@ msgstr "Nightly" #: cps/templates/config_edit.html:50 msgid "Trusted Hosts (Comma Separated)" -msgstr "" +msgstr "Hôtes de confiance (séparés par des virgules)" #: cps/templates/config_edit.html:61 msgid "Logfile Configuration" @@ -2007,7 +2015,7 @@ msgstr "Configuration des options" #: cps/templates/config_edit.html:104 msgid "Convert non-English characters in title and author while saving to disk" -msgstr "" +msgstr "Convertir les caractères non-anglais des titre et auteur lors de l’enregistrement sur le disque" #: cps/templates/config_edit.html:108 msgid "Enable Uploads" @@ -2015,7 +2023,7 @@ msgstr "Autoriser le téléversement de fichier" #: cps/templates/config_edit.html:108 msgid "(Please ensure users having also upload rights)" -msgstr "" +msgstr "(Svp, vérifiez que les utilisateurs ont aussi les droits de téléchargement vers le serveur)" #: cps/templates/config_edit.html:112 msgid "Allowed Upload Fileformats" @@ -2176,7 +2184,7 @@ msgstr "Champ des membres de groupe LDAP" #: cps/templates/config_edit.html:278 msgid "LDAP Member User Filter Detection" -msgstr "" +msgstr "Filtre de détection des utilisateurs membres LDAP" #: cps/templates/config_edit.html:280 msgid "Autodetect" @@ -2339,7 +2347,7 @@ msgstr "Écouter dans le navigateur" #: cps/templates/detail.html:124 #, fuzzy, python-format msgid "Book %(index)s of %(range)s" -msgstr "" +msgstr "Livre %(index)s sur %(range)s" #: cps/templates/detail.html:173 msgid "Published" @@ -2480,19 +2488,19 @@ msgstr "Déconnecter l’utilisateur" #: cps/templates/index.html:69 msgid "Sort ascending according to download count" -msgstr "" +msgstr "Trier de manière ascendante selon le nombre de téléchargements" #: cps/templates/index.html:70 msgid "Sort descending according to download count" -msgstr "" +msgstr "Trier de manière descendante selon le nombre de téléchargements" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Trier les auteurs dans l’ordre alphabétique" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Trier les auteurs dans l’ordre alphabétique inverse" @@ -2597,7 +2605,7 @@ msgstr "Erreur" msgid "Upload done, processing, please wait..." msgstr "Téléversement terminé, traitement en cours, veuillez patienter…." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Paramètres" @@ -2748,7 +2756,7 @@ msgstr "Catalogue de livres électroniques Calibre-Web" msgid "epub Reader" msgstr "Lecteur PDF" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Mettre à jour la mise en page du texte quand les bandeaux latéraux sont ouverts." @@ -2981,30 +2989,26 @@ msgstr "Depuis" msgid "To:" msgstr "Vers" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Supprimer cette étagère" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Éditer les propriétés de l’étagère" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Organiser les livres manuellement" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Désactiver l’ordre de modification" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Activer l’ordre de modification" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "L’étagère sera supprimée pour tous les utilisateus" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Partager avec tout le monde" @@ -3107,7 +3111,7 @@ msgstr "Créer/visualiser" #: cps/templates/user_edit.html:70 msgid "Force full kobo sync" -msgstr "" +msgstr "Forcer une synchronisation complète Kobo" #: cps/templates/user_edit.html:88 msgid "Add allowed/Denied Custom Column Values" @@ -3132,7 +3136,7 @@ msgstr "Sélectionner..." #: cps/templates/user_table.html:131 #, fuzzy msgid "Edit User" -msgstr "Utilisateur admin" +msgstr "Éditer l’utilisateur" #: cps/templates/user_table.html:134 #, fuzzy diff --git a/cps/translations/hu/LC_MESSAGES/messages.mo b/cps/translations/hu/LC_MESSAGES/messages.mo index 58ac7965..fdf261a2 100644 Binary files a/cps/translations/hu/LC_MESSAGES/messages.mo and b/cps/translations/hu/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/hu/LC_MESSAGES/messages.po b/cps/translations/hu/LC_MESSAGES/messages.po index 7e6b1ed7..3cd5bb8d 100644 --- a/cps/translations/hu/LC_MESSAGES/messages.po +++ b/cps/translations/hu/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2019-04-06 23:36+0200\n" "Last-Translator: \n" "Language: hu\n" @@ -26,7 +26,7 @@ msgstr "nincs telepítve" msgid "installed" msgstr "" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statisztika" @@ -46,9 +46,9 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Ismeretlen" @@ -76,7 +76,7 @@ msgstr "Rendszergazda felhasználó" msgid "All" msgstr "" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -93,7 +93,7 @@ msgstr "Mindent mutass" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -101,7 +101,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -145,7 +145,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "A Calibre-Web konfigurációja frissítve." @@ -161,7 +161,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Valóban törölni akarod a polcot?" @@ -209,276 +209,276 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Az e-mail kiszolgáló beállításai frissítve." -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Funkciók beállítása" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Az összes mezőt ki kell tölteni!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Az e-mail tartománya nem érvényes." -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Új felhasználó hozzáadása" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "A következő felhasználó létrehozva: %(user)s" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Már létezik felhasználó ehhez az e-mail címhez vagy felhasználói névhez." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "A felhasználó törölve: %(nick)s" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr " A felhasználó szerkesztése: %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "A felhasználó frissítve: %(nick)s" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Ismeretlen hiba történt. Próbáld újra később!" -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "SMTP beállítások változtatása" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Hiba történt a teszt levél küldése során: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Az e-mail kiszolgáló beállításai frissítve." -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "A(z) %(user)s felhasználó jelszavának alaphelyzetbe állítása" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Először be kell állítani az SMTP levelező beállításokat..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Frissítési csomag kérése" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Frissítési csomag letöltése" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Frissítési csomag kitömörítése" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Fájlok cserélése" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Adatbázis kapcsolatok lezárva" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Szerver leállítása" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "A frissítés települt, kattints az OK-ra és újra tölt az oldal" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "A frissítés nem sikerült:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP hiba" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Kapcsolódási hiba" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Időtúllépés a kapcsolódás során" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Általános hiba" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -490,108 +490,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Hiba történt az e-könyv megnyitásakor. A fájl nem létezik vagy nem érhető el:" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "Metaadatok szerkesztése" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "A(z) %(langname)s nem érvényes nyelv" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "A(z) \"%(ext)s\" kiterjesztésű fájlok feltöltése nincs engedélyezve ezen a szerveren." -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "A feltöltendő fájlnak kiterjesztéssel kell rendelkeznie!" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Nem sikerült létrehozni az elérési utat (engedély megtagadva): %(path)s." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Nem sikerült elmenteni a %(file)s fájlt." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "A(z) %(ext)s fájlformátum hozzáadva a könyvhez: %(book)s." -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "A metaadatok sikeresen frissültek" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Hiba a könyv szerkesztése során, további részletek a naplófájlban." -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Az átalakításhoz hiányzik a forrás- vagy a célformátum!" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "A könyv sikeresen átalakításra lett jelölve a következő formátumra: %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Hiba történt a könyv átalakításakor: %(res)s" @@ -604,175 +608,175 @@ msgstr "A Google Drive beállítása nem fejeződött be, próbáld kikapcsolni msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "A visszahívási tartomány nem ellenőrzött, kövesd az alábbi lépéseket a tartomány ellenőrzéséhez a Google Developer Console-ban:" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "A(z) %(format)s formátum nem található a következő könyvhöz: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nem található: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Küldés Kindle-re" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Ez az e-mail a Calibre-Web-en keresztül lett küldve." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web teszt e-mail" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Teszt e-mail" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Kezdő lépések a Calibre-Web-bel" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Regisztrációs e-mail a következő felhasználóhoz: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s konvertálása %(format)s-ra és küldés Kindle-re" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "%(format)s küldése Kindle-re" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Küldés Kindle-re" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "A cím átnevezése \"%(src)s\"-ról \"%(dest)s\"-ra nem sikerült a következő hiba miatt: %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "\"%(src)s\" fájl átnevezése \"%(dest)s\"-re nem sikerült a következő hiba miatt: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "A \"%(file)s\" fájl nem található a Google Drive-on" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "A könyv elérési útja (\"%(path)s\") nem található a Google Drive-on" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Már létezik felhasználó ehhez az e-mail címhez." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Várakozás" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Nem sikerült" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Elindítva" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Végrehajtva" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Ismeretlen állapot" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "" @@ -781,7 +785,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Be vagy jelentkezve mint: %(nickname)s" @@ -847,7 +851,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Belépés" @@ -1066,41 +1070,46 @@ msgstr "Polc szerkesztése" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "A következő polc létre lett hozva: %(title)s" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "A következő polc megváltoztatva: %(title)s" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Hiba történt" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "A metaadatok sikeresen frissültek" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "A következő polc átrendezése: %(name)s" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Polc: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Hiba a polc megnyitásakor. A polc nem létezik vagy nem elérhető." @@ -1181,14 +1190,14 @@ msgstr "Címke: %(name)s" msgid "Language: %(name)s" msgstr "Nyelv: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Részletes keresés" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Keresés" @@ -1208,102 +1217,102 @@ msgstr "" msgid "Tasks" msgstr "Feladatok" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Kiadva ezután: " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Kiadva ezelőtt: " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Értékelés <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Értékelés <= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "A könyv sikeresen küldésre lett jelölve a következő címre: %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Hiba történt a könyv küldésekor: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Először be kell állítani a kindle e-mail címet..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Regisztrálás" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Nem engedélyezett a megadott e-mail cím bejegyzése" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Jóváhagyó levél elküldve az email címedre." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Rossz felhasználó név vagy jelszó!" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s profilja" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "A profil frissítve." @@ -1340,7 +1349,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "Az e-könyv átalakítás nem sikerült: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1380,7 +1389,7 @@ msgid "Upload" msgstr "Feltöltés" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Letöltés" @@ -1547,39 +1556,38 @@ msgstr "Részletek" msgid "Current version" msgstr "Jelenlegi verzió" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Frissítés keresése" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Frissítés elkezdése" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Valóban újra akarod indítani a Calibre-Web-et?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "OK" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Valóban le akarod állítani a Calibre-Web-et?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Frissítés folyamatban, ne töltsd újra az oldalt" @@ -1592,39 +1600,39 @@ msgid "In Library" msgstr "Könyvtárban" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "csökkentsd" @@ -2467,12 +2475,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2577,7 +2585,7 @@ msgstr "Hiba" msgid "Upload done, processing, please wait..." msgstr "Feltöltés kész, feldolgozás alatt, kérlek várj..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Beállítások" @@ -2727,7 +2735,7 @@ msgstr "Calibre-Web e-könyv katalógus" msgid "epub Reader" msgstr "" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Szöveg újratördelése amikor az oldalsávok nyitva vannak" @@ -2957,30 +2965,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Polc törlése" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "A polc el fog tűnni mindenki számára és örökké!" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Nyilvános polc" diff --git a/cps/translations/it/LC_MESSAGES/messages.mo b/cps/translations/it/LC_MESSAGES/messages.mo index f7ef8e89..c0db83fd 100644 Binary files a/cps/translations/it/LC_MESSAGES/messages.mo and b/cps/translations/it/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index ae3ed927..a5c2b4b3 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n" "Last-Translator: ElQuimm \n" "Language: it\n" @@ -25,7 +25,7 @@ msgstr "non installato" msgid "installed" msgstr "installato" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statistiche" @@ -45,9 +45,9 @@ msgstr "Ricollegato con successo" msgid "Unknown command" msgstr "Comando sconosciuto" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Sconosciuto" @@ -74,7 +74,7 @@ msgstr "Modifica gli utenti" msgid "All" msgstr "Tutti" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Utente non trovato" @@ -91,7 +91,7 @@ msgstr "tutte le lingue presenti" msgid "Malformed request" msgstr "Richiesta non formulata correttamente" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "Il nome dell'utente Guest (ospite) non può essere modificato" @@ -99,7 +99,7 @@ msgstr "Il nome dell'utente Guest (ospite) non può essere modificato" msgid "Guest can't have this role" msgstr "L'utente Guest (ospite) non può avere questo ruolo" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Non rimarrebbe nessun utente amministratore, non posso rimuovere il ruolo di amministratore" @@ -143,7 +143,7 @@ msgstr "Colonna di lettura non valida" msgid "Invalid Restricted Column" msgstr "Colonna con restrizioni non valida" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "La configurazione di Calibre-Web è stata aggiornata" @@ -159,7 +159,7 @@ msgstr "Vuoi veramente eliminare questo dominio?" msgid "Do you really want to delete this user?" msgstr "Vuoi veramente eliminare questo utente?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Vuoi veramente eliminare questo scaffale?" @@ -204,273 +204,273 @@ msgstr "Etichetta non trovata" msgid "Invalid Action" msgstr "Azione non valida" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Nega" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Permetti" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json non è configurato per Web Application" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "La posizione del Logfile non è valida, per favore indica il percorso corretto" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "La posizione dell'Access Logfile non è valida, per favore indica il percorso corretto" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Per favore digita un Provider LDAP, porta, DN e User Object Identifier" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "Per favore digita nome di utente e password del servizio LDAP" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Per favore indica un account di servizio LDAP" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP Group Object Filter deve avere un \"%s\" Format Identifier" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP Group Object Filter contiene una parentesi senza la corrispettiva" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP User Object Filter deve avere un \"%s\" Format Identifier" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP User Object Filter contiene una parentesi senza la corrispettiva" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP Member User Filter deve avere un \"%s\" Format Identifier" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP Member User Filter contiene una parentesi senza la corrispettiva" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CACertificate, il certificato o la posizione della chiave non sono corretti, per favore indica il percorso corretto" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "I parametri del DB non sono scrivibili" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "La posizione del DB non è valida, per favore indica il percorso corretto" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Il DB non è scrivibile" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "La posizione del Keyfile non è valida, per favore indica il percorso corretto" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "La posizione del Certfile non è valida, per favore indica il percorso corretto" -#: cps/admin.py:1335 +#: cps/admin.py:1346 msgid "Database Settings updated" msgstr "Configurazione del Database aggiornata" -#: cps/admin.py:1343 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "Configurazione del Database" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Per favore compila tutti i campi!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "L'e-mail non proviene da un dominio valido" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Aggiungi un nuovo utente" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "L'utente '%(user)s' è stato creato" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "Trovato un account esistente con questo e-mail o nome di utente" -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "L'utente '%(nick)s' è stato eliminato" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "Non posso eliminare l'utente Guest (ospite)" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Non rimarrebbe nessun utente amministratore, non posso eliminare l'utente" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Modifica l'utente %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "L'utente '%(nick)s' è stato aggiornato" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Si è verificato un errore sconosciuto: per favore riprova." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Modifica le impostazioni del server e-mail" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "L'account Gmail è stato verificato con successo" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "L'e-mail di test è stato accodato con successo per essere spedito a %(email)s, per favore verifica tramite il pulsante 'Compito' il risultato" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Si è verificato un errore nell'invio dell'e-mail di test: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Per favore prima configura il tuo indirizzo e-mail..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Configurazione del server e-mail aggiornata" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "La password dell'utente %(user)s è stata resettata" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Configura dapprima le impostazioni del server SMTP..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visualizzatore del Logfile" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Richiedo il pacchetto di aggiornamento" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Scarico il pacchetto di aggiornamento" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Decomprimo il pacchetto di aggiornamento" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Sostituisco i file" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Le connessioni al database sono chiuse" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Arresto il server" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Aggiornamento completato, per favore premi ok e ricarica la pagina" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Aggiornamento non riuscito:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "Errore HTTP" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Errore di connessione" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Tempo scaduto nello stabilire la connessione" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Errore generale" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "Il file di aggiornamento non può essere salvato nella cartella temporanea" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "Durante l'aggiornamento non è stato possibile sostituire alcuni file" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "Fallita l'estrazione di almeno un utente LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Fallita la creazione di almeno un utente LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Errore: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Errore: nessun utente restituito in risposta dal server LDAP" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "Almeno un utente LDAP non è stato trovato nel database" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} utente importato con successo" @@ -482,108 +482,112 @@ msgstr "non configurato" msgid "Execution permissions missing" msgstr "Mancano i permessi di esecuzione" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "La colonna personale no.%(column)d non esiste nel database di Calibre" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Il formato del libro è stato eliminato con successo" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Il libro é stato eliminato con successo" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Errore durante l'apertura del libro selezionato. Il file non esiste o il file non è accessibile" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "modifica i metadati" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s non è un numero valido, proseguo" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s non è una lingua valida" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Non è consentito caricare file con l'estensione '%(ext)s' su questo server" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Il file da caricare deve avere un'estensione" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Impossibile creare la cartella %(path)s (autorizzazione negata)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Il salvataggio del file %(file)s non è riuscito." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Errore nel database: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Ho aggiunto il formato %(ext)s al libro %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "Gli identificatori non tengono conto delle lettere maiuscole o minuscole, sovrascrivo l'identificatore precedente" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "I metadati sono stati aggiornati con successo" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Errore nella modifica del libro. Per favore verifica i dettagli nel file di registro (logfile)" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Probabilmente il libro caricato esiste già nella libreria; considera di cambiare prima di sottoporlo nuovamente: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Il file %(filename)s non può essere salvato nella cartella temporanea" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Impossibile spostare il file della copertina %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Il file %(file)s è stato caricato" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Mancano o il formato sorgente o quello di destinazione, entrambi necessari alla conversione" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Libro accodato con successo per essere convertito in %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Si è verificato un errore durante la conversione del libro: %(res)s" @@ -596,174 +600,174 @@ msgstr "La configurazione di Google Drive non è stata completata correttamente. msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Callback domain non è stato verificato. Per favore intraprendi il necessario per verificare il dominio nella developer console di Google" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "Formato %(format)s non trovato per il libro: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s non trovato: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Invia a Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Questo e-mail è stato spedito tramite Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "E-mail di test da Calibre-Web" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "E-mail di test" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Inizia con Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "E-mail di registrazione dell'utente: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Converti %(orig)s in %(format)s e spedisci a Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Invia %(format)s a Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, python-format msgid "%(book)s send to Kindle" msgstr "%(book)s inviato a Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "L'eliminazione della cartella del libro %(id)s non è riuscita, il percorso ha sottocartelle: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "L'eliminazione del libro %(id)s non è riuscita: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Eliminazione del libro %(id)s unicamente dal database. Il percorso del libro nel database non è valido: %(path)s" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modifica del titolo da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "La modifica del file nella cartella da '%(src)s' a '%(dest)s' è terminata con l'errore: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "File %(file)s non trovato su Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Non ho trovato la cartella %(path)s del libro su Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "Ho trovato un account creato in precedenza con questo indirizzo e-mail." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Questo nome di utente è già utilizzato" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "L'e-mail non è scritto in un formato valido" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Errore nello scaricare la copertina" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Errore di formato della copertina" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Errore nel creare la cartella per la copertina" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Il file della copertina non è in un formato immagine valido o non può essere salvato" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Solamente i file nei formati jpg/jpeg/png/webp/bmp sono supportati per le copertine" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Solamente i file nei formati jpg/jpeg sono supportati per le copertine" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Non ho trovato il file binario di UnRar" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Errore nell'eseguire UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Attendi" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Non riuscito" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Avviato" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Terminato" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Stato sconosciuto" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Per favore accedi a calibe-web non da localhost per ottenere un api-endpoint valido per il lettore kobo" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Configurazione di Kobo" @@ -772,7 +776,7 @@ msgstr "Configurazione di Kobo" msgid "Register with %(provider)s" msgstr "Registra con %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "ora sei connesso come: '%(nickname)s'" @@ -838,7 +842,7 @@ msgid "{} Stars" msgstr "{} Stelle" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Accesso" @@ -1056,41 +1060,46 @@ msgstr "Modifica uno scaffale" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Lo scaffale %(title)s è stato creato" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Lo scaffale %(title)s è stato modificato" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "C'era un errore" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Esiste già uno scaffale pubblico denominato '%(title)s'." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Esiste già uno scaffale privato denominato '%(title)s'." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Il libro é stato eliminato con successo" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Modifica l'ordine dello scaffale: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Scaffale: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Errore durante l'apertura dello scaffale. Lo scaffale non esiste o non è accessibile" @@ -1171,14 +1180,14 @@ msgstr "Categoria: %(name)s" msgid "Language: %(name)s" msgstr "Lingua: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Ricerca avanzata" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Cerca" @@ -1198,102 +1207,102 @@ msgstr "Elenco dei formati" msgid "Tasks" msgstr "Compito" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Pubblicato dopo il " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Pubblicato prima del " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Valutazione <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Valutazione >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Stato di lettura = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "Errore di ricerca nelle colonne personalizzate. Per favore riavvia Calibre-Web" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Libro accodato con successo per essere spedito a %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Oops! Si è verificato un errore durante l'invio di questo libro: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Per favore aggiorna il tuo profilo con un indirizzo e-mail Kindle a cui inviare i libri." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Registra" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Il tuo e-mail non è autorizzato alla registrazione" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Un messaggio di conferma è stato inviato al tuo recapito e-mail." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Non posso attivare l'autenticazione LDAP" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Fallback login come: '%(nickname)s', il server LDAP non è raggiungibile o l'utente è sconosciuto" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Non posso accedere: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Nome utente o password errati" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Una nuova password è stata inviata al tuo recapito e-mail" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Per favore digita un nome di utente valido per resettare la password" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Ora sei connesso come '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Profilo di %(name)s" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profilo aggiornato" @@ -1330,7 +1339,7 @@ msgstr "Non ho trovato il file convertito o ci sono più di un file nella cartel msgid "Ebook-converter failed: %(error)s" msgstr "Errore nel convertitore: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Si è verificato un errore con Calibre: %(error)s" @@ -1370,7 +1379,7 @@ msgid "Upload" msgstr "Upload" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Download" @@ -1536,39 +1545,38 @@ msgstr "Dettagli" msgid "Current version" msgstr "Versione attuale" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Ricerca aggiornamenti" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Esegui l'aggiornamento" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Vuoi veramente riavviare Calibre-Web?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Ok" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Annulla" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Vuoi veramente arrestare Calibre-Web?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Aggiornamento, non ricaricare la pagina." @@ -1581,39 +1589,39 @@ msgid "In Library" msgstr "Nella libreria" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Ordina secondo la data dei libri, prima i più recenti" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Ordina secondo la data dei libri, prima i più vecchi" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Ordina i titoli in ordine alfabetico" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Ordina i titoli in ordine alfabetico inverso" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Ordina secondo la data di pubblicazione, prima i più recenti" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Ordina secondo la data di pubblicazione, prima i più vecchi" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "riduci" @@ -2452,12 +2460,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Ordina gli autori in ordine alfabetico" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Ordina gli autori in ordine alfabetico inverso" @@ -2562,7 +2570,7 @@ msgstr "Errore" msgid "Upload done, processing, please wait..." msgstr "Caricamento riuscito, sto elaborando, per favore aspetta..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Configurazione" @@ -2711,7 +2719,7 @@ msgstr "Catalogo Calibre-Web" msgid "epub Reader" msgstr "Lettore epub" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Adatta il testo quando le barre laterali sono aperte." @@ -2939,30 +2947,26 @@ msgstr "Da:" msgid "To:" msgstr "A:" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Cancella questo scaffale" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Modifica le caratteristiche dello scaffale" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Disponi i libri manualmente" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Disabilita la modifica della disposizione" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Abilita la modifica della disposizione" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Lo scaffale verrà eliminato per tutti gli utenti" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Condividi con tutti" diff --git a/cps/translations/ja/LC_MESSAGES/messages.mo b/cps/translations/ja/LC_MESSAGES/messages.mo index afb7b8da..92ccc439 100644 Binary files a/cps/translations/ja/LC_MESSAGES/messages.mo and b/cps/translations/ja/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/ja/LC_MESSAGES/messages.po b/cps/translations/ja/LC_MESSAGES/messages.po index c8bfd79e..5c2aa042 100644 --- a/cps/translations/ja/LC_MESSAGES/messages.po +++ b/cps/translations/ja/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2018-02-07 02:20-0500\n" "Last-Translator: white \n" "Language: ja\n" @@ -26,7 +26,7 @@ msgstr "インストールされていません" msgid "installed" msgstr "" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "統計" @@ -46,9 +46,9 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "不明" @@ -75,7 +75,7 @@ msgstr "" msgid "All" msgstr "" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -92,7 +92,7 @@ msgstr "" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -144,7 +144,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web の設定を更新しました" @@ -160,7 +160,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "" @@ -204,276 +204,276 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "メールサーバの設定を更新しました" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "機能設定" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "全ての項目を入力してください" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "このメールは有効なドメインからのものではありません" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "新規ユーザ追加" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "ユーザ '%(user)s' を作成しました" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "このメールアドレスかニックネームで登録されたアカウントが見つかりました" -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "ユーザ '%(nick)s' を削除しました" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "%(nick)s を編集" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "ユーザ '%(nick)s' を更新しました" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "不明なエラーが発生しました。あとで再試行してください。" -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "SMTP設定を変更" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "テストメールを %(res)s に送信中にエラーが発生しました" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "メールサーバの設定を更新しました" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "%(user)s 用のパスワードをリセット" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "初めにSMTPメールの設定をしてください" -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "更新データを要求中" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "更新データをダウンロード中" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "更新データを展開中" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "ファイルを置換中" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "データベースの接続を切断完了" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "サーバ停止中" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "アップデート完了、OKを押してページをリロードしてください" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "アップデート失敗:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTPエラー" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "接続エラー" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "接続を確立中にタイムアウトしました" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "エラー発生" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -485,108 +485,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "メタデータを編集" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s は有効な言語ではありません" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "ファイル拡張子 '%(ext)s' をこのサーバにアップロードすることは許可されていません" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "アップロードするファイルには拡張子が必要です" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "%(path)s の作成に失敗しました (Permission denied)。" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "%(file)s を保存できません。" -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "ファイル形式 %(ext)s が %(book)s に追加されました" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "メタデータを更新しました" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "本の編集でエラーが発生しました。詳細はログファイルを確認してください" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "変換元の形式または変換後の形式が指定されていません" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "本の %(book_format)s への変換がキューに追加されました" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "この本の変換中にエラーが発生しました: %(res)s" @@ -599,175 +603,175 @@ msgstr "Googleドライブの設定が完了していません。Googleドライ msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "コールバックドメインが認証されていません。Google Developer Consoleでドメインを認証してください" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "ID: %(book)d の本に %(format)s フォーマットはありません" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Googleドライブ: %(fn)s に %(format)s はありません" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s がありません: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Kindleに送信" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "このメールはCalibre-Web経由で送信されました。" -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web テストメール" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "テストメール" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Calibre-Webを始める" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "ユーザ: %(name)s 用の登録メール" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s を %(format)s に変換してからKindleに送信" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Kindleに %(format)s を送信" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Kindleに送信" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "要求されたファイルを読み込めませんでした。権限設定が正しいか確認してください。" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "エラー: %(error)s により、タイトルを %(src)s から %(dest)s に変更できませんでした。" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "エラー: %(error)s により、ファイルパスを %(src)s から %(dest)s に変更できませんでした。" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "ファイル %(file)s はGoogleドライブ上にありません" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "本のパス %(path)s はGoogleドライブ上にありません" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "このメールアドレスで登録されたアカウントがあります" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "待機中" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "失敗" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "開始" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "終了" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "不明" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "" @@ -776,7 +780,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "%(nickname)s としてログイン中" @@ -842,7 +846,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "ログイン" @@ -1061,41 +1065,46 @@ msgstr "本棚を編集する" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "%(title)s を作成しました" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "%(title)s を変更しました" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "エラーが発生しました" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "メタデータを更新しました" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "'%(name)s' 内の本の順番を変更する" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "本棚: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "本棚を開けません。この本棚は存在しないかアクセスできません" @@ -1176,14 +1185,14 @@ msgstr "カテゴリ: %(name)s" msgid "Language: %(name)s" msgstr "言語: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "詳細検索" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "検索" @@ -1203,102 +1212,102 @@ msgstr "" msgid "Tasks" msgstr "タスク" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "これ以降に出版 " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "これ以前に出版 " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "評価 <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "評価 >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "本の %(kindlemail)s への送信がキューに追加されました" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "%(res)s を送信中にエラーが発生しました" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "初めにKindleのメールアドレスを設定してください" -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "登録" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "このメールアドレスは登録が許可されていません" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "確認メールがこのメールアドレスに送信されました。" -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "ユーザ名またはパスワードが違います" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s のプロフィール" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "プロフィールを更新しました" @@ -1335,7 +1344,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "Ebook-converter が失敗しました: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1375,7 +1384,7 @@ msgid "Upload" msgstr "アップロード" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "ダウンロード" @@ -1542,39 +1551,38 @@ msgstr "詳細" msgid "Current version" msgstr "現在のバージョン" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "更新を実行" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "" @@ -1587,39 +1595,39 @@ msgid "In Library" msgstr "ライブラリ内" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "減らす" @@ -2461,12 +2469,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2571,7 +2579,7 @@ msgstr "エラー" msgid "Upload done, processing, please wait..." msgstr "アップロード完了。現在処理中ですのでお待ち下さい..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "設定" @@ -2721,7 +2729,7 @@ msgstr "" msgid "epub Reader" msgstr "" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "" @@ -2951,30 +2959,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "この本棚を削除" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "" diff --git a/cps/translations/km/LC_MESSAGES/messages.mo b/cps/translations/km/LC_MESSAGES/messages.mo index ffd09157..f941fa5d 100644 Binary files a/cps/translations/km/LC_MESSAGES/messages.mo and b/cps/translations/km/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/km/LC_MESSAGES/messages.po b/cps/translations/km/LC_MESSAGES/messages.po index e867d38c..c4a2e60d 100644 --- a/cps/translations/km/LC_MESSAGES/messages.po +++ b/cps/translations/km/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2018-08-27 17:06+0700\n" "Last-Translator: \n" "Language: km_KH\n" @@ -27,7 +27,7 @@ msgstr "មិនបានតម្លើង" msgid "installed" msgstr "" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "ស្ថិតិ" @@ -47,9 +47,9 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "មិនដឹង" @@ -77,7 +77,7 @@ msgstr "អ្នកប្រើប្រាស់រដ្ឋបាល" msgid "All" msgstr "" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -94,7 +94,7 @@ msgstr "បង្ហាញទាំងអស់" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -102,7 +102,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -146,7 +146,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "" @@ -162,7 +162,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "តើអ្នកពិតជាចង់លុបធ្នើនេះមែនទេ?" @@ -210,275 +210,275 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "ទំនាក់ទំនងទៅមូលដ្ឋានទិន្នន័យត្រូវបានផ្តាច់" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "ការកំណត់មុខងារ" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "សូមបំពេញចន្លោះទាំងអស់!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "បន្ថែមអ្នកប្រើប្រាស់ថ្មី" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "បានបង្កើតអ្នកប្រើប្រាស់ ‘%(user)s’" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "អ្នកប្រើប្រាស់ ‘%(nick)s’ ត្រូវបានលុប" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "កែប្រែអ្នកប្រើប្រាស់ %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "អ្នកប្រើប្រាស់ ‘%(nick)s’ ត្រូវបានកែប្រែ" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "ប្តូរការកំណត់ SMTP" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "សូមកំណត់អ៊ីមែល SMTP ជាមុនសិន" -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "កំពុងស្នើសុំឯកសារបច្ចុប្បន្នភាព" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "កំពុងទាញយកឯកសារបច្ចុប្បន្នភាព" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "កំពុងពន្លាឯកសារបច្ចុប្បន្នភាព" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "ទំនាក់ទំនងទៅមូលដ្ឋានទិន្នន័យត្រូវបានផ្តាច់" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "ការធ្វើបច្ចុប្បន្នភាពបានបញ្ចប់ សូមចុច okay រួចបើកទំព័រជាថ្មី" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -490,108 +490,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "កែប្រែទិន្នន័យមេតា" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "ឯកសារប្រភេទ '%(ext)s' មិនត្រូវបានអនុញ្ញាតឲអាប់ឡូដទៅម៉ាស៊ីន server នេះទេ" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "ឯកសារដែលត្រូវអាប់ឡូដត្រូវមានកន្ទុយឯកសារ" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "មិនអាចបង្កើតទីតាំង %(path)s (ពុំមានសិទ្ធិ)។" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "មិនអាចរក្សាទុកឯកសារ %(file)s ។" -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "ឯកសារទម្រង់ %(ext)s ត្រូវបានបន្ថែមទៅ %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "មានបញ្ហាពេលកែប្រែសៀវភៅ សូមពិនិត្យមើល logfile សម្រាប់ព័ត៌មានបន្ថែម" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "" @@ -604,174 +608,174 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Callback domain មិនទាន់បានផ្ទៀងផ្ទាត់ឲប្រើទេ សូមធ្វើតាមជំហានដើម្បីផ្ទៀងផ្ទាត់ domain នៅក្នុង Google Developer Console" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "ផ្ញើទៅ Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "ផ្ញើទៅ Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "ឯកសារដែលបានស្នើសុំមិនអាចបើកបានទេ។ អាចនឹងខុសសិទ្ធិប្រើប្រាស់ទេដឹង?" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, 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:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "ឯកសារ %(file)s រកមិនឃើញក្នុង Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "ទីតាំងសៀវភៅ %(path)s រកមិនឃើញក្នុង Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "កំពុងរង់ចាំ" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "បានបរាជ័យ" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "បានចាប់ផ្តើម" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "បានបញ្ចប់" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "" @@ -780,7 +784,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "ឥឡូវអ្នកបានចូលដោយមានឈ្មោះថា៖ ‘%(nickname)s’" @@ -846,7 +850,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "ចូលប្រើប្រាស់" @@ -1065,41 +1069,45 @@ msgstr "កែប្រែធ្នើ" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "ធ្នើឈ្មោះ %(title)s ត្រូវបានបង្កើត" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "ធ្នើឈ្មោះ %(title)s ត្រូវបានប្តូរ" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "មានបញ្ហា" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +msgid "Shelf successfully deleted" +msgstr "" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "ប្តូរលំដាប់ធ្នើ៖ ‘%(name)s’" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "ធ្នើ៖ ‘%(name)s’" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "មានបញ្ហាពេលបើកធ្នើ។ ពុំមានធ្នើ ឬមិនអាចបើកបាន" @@ -1180,14 +1188,14 @@ msgstr "ប្រភេទ៖ %(name)s" msgid "Language: %(name)s" msgstr "ភាសា៖ %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "ស្វែងរកកម្រិតខ្ពស់" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "ស្វែងរក" @@ -1207,102 +1215,102 @@ msgstr "" msgid "Tasks" msgstr "កិច្ចការនានា" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "បានបោះពុម្ភក្រោយ " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "បានបោះពុម្ភមុន " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "ការវាយតម្លៃ <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "ការវាយតម្លៃ >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "សៀវភៅបានចូលជួរសម្រាប់ផ្ញើទៅ %(kindlemail)s ដោយជោគជ័យ" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "មានបញ្ហានៅពេលផ្ញើសៀវភៅនេះ៖ %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "ចុះឈ្មោះ" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "ខុសឈ្មោះអ្នកប្រើប្រាស់ ឬលេខសម្ងាត់" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "ព័ត៌មានសង្ខេបរបស់ %(name)s" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "ព័ត៌មានសង្ខេបបានកែប្រែ" @@ -1339,7 +1347,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "Ebook-converter បានបរាជ័យ៖ %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1379,7 +1387,7 @@ msgid "Upload" msgstr "អាប់ឡូដ" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "ទាញយក" @@ -1546,39 +1554,38 @@ msgstr "" msgid "Current version" msgstr "" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "រកមើលបច្ចុប្បន្នភាព" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "ធ្វើបច្ចុប្បន្នភាព" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "បាទ/ចាស" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "កំពុងធ្វើបច្ចុប្បន្នភាព សូមកុំបើកទំព័រជាថ្មី" @@ -1591,39 +1598,39 @@ msgid "In Library" msgstr "នៅក្នុងបណ្ណាល័យ" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "" @@ -2465,12 +2472,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2575,7 +2582,7 @@ msgstr "" msgid "Upload done, processing, please wait..." msgstr "" -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "ការកំណត់" @@ -2725,7 +2732,7 @@ msgstr "" msgid "epub Reader" msgstr "" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "សេរេអត្ថបទនៅពេលបើកផ្ទាំងចំហៀង។" @@ -2955,30 +2962,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "លុបធ្នើនេះ" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "ធ្នើនេះនឹងបាត់បង់ជាអចិន្ត្រៃយ៍សម្រាប់គ្រប់គ្នា!" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "តើធ្នើនេះគួរជាសាធារណៈទេ?" diff --git a/cps/translations/ko/LC_MESSAGES/messages.mo b/cps/translations/ko/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..772e946d Binary files /dev/null and b/cps/translations/ko/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/ko/LC_MESSAGES/messages.po b/cps/translations/ko/LC_MESSAGES/messages.po new file mode 100644 index 00000000..f8606245 --- /dev/null +++ b/cps/translations/ko/LC_MESSAGES/messages.po @@ -0,0 +1,3174 @@ +# Korean translation for Calibre-web +# Copyright (C) 2022 EPUBGUIDE.NET +# This file is distributed under the same license as the Calibre-web project +# First korean translation by 내맘대로의 EPUBGUIDE.NET +msgid "" +msgstr "" +"Project-Id-Version: Calibre-web\n" +"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" +"PO-Revision-Date: 2022-01-10 11:30+0900\n" +"Last-Translator: 내맘대로의 EPUBGUIDE.NET \n" +"Language: ko\n" +"Language-Team: 내맘대로의 epubguide.net \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.0\n" + +#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31 +msgid "not installed" +msgstr "설치되지 않음" + +#: cps/about.py:47 cps/about.py:63 +msgid "installed" +msgstr "설치됨" + +#: cps/about.py:145 +msgid "Statistics" +msgstr "통계" + +#: cps/admin.py:144 +msgid "Server restarted, please reload page" +msgstr "서버 다시 시작으로 새로고침 필요" + +#: cps/admin.py:146 +msgid "Performing shutdown of server, please close window" +msgstr "서버를 종료하는 중, 창을 닫아야 함" + +#: cps/admin.py:154 +msgid "Reconnect successful" +msgstr "재연결 성공" + +#: cps/admin.py:157 +msgid "Unknown command" +msgstr "알 수 없는 명령" + +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 +#: cps/uploader.py:103 +msgid "Unknown" +msgstr "알 수 없음" + +#: cps/admin.py:188 +msgid "Admin page" +msgstr "관리자 페이지" + +#: cps/admin.py:207 +msgid "Basic Configuration" +msgstr "기본 설정" + +#: cps/admin.py:244 +msgid "UI Configuration" +msgstr "UI 설정" + +#: cps/admin.py:277 cps/templates/admin.html:50 +msgid "Edit Users" +msgstr "사용자 관리" + +#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275 +#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9 +#: cps/templates/list.html:13 +msgid "All" +msgstr "모두" + +#: cps/admin.py:343 cps/admin.py:1615 +msgid "User not found" +msgstr "사용자를 찾을 수 없음" + +#: cps/admin.py:357 +msgid "{} users deleted successfully" +msgstr "{} 사용자를 성공적으로 삭제함" + +#: cps/admin.py:379 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:400 cps/admin.py:406 +msgid "Malformed request" +msgstr "잘못된 요청" + +#: cps/admin.py:418 cps/admin.py:1493 +msgid "Guest Name can't be changed" +msgstr "Guest 이름은 수정할 수 없음" + +#: cps/admin.py:430 +msgid "Guest can't have this role" +msgstr "Guest는 이 권한을 사용할 수 없음" + +#: cps/admin.py:442 cps/admin.py:1451 +msgid "No admin user remaining, can't remove admin role" +msgstr "관리자 계정이 하나 뿐일 때는 관리자를 삭제할 수 없음" + +#: cps/admin.py:446 cps/admin.py:460 +msgid "Value has to be true or false" +msgstr "값으로 rue 또는 false만 설정 가능" + +#: cps/admin.py:448 +msgid "Invalid role" +msgstr "잘못된 권한" + +#: cps/admin.py:452 +msgid "Guest can't have this view" +msgstr "Guest는 이 view를 사용할 수 없음" + +#: cps/admin.py:462 +msgid "Invalid view" +msgstr "잘못된 view" + +#: cps/admin.py:465 +msgid "Guest's Locale is determined automatically and can't be set" +msgstr "Guest의 로케일은 자동으로 결정되며 설정할 수 없음" + +#: cps/admin.py:469 +msgid "No Valid Locale Given" +msgstr "유효한 로케일이 아님" + +#: cps/admin.py:480 +msgid "No Valid Book Language Given" +msgstr "제공된 책의 언어가 유효하지 않음" + +#: cps/admin.py:482 +msgid "Parameter not found" +msgstr "매개변수를 찾을 수 없음" + +#: cps/admin.py:533 +msgid "Invalid Read Column" +msgstr "잘못된 읽기 열" + +#: cps/admin.py:539 +msgid "Invalid Restricted Column" +msgstr "잘못된 제한된 열" + +#: cps/admin.py:560 cps/admin.py:1323 +msgid "Calibre-Web configuration updated" +msgstr "Calibre-Web 설정이 업데이트 됨" + +#: cps/admin.py:572 +msgid "Do you really want to delete the Kobo Token?" +msgstr "Kobo Token을 삭제하시겠습니까?" + +#: cps/admin.py:574 +msgid "Do you really want to delete this domain?" +msgstr "이 도메인을 삭제하시겠습니까?" + +#: cps/admin.py:576 +msgid "Do you really want to delete this user?" +msgstr "이 사용자를 삭제하시겠습니까?" + +#: cps/admin.py:578 +msgid "Are you sure you want to delete this shelf?" +msgstr "이 서재를 삭제하시겠습니까?" + +#: cps/admin.py:580 +msgid "Are you sure you want to change locales of selected user(s)?" +msgstr "선택한 사용자의 언어를 변경하시겠습니까?" + +#: cps/admin.py:582 +msgid "Are you sure you want to change visible book languages for selected user(s)?" +msgstr "선택한 사용자에 대해 표시되는 책 언어를 변경하시겠습니까?" + +#: cps/admin.py:584 +msgid "Are you sure you want to change the selected role for the selected user(s)?" +msgstr "선택한 사용자에 대해 선택한 권한을 변경하시겠습니까?" + +#: cps/admin.py:586 +msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" +msgstr "선택한 사용자에 대해 선택한 제한을 변경하시겠습니까?" + +#: cps/admin.py:588 +msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" +msgstr "선택한 사용자에 대해 선택한 가시성 제한을 변경하시겠습니까?" + +#: cps/admin.py:590 +msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" +msgstr "선택한 사용자의 실행기 동기화 동작을 변경하시겠습니까?" + +#: cps/admin.py:592 +msgid "Are you sure you want to change Calibre library location?" +msgstr "캘리버 서재의 언어를 변경하시겠습니까?" + +#: cps/admin.py:594 +msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" +msgstr "Kobo Reader와 전체 동기화를 강제 실행하기 위해 Calibre-Web의 동기화 데이터베이스를 삭제하시겠습니까?" + +#: cps/admin.py:743 +msgid "Tag not found" +msgstr "태그를 찾을 수 없음" + +#: cps/admin.py:755 +msgid "Invalid Action" +msgstr "잘못된 액션" + +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 +#: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 +#: cps/templates/user_table.html:58 +msgid "Deny" +msgstr "거부됨" + +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 +#: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 +#: cps/templates/user_table.html:61 +msgid "Allow" +msgstr "허용됨" + +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "{} 동기화 항목이 삭제됨" + +#: cps/admin.py:1036 +msgid "client_secrets.json Is Not Configured For Web Application" +msgstr "client_secrets.json이 Web 응용프로그램에 대해 설정되지 않음" + +#: cps/admin.py:1081 +msgid "Logfile Location is not Valid, Please Enter Correct Path" +msgstr "로그 파일 위치가 오류. 올바른 경로 입력 필요" + +#: cps/admin.py:1087 +msgid "Access Logfile Location is not Valid, Please Enter Correct Path" +msgstr "액세스 로그 파일 위치가 올바르지 않음. 올바른 경로 입력 필요" + +#: cps/admin.py:1117 +msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" +msgstr "LDAP 공급자, 포트, DN 및 사용자 개체 식별자를 입력" + +#: cps/admin.py:1123 +msgid "Please Enter a LDAP Service Account and Password" +msgstr "LDAP 서비스 계정 및 비밀번호를 입력하십시오" + +#: cps/admin.py:1126 +msgid "Please Enter a LDAP Service Account" +msgstr "LDAP 서비스 계정을 입력하십시오" + +#: cps/admin.py:1131 +#, python-format +msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" +msgstr "LDAP 그룹 개체 필터에는 하나의 \"%s\" 형식 식별자가 필요함" + +#: cps/admin.py:1133 +msgid "LDAP Group Object Filter Has Unmatched Parenthesis" +msgstr "LDAP 그룹 개체 필터에 일치하지 않는 괄호가 있음" + +#: cps/admin.py:1137 +#, python-format +msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" +msgstr "LDAP 사용자 개체 필터에는 하나의 \"%s\" 형식 식별자 필요" + +#: cps/admin.py:1139 +msgid "LDAP User Object Filter Has Unmatched Parenthesis" +msgstr "LDAP 사용자 개체 필터에 일치하지 않는 괄호가 있음" + +#: cps/admin.py:1146 +#, python-format +msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" +msgstr "LDAP 구성원 사용자 필터에는 하나의 \"%s\" 형식 식별자 필요" + +#: cps/admin.py:1148 +msgid "LDAP Member User Filter Has Unmatched Parenthesis" +msgstr "LDAP 구성원 사용자 필터에 일치하지 않는 괄호가 있음" + +#: cps/admin.py:1155 +msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" +msgstr "유요하지 않은 LDAP CACertificate, 인증서 또는 키 위치. 올바른 경로를 입력 필요" + +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 +msgid "Settings DB is not Writeable" +msgstr "설정 DB에 쓰기 권한이 없음" + +#: cps/admin.py:1208 +msgid "DB Location is not Valid, Please Enter Correct Path" +msgstr "올바르지 않은 DB 위치. 올바른 경로 입력 필요" + +#: cps/admin.py:1223 +msgid "DB is not Writeable" +msgstr "쓰기 권한이 없는 DB" + +#: cps/admin.py:1235 +msgid "Keyfile Location is not Valid, Please Enter Correct Path" +msgstr "올바르지 않은 키 파일 위치. 올바른 경로 입력 필요" + +#: cps/admin.py:1239 +msgid "Certfile Location is not Valid, Please Enter Correct Path" +msgstr "올바르지 않은 인증서 파일 위치. 올바른 경로 입력 필요" + +#: cps/admin.py:1346 +msgid "Database Settings updated" +msgstr "데이터베이스 설정이 업데이트 되었습니다" + +#: cps/admin.py:1354 +msgid "Database Configuration" +msgstr "데이터베이스 구성" + +#: cps/admin.py:1370 cps/web.py:1479 +msgid "Please fill out all fields!" +msgstr "모든 필드를 채워주십시오!" + +#: cps/admin.py:1378 +msgid "E-mail is not from valid domain" +msgstr "유효한 도메인에서 온 이메일이 아니" + +#: cps/admin.py:1384 cps/admin.py:1543 +msgid "Add new user" +msgstr "새 사용자 추가" + +#: cps/admin.py:1395 +#, python-format +msgid "User '%(user)s' created" +msgstr "사용자 '%(user)s'이(가) 생성됨" + +#: cps/admin.py:1401 +msgid "Found an existing account for this e-mail address or name." +msgstr "동일한 이메일 주소 또는 이름이 이미 등록되어 있습니다." + +#: cps/admin.py:1430 +#, python-format +msgid "User '%(nick)s' deleted" +msgstr "사용자 '%(nick)s'이(가) 삭제됨" + +#: cps/admin.py:1432 cps/admin.py:1433 +msgid "Can't delete Guest User" +msgstr "게스트 사용자는 삭제할 수 없습니다" + +#: cps/admin.py:1436 +msgid "No admin user remaining, can't delete user" +msgstr "관리자 계정이 하나 뿐일 때는 관리자 권한을 삭제할 수 없음" + +#: cps/admin.py:1509 cps/admin.py:1634 +#, python-format +msgid "Edit User %(nick)s" +msgstr "사용자 %(nick)s 편집" + +#: cps/admin.py:1513 +#, python-format +msgid "User '%(nick)s' updated" +msgstr "사용자 '%(nick)s'가 업데이트 됨" + +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 +msgid "An unknown error occurred. Please try again later." +msgstr "알 수없는 오류가 발생했습니다. 나중에 다시 시도 해주십시오." + +#: cps/admin.py:1552 cps/templates/admin.html:98 +msgid "Edit E-mail Server Settings" +msgstr "이메일 서버 설정 편집" + +#: cps/admin.py:1571 +msgid "Gmail Account Verification Successful" +msgstr "Gmail 계정 인증 성공" + +#: cps/admin.py:1597 +#, python-format +msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" +msgstr "%(email)s에 테스트를 위한 이메일을 보냄. 결과 확인 필요" + +#: cps/admin.py:1600 +#, python-format +msgid "There was an error sending the Test e-mail: %(res)s" +msgstr "테스트 이메일을 보내는 동안 오류가 발생했습니다: %(res)s" + +#: cps/admin.py:1602 +msgid "Please configure your e-mail address first..." +msgstr "먼저 이메일 주소를 구성하십시오..." + +#: cps/admin.py:1604 +msgid "E-mail server settings updated" +msgstr "이메일 서버 설정 업데이트됨" + +#: cps/admin.py:1646 +#, python-format +msgid "Password for user %(user)s reset" +msgstr "사용자 %(user)s의 비밀번호 재설정" + +#: cps/admin.py:1652 cps/web.py:1444 +msgid "Please configure the SMTP mail settings first..." +msgstr "먼저 SMTP 메일 설정을 구성하십시오..." + +#: cps/admin.py:1663 +msgid "Logfile viewer" +msgstr "로그 파일 뷰어" + +#: cps/admin.py:1729 +msgid "Requesting update package" +msgstr "업데이트 패키지 요청" + +#: cps/admin.py:1730 +msgid "Downloading update package" +msgstr "업데이트 패키지 다운로드" + +#: cps/admin.py:1731 +msgid "Unzipping update package" +msgstr "업데이트 패키지 압축 풀기" + +#: cps/admin.py:1732 +msgid "Replacing files" +msgstr "파일 교체" + +#: cps/admin.py:1733 +msgid "Database connections are closed" +msgstr "데이터베이스 연결이 닫힙니다" + +#: cps/admin.py:1734 +msgid "Stopping server" +msgstr "서버 중지" + +#: cps/admin.py:1735 +msgid "Update finished, please press okay and reload page" +msgstr "업데이트가 완료되었습니다. 확인을 누르고 페이지를 새로고침하세요" + +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 +msgid "Update failed:" +msgstr "업데이트 실패:" + +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +msgid "HTTP Error" +msgstr "HTTP 오류" + +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 +msgid "Connection error" +msgstr "연결 오류" + +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 +msgid "Timeout while establishing connection" +msgstr "연결 설정 중 시간 초과" + +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 +msgid "General error" +msgstr "일반 오류" + +#: cps/admin.py:1740 +msgid "Update file could not be saved in temp dir" +msgstr "임시 디렉토리에 업데이트 파일을 저장할 수 없습니다" + +#: cps/admin.py:1741 +msgid "Files could not be replaced during update" +msgstr "업데이트하는 동안 파일을 교체할 수 없습니다" + +#: cps/admin.py:1765 +msgid "Failed to extract at least One LDAP User" +msgstr "하나 이상의 LDAP 사용자를 추출하지 못했습니다" + +#: cps/admin.py:1810 +msgid "Failed to Create at Least One LDAP User" +msgstr "하나 이상의 LDAP 사용자를 생성하지 못했습니다" + +#: cps/admin.py:1823 +#, python-format +msgid "Error: %(ldaperror)s" +msgstr "오류: %(ldaperror)s" + +#: cps/admin.py:1827 +msgid "Error: No user returned in response of LDAP server" +msgstr "오류: LDAP 서버의 응답으로 사용자가 반환되지 않았습니다" + +#: cps/admin.py:1860 +msgid "At Least One LDAP User Not Found in Database" +msgstr "데이터베이스에서 하나 이상의 LDAP 사용자를 찾을 수 없습니다" + +#: cps/admin.py:1862 +msgid "{} User Successfully Imported" +msgstr "{} 사용자 가져오기 성공" + +#: cps/converter.py:30 +msgid "not configured" +msgstr "구성되지 않음" + +#: cps/converter.py:32 +msgid "Execution permissions missing" +msgstr "실행 권한 누락" + +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 +#, python-format +msgid "Custom Column No.%(column)d is not existing in calibre database" +msgstr "사용자 정의 열 번호 %(column)d이(가) calibre 데이터베이스에 없습니다" + +#: cps/editbooks.py:300 cps/editbooks.py:302 +msgid "Book Format Successfully Deleted" +msgstr "책 형식이 성공적으로 삭제되었습니다" + +#: cps/editbooks.py:309 cps/editbooks.py:311 +msgid "Book Successfully Deleted" +msgstr "책이 성공적으로 삭제되었습니다" + +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 +msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" +msgstr "선택한 책 제목을 사용할 수 없습니다. 파일이 존재하지 않거나 액세스할 수 없습니다" + +#: cps/editbooks.py:410 +msgid "edit metadata" +msgstr "메타데이터 편집" + +#: cps/editbooks.py:458 +#, python-format +msgid "%(seriesindex)s is not a valid number, skipping" +msgstr "%(seriesindex)s은(는) 유효한 숫자가 아닙니다. 건너뜁니다" + +#: cps/editbooks.py:494 cps/editbooks.py:958 +#, python-format +msgid "'%(langname)s' is not a valid language" +msgstr "'%(langname)s'은(는) 유효한 언어가 아닙니다" + +#: cps/editbooks.py:634 cps/editbooks.py:985 +#, python-format +msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" +msgstr "파일 확장자 '%(ext)s'은(는) 이 서버에 업로드할 수 없습니다" + +#: cps/editbooks.py:638 cps/editbooks.py:989 +msgid "File to be uploaded must have an extension" +msgstr "업로드할 파일에는 확장자가 있어야 합니다" + +#: cps/editbooks.py:650 +#, python-format +msgid "Failed to create path %(path)s (Permission denied)." +msgstr "%(path)s 경로를 생성하지 못했습니다(권한이 없음)." + +#: cps/editbooks.py:655 +#, python-format +msgid "Failed to store file %(file)s." +msgstr "%(file)s 파일을 저장하지 못했습니다." + +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 +#, python-format +msgid "Database error: %(error)s." +msgstr "데이터베이스 오류: %(error)s." + +#: cps/editbooks.py:678 +#, python-format +msgid "File format %(ext)s added to %(book)s" +msgstr "파일 형식 %(ext)s이(가) %(book)s에 추가되었습니다" + +#: cps/editbooks.py:814 +msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" +msgstr "식별자는 대소문자를 구분하지 않으며 이전 식별자를 덮어씁니다" + +#: cps/editbooks.py:848 +msgid "Metadata successfully updated" +msgstr "메타데이터가 성공적으로 업데이트되었습니다" + +#: cps/editbooks.py:861 +msgid "Error editing book, please check logfile for details" +msgstr "책을 수정하는 동안 오류가 발생했습니다. 자세한 내용은 로그 파일을 확인하세요" + +#: cps/editbooks.py:899 +msgid "Uploaded book probably exists in the library, consider to change before upload new: " +msgstr "업로드한 책이 라이브러리에 있을 수 있음. 새로 업로드하기 전에 확인 필요: " + +#: cps/editbooks.py:997 +#, python-format +msgid "File %(filename)s could not saved to temp dir" +msgstr "파일 %(filename)s을(를) 임시 디렉토리에 저장할 수 없습니다" + +#: cps/editbooks.py:1016 +#, python-format +msgid "Failed to Move Cover File %(file)s: %(error)s" +msgstr "표지 파일%(file)s를 이동하지 못했습니다.:%(error)s" + +#: cps/editbooks.py:1063 +#, python-format +msgid "File %(file)s uploaded" +msgstr "파일 %(file)s 업로드됨" + +#: cps/editbooks.py:1088 +msgid "Source or destination format for conversion missing" +msgstr "변환을 위한 소스 또는 대상 형식이 누락되었습니다" + +#: cps/editbooks.py:1096 +#, python-format +msgid "Book successfully queued for converting to %(book_format)s" +msgstr "책이 %(book_format)s(으)로 변환하기 위해 대기 중입니다" + +#: cps/editbooks.py:1100 +#, python-format +msgid "There was an error converting this book: %(res)s" +msgstr "이 책을 변환하는 동안 오류가 발생했습니다: %(res)s" + +#: cps/gdrive.py:58 +msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again" +msgstr "Google 드라이브 설정이 완료되지 않았습니다. Google 드라이브를 비활성화했다가 다시 활성화해 보세요" + +#: cps/gdrive.py:95 +msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" +msgstr "콜백 도메인이 확인되지 않았습니다. 단계에 따라 Google 개발자 콘솔에서 도메인을 확인하세요" + +#: cps/helper.py:77 +#, python-format +msgid "%(format)s format not found for book id: %(book)d" +msgstr "책 ID에 대한 %(format)s 형식을 찾을 수 없음: %(book)d" + +#: cps/helper.py:83 cps/tasks/convert.py:73 +#, python-format +msgid "%(format)s not found on Google Drive: %(fn)s" +msgstr "%(format)s을(를) Google 드라이브에서 찾을 수 없음: %(fn)s" + +#: cps/helper.py:88 +#, python-format +msgid "%(format)s not found: %(fn)s" +msgstr "%(format)s을(를) 찾을 수 없음: %(fn)s" + +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 +#: cps/templates/detail.html:45 +msgid "Send to Kindle" +msgstr "킨들로 보내기" + +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 +msgid "This e-mail has been sent via Calibre-Web." +msgstr "이 이메일은 Calibre Web을 통해 전송되었습니다." + +#: cps/helper.py:109 +msgid "Calibre-Web test e-mail" +msgstr "Calibre-Web 테스트 이메일" + +#: cps/helper.py:110 +msgid "Test e-mail" +msgstr "테스트 이메일" + +#: cps/helper.py:127 +msgid "Get Started with Calibre-Web" +msgstr "Calibre-Web 시작하기" + +#: cps/helper.py:132 +#, python-format +msgid "Registration e-mail for user: %(name)s" +msgstr "사용자 등록 이메일: %(name)s" + +#: cps/helper.py:143 cps/helper.py:149 +#, python-format +msgid "Convert %(orig)s to %(format)s and send to Kindle" +msgstr "%(orig)s를 %(format)s로 변환하고 킨들로 보내기" + +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 +#, python-format +msgid "Send %(format)s to Kindle" +msgstr "킨들에 %(format)s 보내기" + +#: cps/helper.py:216 cps/tasks/convert.py:90 +#, python-format +msgid "%(book)s send to Kindle" +msgstr "%(book)s을 킨들로 보내기" + +#: cps/helper.py:221 +msgid "The requested file could not be read. Maybe wrong permissions?" +msgstr "요청한 파일을 읽을 수 없습니다. 올바른 권한인가요?" + +#: cps/helper.py:313 +#, python-format +msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" +msgstr "책 %(id)s에 대한 책 폴더를 삭제하지 못했습니다. 경로에 하위 폴더가 있습니다: %(path)s" + +#: cps/helper.py:319 +#, python-format +msgid "Deleting book %(id)s failed: %(message)s" +msgstr "%(id)s 도서 삭제 실패: %(message)s" + +#: cps/helper.py:330 +#, 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:385 +#, 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:400 +#, python-format +msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "'%(src)s' 경로의 파일 이름을 '%(dest)s'(으)로 변경하지 못했습니다. 오류: %(error)s" + +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 +#, python-format +msgid "File %(file)s not found on Google Drive" +msgstr "Google 드라이브에서 %(file)s 파일을 찾을 수 없습니다" + +#: cps/helper.py:464 +#, python-format +msgid "Book path %(path)s not found on Google Drive" +msgstr "Google 드라이브에서 책 경로 %(path)s을(를) 찾을 수 없습니다" + +#: cps/helper.py:504 cps/web.py:1659 +msgid "Found an existing account for this e-mail address" +msgstr "등록되어 있는 이메일 주소입니다" + +#: cps/helper.py:512 +msgid "This username is already taken" +msgstr "등록되어 있는 username입니다" + +#: cps/helper.py:522 +msgid "Invalid e-mail address format" +msgstr "이메일 주소 형식이 잘못되었습니다" + +#: cps/helper.py:595 +msgid "Error Downloading Cover" +msgstr "표지 다운로드 중 오류 발생" + +#: cps/helper.py:598 +msgid "Cover Format Error" +msgstr "표지 형식 오류" + +#: cps/helper.py:608 +msgid "Failed to create path for cover" +msgstr "표지 경로 생성 실패" + +#: cps/helper.py:624 +msgid "Cover-file is not a valid image file, or could not be stored" +msgstr "표지 파일이 유효한 이미지 파일이 아니거나 저장할 수 없습니다" + +#: cps/helper.py:635 +msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" +msgstr "표지는 jpg/jpeg/png/webp/bmp 파일만 지원됩니다" + +#: cps/helper.py:648 +msgid "Invalid cover file content" +msgstr "잘못된 표지 파일 콘텐츠" + +#: cps/helper.py:652 +msgid "Only jpg/jpeg files are supported as coverfile" +msgstr "표지 파일로 jpg/jpeg 파일만 지원됩니다" + +#: cps/helper.py:704 +msgid "Unrar binary file not found" +msgstr "Unrar 바이너리 파일을 찾을 수 없습니다" + +#: cps/helper.py:715 +msgid "Error excecuting UnRar" +msgstr "UnRar 실행 오류" + +#: cps/helper.py:763 +msgid "Waiting" +msgstr "대기중" + +#: cps/helper.py:765 +msgid "Failed" +msgstr "실패" + +#: cps/helper.py:767 +msgid "Started" +msgstr "시작됨" + +#: cps/helper.py:769 +msgid "Finished" +msgstr "종료" + +#: cps/helper.py:771 +msgid "Unknown Status" +msgstr "알 수 없는 상태" + +#: cps/kobo_auth.py:127 +msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" +msgstr "코보(kobo) 장치에 대한 유효한 api_endpoint를 얻으려면 로컬 호스트가 아닌 곳에서 calibre-web에 액세스하십시오" + +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 +msgid "Kobo Setup" +msgstr "Kobo 설정" + +#: cps/oauth_bb.py:77 +#, python-format +msgid "Register with %(provider)s" +msgstr "%(provider)s에 등록" + +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 +#, python-format +msgid "you are now logged in as: '%(nickname)s'" +msgstr "다음 사용자로 로그인했습니다: '%(nickname)s'" + +#: cps/oauth_bb.py:148 +#, python-format +msgid "Link to %(oauth)s Succeeded" +msgstr "%(oauth)s에 성공적으로 연결됨" + +#: cps/oauth_bb.py:155 +msgid "Login failed, No User Linked With OAuth Account" +msgstr "로그인 실패, OAuth 계정과 연결된 사용자 없음" + +#: cps/oauth_bb.py:197 +#, python-format +msgid "Unlink to %(oauth)s Succeeded" +msgstr "%(oauth)s에 연결 해제 성공" + +#: cps/oauth_bb.py:202 +#, python-format +msgid "Unlink to %(oauth)s Failed" +msgstr "%(oauth)s에 연결 해제 실패" + +#: cps/oauth_bb.py:205 +#, python-format +msgid "Not Linked to %(oauth)s" +msgstr "%(oauth)s에 연결되지 않음" + +#: cps/oauth_bb.py:261 +msgid "Failed to log in with GitHub." +msgstr "GitHub에 로그인하지 못했습니다." + +#: cps/oauth_bb.py:267 +msgid "Failed to fetch user info from GitHub." +msgstr "GitHub에서 사용자 정보를 가져오지 못했습니다." + +#: cps/oauth_bb.py:279 +msgid "Failed to log in with Google." +msgstr "구글 로그인에 실패했습니다." + +#: cps/oauth_bb.py:285 +msgid "Failed to fetch user info from Google." +msgstr "Google에서 사용자 정보를 가져오지 못했습니다." + +#: cps/oauth_bb.py:332 +msgid "GitHub Oauth error, please retry later." +msgstr "GitHub Oauth 오류입니다. 나중에 다시 시도하세요." + +#: cps/oauth_bb.py:335 +msgid "GitHub Oauth error: {}" +msgstr "GitHub 인증 오류: {}" + +#: cps/oauth_bb.py:356 +msgid "Google Oauth error, please retry later." +msgstr "Google 인증 오류입니다. 나중에 다시 시도하세요." + +#: cps/oauth_bb.py:359 +msgid "Google Oauth error: {}" +msgstr "Google 인증 오류: {}" + +#: cps/opds.py:384 +msgid "{} Stars" +msgstr "{} Stars" + +#: cps/remotelogin.py:65 cps/templates/layout.html:84 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 +msgid "Login" +msgstr "로그인" + +#: cps/remotelogin.py:77 cps/remotelogin.py:111 +msgid "Token not found" +msgstr "토큰을 찾을 수 없습니다" + +#: cps/remotelogin.py:86 cps/remotelogin.py:119 +msgid "Token has expired" +msgstr "토큰이 만료되었습니다" + +#: cps/remotelogin.py:95 +msgid "Success! Please return to your device" +msgstr "성공! 기기로 돌아가주세요" + +#: cps/render_template.py:39 cps/web.py:416 +msgid "Books" +msgstr "책" + +#: cps/render_template.py:41 +msgid "Show recent books" +msgstr "최근 책 보기" + +#: cps/render_template.py:42 cps/templates/index.xml:25 +msgid "Hot Books" +msgstr "인기있는 책" + +#: cps/render_template.py:44 +msgid "Show Hot Books" +msgstr "주목받는 책 보기" + +#: cps/render_template.py:46 cps/render_template.py:51 +msgid "Downloaded Books" +msgstr "다운로드된 책" + +#: cps/render_template.py:48 cps/render_template.py:53 +#: cps/templates/user_table.html:167 +msgid "Show Downloaded Books" +msgstr "다운로드된 책 보기" + +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 +msgid "Top Rated Books" +msgstr "평점이 높은 책" + +#: cps/render_template.py:58 cps/templates/user_table.html:161 +msgid "Show Top Rated Books" +msgstr "평점이 높은 책 보기" + +#: cps/render_template.py:59 cps/templates/index.xml:54 +#: cps/templates/index.xml:58 cps/web.py:676 +msgid "Read Books" +msgstr "읽은 책" + +#: cps/render_template.py:61 +msgid "Show read and unread" +msgstr "읽은 책과 읽지 않은 책 보기" + +#: cps/render_template.py:63 cps/templates/index.xml:61 +#: cps/templates/index.xml:65 cps/web.py:679 +msgid "Unread Books" +msgstr "읽지 않은 책" + +#: cps/render_template.py:65 +msgid "Show unread" +msgstr "읽지 않은 책 보기" + +#: cps/render_template.py:66 +msgid "Discover" +msgstr "발견" + +#: cps/render_template.py:68 cps/templates/index.xml:50 +#: cps/templates/user_table.html:162 +msgid "Show Random Books" +msgstr "무작위 추천" + +#: cps/render_template.py:69 cps/templates/book_table.html:67 +#: cps/templates/index.xml:83 cps/web.py:1041 +msgid "Categories" +msgstr "카테고리" + +#: cps/render_template.py:71 cps/templates/user_table.html:158 +msgid "Show category selection" +msgstr "카테고리별 보기" + +#: cps/render_template.py:72 cps/templates/book_edit.html:90 +#: cps/templates/book_table.html:68 cps/templates/index.xml:90 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 +msgid "Series" +msgstr "시리즈" + +#: cps/render_template.py:74 cps/templates/user_table.html:157 +msgid "Show series selection" +msgstr "시리즈별 보기" + +#: cps/render_template.py:75 cps/templates/book_table.html:66 +#: cps/templates/index.xml:69 +msgid "Authors" +msgstr "저자" + +#: cps/render_template.py:77 cps/templates/user_table.html:160 +msgid "Show author selection" +msgstr "저자별 보기" + +#: cps/render_template.py:79 cps/templates/book_table.html:72 +#: cps/templates/index.xml:76 cps/web.py:925 +msgid "Publishers" +msgstr "출판사" + +#: cps/render_template.py:81 cps/templates/user_table.html:163 +msgid "Show publisher selection" +msgstr "출판사별 보기" + +#: cps/render_template.py:82 cps/templates/book_table.html:70 +#: cps/templates/index.xml:97 cps/templates/search_form.html:107 +#: cps/web.py:1018 +msgid "Languages" +msgstr "언어" + +#: cps/render_template.py:85 cps/templates/user_table.html:155 +msgid "Show language selection" +msgstr "언어별 보기" + +#: cps/render_template.py:86 cps/templates/index.xml:104 +msgid "Ratings" +msgstr "평점" + +#: cps/render_template.py:88 cps/templates/user_table.html:164 +msgid "Show ratings selection" +msgstr "평점별 보기" + +#: cps/render_template.py:89 cps/templates/index.xml:112 +msgid "File formats" +msgstr "파일 유형" + +#: cps/render_template.py:91 cps/templates/user_table.html:165 +msgid "Show file formats selection" +msgstr "파일 유형별 보기" + +#: cps/render_template.py:93 cps/web.py:703 +msgid "Archived Books" +msgstr "보관된 책" + +#: cps/render_template.py:95 cps/templates/user_table.html:166 +msgid "Show archived books" +msgstr "보관된 책 보기" + +#: cps/render_template.py:97 cps/web.py:780 +msgid "Books List" +msgstr "책 목록" + +#: cps/render_template.py:99 cps/templates/user_table.html:168 +msgid "Show Books List" +msgstr "책 목록 보기" + +#: cps/shelf.py:67 cps/shelf.py:121 +msgid "Invalid shelf specified" +msgstr "잘못된 책장 지정" + +#: cps/shelf.py:73 +msgid "Sorry you are not allowed to add a book to that shelf" +msgstr "죄송합니다. 해당 책장에 책을 추가할 권한이 없습니다" + +#: cps/shelf.py:82 +#, python-format +msgid "Book is already part of the shelf: %(shelfname)s" +msgstr "책이 이미 책장에 등록됨: %(shelfname)s" + +#: cps/shelf.py:107 +#, python-format +msgid "Book has been added to shelf: %(sname)s" +msgstr "책장에 책이 등록됨: %(sname)s" + +#: cps/shelf.py:126 +msgid "You are not allowed to add a book to the shelf" +msgstr "책장에 책을 추가할 권한이 없습니다" + +#: cps/shelf.py:144 +#, python-format +msgid "Books are already part of the shelf: %(name)s" +msgstr "책장에 이미 책이 등록됨: %(name)s" + +#: cps/shelf.py:156 +#, python-format +msgid "Books have been added to shelf: %(sname)s" +msgstr "책이 책장에 등록됨: %(sname)s" + +#: cps/shelf.py:163 +#, python-format +msgid "Could not add books to shelf: %(sname)s" +msgstr "책장에 책을 추가할 수 없음: %(sname)s" + +#: cps/shelf.py:209 +#, python-format +msgid "Book has been removed from shelf: %(sname)s" +msgstr "책이 책장에서 삭제됨: %(sname)s" + +#: cps/shelf.py:218 +msgid "Sorry you are not allowed to remove a book from this shelf" +msgstr "죄송합니다. 이 서가에서 책을 삭제할 권한이 없습니다" + +#: cps/shelf.py:228 cps/templates/layout.html:140 +msgid "Create a Shelf" +msgstr "책장 추가" + +#: cps/shelf.py:237 +msgid "Sorry you are not allowed to edit this shelf" +msgstr "죄송합니다. 이 책장을 편집할 권한이 없습니다" + +#: cps/shelf.py:239 +msgid "Edit a shelf" +msgstr "책장 편집" + +#: cps/shelf.py:249 +msgid "Sorry you are not allowed to create a public shelf" +msgstr "죄송합니다. 이 공개 책장을 만들 권한이 없습니다" + +#: cps/shelf.py:266 +#, python-format +msgid "Shelf %(title)s created" +msgstr "%(title)s 책장이 추가됨" + +#: cps/shelf.py:269 +#, python-format +msgid "Shelf %(title)s changed" +msgstr "%(title)s 책장이 변경됨" + +#: cps/shelf.py:283 +msgid "There was an error" +msgstr "오류가 발생하였습니다" + +#: cps/shelf.py:305 +#, python-format +msgid "A public shelf with the name '%(title)s' already exists." +msgstr "이름이 '%(title)s'인 공개 책장이 이미 있습니다." + +#: cps/shelf.py:316 +#, python-format +msgid "A private shelf with the name '%(title)s' already exists." +msgstr "이름이 '%(title)s'인 개인 책장이 이미 있습니다." + +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "책이 성공적으로 삭제되었습니다" + +#: cps/shelf.py:386 +#, python-format +msgid "Change order of Shelf: '%(name)s'" +msgstr "책장 순서 변경: '%(name)s'" + +#: cps/shelf.py:456 +#, python-format +msgid "Shelf: '%(name)s'" +msgstr "책장: '%(name)s'" + +#: cps/shelf.py:460 +msgid "Error opening shelf. Shelf does not exist or is not accessible" +msgstr "책장을 여는 동안 오류가 발생했습니다. 책장이 존재하지 않거나 접근할 수 없습니다" + +#: cps/updater.py:403 cps/updater.py:414 cps/updater.py:514 cps/updater.py:529 +msgid "Unexpected data while reading update information" +msgstr "업데이트 정보를 읽는 동안 예기치 않은 데이터" + +#: cps/updater.py:410 cps/updater.py:521 +msgid "No update available. You already have the latest version installed" +msgstr "업데이트가 없습니다. 이미 최신 버전이 설치되어 있습니다" + +#: cps/updater.py:428 +msgid "A new update is available. Click on the button below to update to the latest version." +msgstr "새로운 업데이트가 있습니다. 아래 버튼을 클릭하여 최신 버전으로 업데이트하십시오." + +#: cps/updater.py:446 +msgid "Could not fetch update information" +msgstr "업데이트 정보를 가져올 수 없습니다" + +#: cps/updater.py:456 +msgid "Click on the button below to update to the latest stable version." +msgstr "새로운 업데이트가 있습니다. 아래 버튼을 클릭하여 최신 버전으로 업데이트하십시오." + +#: cps/updater.py:465 cps/updater.py:479 cps/updater.py:490 +#, 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:507 +msgid "No release information available" +msgstr "출시 정보가 없습니다" + +#: cps/templates/index.html:5 cps/web.py:440 +msgid "Discover (Random Books)" +msgstr "발견(무작위 도서)" + +#: cps/web.py:471 +msgid "Hot Books (Most Downloaded)" +msgstr "인기있는 책(가장 많이 다운로드됨)" + +#: cps/web.py:507 +#, python-format +msgid "Downloaded books by %(user)s" +msgstr "%(user)s이(가) 다운로드한 책" + +#: cps/web.py:539 +#, python-format +msgid "Author: %(name)s" +msgstr "저자: %(name)s" + +#: cps/web.py:554 +#, python-format +msgid "Publisher: %(name)s" +msgstr "출판사: %(name)s" + +#: cps/web.py:569 +#, python-format +msgid "Series: %(serie)s" +msgstr "시리즈: %(serie)s" + +#: cps/web.py:582 +#, python-format +msgid "Rating: %(rating)s stars" +msgstr "평가: %(rating)s 별" + +#: cps/web.py:597 +#, python-format +msgid "File format: %(format)s" +msgstr "파일 유형: %(format)s" + +#: cps/web.py:615 +#, python-format +msgid "Category: %(name)s" +msgstr "카테고리: %(name)s" + +#: cps/web.py:631 +#, python-format +msgid "Language: %(name)s" +msgstr "언어: %(name)s" + +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 +msgid "Advanced Search" +msgstr "상세 검색" + +#: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 +#: cps/templates/index.xml:11 cps/templates/layout.html:45 +#: cps/templates/layout.html:48 cps/templates/search_form.html:226 +#: cps/web.py:750 cps/web.py:1077 +msgid "Search" +msgstr "검색" + +#: cps/templates/admin.html:16 cps/web.py:903 +msgid "Downloads" +msgstr "다운로드" + +#: cps/web.py:980 +msgid "Ratings list" +msgstr "평점 목록" + +#: cps/web.py:1001 +msgid "File formats list" +msgstr "파일 유형 목록" + +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 +msgid "Tasks" +msgstr "작업" + +#: cps/web.py:1215 +msgid "Published after " +msgstr "Published after " + +#: cps/web.py:1222 +msgid "Published before " +msgstr "Published before " + +#: cps/web.py:1244 +#, python-format +msgid "Rating <= %(rating)s" +msgstr "평점 <= %(rating)s" + +#: cps/web.py:1246 +#, python-format +msgid "Rating >= %(rating)s" +msgstr "평점 >= %(rating)s" + +#: cps/web.py:1248 +#, python-format +msgid "Read Status = %(status)s" +msgstr "읽은 상태 = %(status)s" + +#: cps/web.py:1353 +msgid "Error on search for custom columns, please restart Calibre-Web" +msgstr "사용자 정의 열을 검색하는 동안 오류가 발생했습니다. Calibre-Web을 다시 시작하십시오" + +#: cps/web.py:1449 +#, python-format +msgid "Book successfully queued for sending to %(kindlemail)s" +msgstr "성공적으로 %(kindlemail)s에 보내기 예약이 되었습니다" + +#: cps/web.py:1453 +#, python-format +msgid "Oops! There was an error sending this book: %(res)s" +msgstr "책을 보내는 중에 오류 발생: %(res)s" + +#: cps/web.py:1455 +msgid "Please update your profile with a valid Send to Kindle E-mail Address." +msgstr "Kindle로 보내는 유효한 이메일 주소로 프로필을 업데이트하십시오." + +#: cps/web.py:1472 +msgid "E-Mail server is not configured, please contact your administrator!" +msgstr "이메일 서버가 구성되지 않았습니다. 관리자에게 문의하십시오!" + +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 +msgid "Register" +msgstr "등록" + +#: cps/web.py:1507 +msgid "Your e-mail is not allowed to register" +msgstr "이메일을 등록할 수 없습니다" + +#: cps/web.py:1510 +msgid "Confirmation e-mail was send to your e-mail account." +msgstr "확인을 위한 이메일이 발송되었습니다." + +#: cps/web.py:1524 +msgid "Cannot activate LDAP authentication" +msgstr "LDAP 인증을 활성화할 수 없습니다" + +#: cps/web.py:1543 +#, python-format +msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" +msgstr "대체 로그인: '%(nickname)s', LDAP 서버에 연결할 수 없음 또는 사용자를 알 수 없음" + +#: cps/web.py:1549 +#, python-format +msgid "Could not login: %(message)s" +msgstr "로그인 실패: %(message)s" + +#: cps/web.py:1553 cps/web.py:1578 +msgid "Wrong Username or Password" +msgstr "잘못된 사용자명 또는 비밀번호" + +#: cps/web.py:1560 +msgid "New Password was send to your email address" +msgstr "새 비밀번호가 이메일로 전송되었습니다" + +#: cps/web.py:1566 +msgid "Please enter valid username to reset password" +msgstr "비밀번호를 재설정하려면 유효한 사용자 이름을 입력하십시오" + +#: cps/web.py:1573 +#, python-format +msgid "You are now logged in as: '%(nickname)s'" +msgstr "다음 사용자로 로그인: '%(nickname)s" + +#: cps/web.py:1639 cps/web.py:1688 +#, python-format +msgid "%(name)s's profile" +msgstr "%(name)s 프로필" + +#: cps/web.py:1655 +msgid "Profile updated" +msgstr "프로필이 업데이트 됨" + +#: cps/services/gmail.py:58 +msgid "Found no valid gmail.json file with OAuth information" +msgstr "인증 정보가 포함된 유효한 gmail.json 파일을 찾을 수 없습니다" + +#: cps/tasks/convert.py:137 +#, python-format +msgid "Calibre ebook-convert %(tool)s not found" +msgstr "Calibre ebook-convert %(tool)s을(를) 찾을 수 없습니다" + +#: cps/tasks/convert.py:163 +#, python-format +msgid "%(format)s format not found on disk" +msgstr "%(format)s 형식을 찾을 수 없습니다" + +#: cps/tasks/convert.py:167 +msgid "Ebook converter failed with unknown error" +msgstr "알 수 없는 오류로 인해 전자책 변환이 실패했습니다" + +#: cps/tasks/convert.py:177 +#, python-format +msgid "Kepubify-converter failed: %(error)s" +msgstr "Kepubify 변환 실패: %(error)s" + +#: cps/tasks/convert.py:199 +#, python-format +msgid "Converted file not found or more than one file in folder %(folder)s" +msgstr "변환된 파일을 찾을 수 없거나 %(folder)s 폴더에 하나 이상의 파일이 존재합니다" + +#: cps/tasks/convert.py:222 +#, python-format +msgid "Ebook-converter failed: %(error)s" +msgstr "\"전자책 변환 실패: %(error)s" + +#: cps/tasks/convert.py:245 +#, python-format +msgid "Calibre failed with error: %(error)s" +msgstr "오류로 인한 Calibre 실패: %(error)s" + +#: 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 "E-mail Address" +msgstr "이메일 주소" + +#: cps/templates/admin.html:15 cps/templates/user_edit.html:28 +msgid "Send to Kindle E-mail Address" +msgstr "킨들로 보내기 이메일 주소" + +#: cps/templates/admin.html:17 cps/templates/layout.html:76 +#: 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:20 cps/templates/layout.html:66 +#: cps/templates/user_table.html:145 +msgid "Upload" +msgstr "업로드" + +#: cps/templates/admin.html:22 cps/templates/detail.html:18 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 +#: 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:16 +#: cps/templates/book_table.html:97 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:51 +msgid "Add New User" +msgstr "사용자 추가" + +#: cps/templates/admin.html:53 +msgid "Import LDAP Users" +msgstr "LDAP 사용자 가져오기" + +#: cps/templates/admin.html:60 +msgid "E-mail Server Settings" +msgstr "이메일 서버 설정" + +#: cps/templates/admin.html:65 cps/templates/email_edit.html:31 +msgid "SMTP Hostname" +msgstr "SMTP Hostname" + +#: cps/templates/admin.html:69 cps/templates/email_edit.html:35 +msgid "SMTP Port" +msgstr "SMTP Port" + +#: cps/templates/admin.html:73 cps/templates/email_edit.html:39 +msgid "Encryption" +msgstr "암호화" + +#: cps/templates/admin.html:77 cps/templates/email_edit.html:47 +msgid "SMTP Login" +msgstr "SMTP Login" + +#: cps/templates/admin.html:81 cps/templates/admin.html:92 +#: cps/templates/email_edit.html:55 +msgid "From E-mail" +msgstr "From E-mail" + +#: cps/templates/admin.html:88 +msgid "E-Mail Service" +msgstr "E-Mail Service" + +#: cps/templates/admin.html:89 +msgid "Gmail via Oauth2" +msgstr "Gmail via Oauth2" + +#: cps/templates/admin.html:104 +msgid "Configuration" +msgstr "환경 설정" + +#: cps/templates/admin.html:107 +msgid "Calibre Database Directory" +msgstr "Calibre DB 폴더" + +#: cps/templates/admin.html:111 cps/templates/config_edit.html:68 +msgid "Log Level" +msgstr "Log Level" + +#: cps/templates/admin.html:115 +msgid "Port" +msgstr "Port" + +#: cps/templates/admin.html:120 +msgid "External Port" +msgstr "External Port" + +#: cps/templates/admin.html:127 cps/templates/config_view_edit.html:28 +msgid "Books per Page" +msgstr "페이지당 보여 줄 책 수" + +#: cps/templates/admin.html:131 +msgid "Uploads" +msgstr "업로드" + +#: cps/templates/admin.html:135 +msgid "Anonymous Browsing" +msgstr "익명 보기" + +#: cps/templates/admin.html:139 +msgid "Public Registration" +msgstr "공개 등록" + +#: cps/templates/admin.html:143 +msgid "Magic Link Remote Login" +msgstr "Magic Link Remote Login" + +#: cps/templates/admin.html:147 +msgid "Reverse Proxy Login" +msgstr "Reverse Proxy Login" + +#: cps/templates/admin.html:152 cps/templates/config_edit.html:173 +msgid "Reverse Proxy Header Name" +msgstr "Reverse Proxy Header Name" + +#: cps/templates/admin.html:157 +msgid "Edit Calibre Database Configuration" +msgstr "Calibre Database 환경 설정 편집" + +#: cps/templates/admin.html:158 +msgid "Edit Basic Configuration" +msgstr "기본 환경 설정 편집" + +#: cps/templates/admin.html:159 +msgid "Edit UI Configuration" +msgstr "UI 환경 설정 편집" + +#: cps/templates/admin.html:164 +msgid "Administration" +msgstr "관리" + +#: cps/templates/admin.html:165 +msgid "Download Debug Package" +msgstr "Debug Package 다운로드" + +#: cps/templates/admin.html:166 +msgid "View Logs" +msgstr "로그 보기" + +#: cps/templates/admin.html:169 +msgid "Reconnect Calibre Database" +msgstr "Calibre DB 다시 연결" + +#: cps/templates/admin.html:170 +msgid "Restart" +msgstr "재시작" + +#: cps/templates/admin.html:171 +msgid "Shutdown" +msgstr "종료" + +#: cps/templates/admin.html:176 +msgid "Update" +msgstr "업데이트" + +#: cps/templates/admin.html:180 +msgid "Version" +msgstr "버전" + +#: cps/templates/admin.html:181 +msgid "Details" +msgstr "세부 정보" + +#: cps/templates/admin.html:187 +msgid "Current version" +msgstr "현재 버전" + +#: cps/templates/admin.html:194 +msgid "Check for Update" +msgstr "업데이트 확인" + +#: cps/templates/admin.html:195 +msgid "Perform Update" +msgstr "업데이트 실행" + +#: cps/templates/admin.html:208 +msgid "Are you sure you want to restart?" +msgstr "재시작을 하시겠습니까?" + +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 +msgid "OK" +msgstr "예" + +#: cps/templates/admin.html:214 cps/templates/admin.html:228 +#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 +#: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 +#: cps/templates/config_view_edit.html:173 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/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 +msgid "Cancel" +msgstr "취소" + +#: cps/templates/admin.html:226 +msgid "Are you sure you want to shutdown?" +msgstr "종료를 하시겠습니까?" + +#: cps/templates/admin.html:238 +msgid "Updating, please do not reload this page" +msgstr "Встановлення оновлень, будь-ласка, не оновлюйте сторінку" + +#: cps/templates/author.html:15 +msgid "via" +msgstr "via" + +#: cps/templates/author.html:23 +msgid "In Library" +msgstr "In Library" + +#: cps/templates/author.html:26 cps/templates/index.html:72 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 +msgid "Sort according to book date, newest first" +msgstr "책 목록 정렬, 최신순" + +#: cps/templates/author.html:27 cps/templates/index.html:73 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 +msgid "Sort according to book date, oldest first" +msgstr "책 목록 정렬, 오래된 순" + +#: cps/templates/author.html:28 cps/templates/index.html:74 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 +msgid "Sort title in alphabetical order" +msgstr "가나다 순 정렬" + +#: cps/templates/author.html:29 cps/templates/index.html:75 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 +msgid "Sort title in reverse alphabetical order" +msgstr "가나다 역순 정렬" + +#: cps/templates/author.html:30 cps/templates/index.html:78 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 +msgid "Sort according to publishing date, newest first" +msgstr "발행일 순으로 정렬, 최신순" + +#: cps/templates/author.html:31 cps/templates/index.html:79 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 +msgid "Sort according to publishing date, oldest first" +msgstr "발행일 순으로 정렬, 오래된 순" + +#: cps/templates/author.html:57 cps/templates/author.html:117 +#: cps/templates/discover.html:30 cps/templates/index.html:29 +#: cps/templates/index.html:111 cps/templates/search.html:65 +#: cps/templates/shelf.html:54 +msgid "reduce" +msgstr "reduce" + +#: cps/templates/author.html:101 +msgid "More by" +msgstr "More by" + +#: cps/templates/book_edit.html:10 +msgid "Delete Book" +msgstr "책 삭제" + +#: cps/templates/book_edit.html:13 +msgid "Delete formats:" +msgstr "유형 삭제:" + +#: cps/templates/book_edit.html:24 +msgid "Convert book format:" +msgstr "책 유형 변경:" + +#: cps/templates/book_edit.html:29 +msgid "Convert from:" +msgstr "변경전 유형:" + +#: cps/templates/book_edit.html:31 cps/templates/book_edit.html:38 +msgid "select an option" +msgstr "옵션 선택" + +#: cps/templates/book_edit.html:36 +msgid "Convert to:" +msgstr "변경후 유형:" + +#: cps/templates/book_edit.html:45 +msgid "Convert book" +msgstr "책 변경" + +#: cps/templates/book_edit.html:55 cps/templates/search_form.html:8 +msgid "Book Title" +msgstr "책 제목" + +#: cps/templates/book_edit.html:62 cps/templates/book_edit.html:270 +#: cps/templates/book_edit.html:288 cps/templates/search_form.html:12 +msgid "Author" +msgstr "저자" + +#: cps/templates/book_edit.html:67 cps/templates/book_edit.html:275 +#: cps/templates/book_edit.html:290 cps/templates/search_form.html:153 +msgid "Description" +msgstr "책 소개" + +#: cps/templates/book_edit.html:72 +msgid "Identifiers" +msgstr "식별자" + +#: cps/templates/book_edit.html:76 cps/templates/book_edit.html:299 +msgid "Identifier Type" +msgstr "식별자 유형" + +#: cps/templates/book_edit.html:77 cps/templates/book_edit.html:300 +msgid "Identifier Value" +msgstr "식별자 값" + +#: cps/templates/book_edit.html:78 cps/templates/book_edit.html:301 +#: cps/templates/user_table.html:24 +msgid "Remove" +msgstr "삭제" + +#: cps/templates/book_edit.html:82 +msgid "Add Identifier" +msgstr "식별자 추가" + +#: cps/templates/book_edit.html:86 cps/templates/search_form.html:51 +msgid "Tags" +msgstr "태그" + +#: cps/templates/book_edit.html:94 +msgid "Series ID" +msgstr "시리즈 ID" + +#: cps/templates/book_edit.html:98 +msgid "Rating" +msgstr "평점" + +#: cps/templates/book_edit.html:103 +msgid "Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)" +msgstr "URL로 표지 추가(JPEG - 이미지를 다운로드 하여 DB에 저장합니다)" + +#: cps/templates/book_edit.html:107 +msgid "Upload Cover from Local Disk" +msgstr "로컬 디스크에서 표지 업로드" + +#: cps/templates/book_edit.html:112 +msgid "Published Date" +msgstr "출간일" + +#: cps/templates/book_edit.html:121 cps/templates/book_edit.html:272 +#: cps/templates/book_edit.html:289 cps/templates/detail.html:164 +#: cps/templates/search_form.html:16 +msgid "Publisher" +msgstr "출판사" + +#: cps/templates/book_edit.html:125 cps/templates/detail.html:131 +#: cps/templates/user_edit.html:33 +msgid "Language" +msgstr "언어" + +#: cps/templates/book_edit.html:135 cps/templates/search_form.html:45 +#: cps/templates/search_form.html:164 +msgid "Yes" +msgstr "예" + +#: cps/templates/book_edit.html:136 cps/templates/search_form.html:46 +#: cps/templates/search_form.html:165 +msgid "No" +msgstr "아니오" + +#: cps/templates/book_edit.html:200 +msgid "Upload Format" +msgstr "업로드 유형" + +#: cps/templates/book_edit.html:208 +msgid "View Book on Save" +msgstr "저장 후 책 보기" + +#: cps/templates/book_edit.html:211 cps/templates/book_edit.html:229 +msgid "Fetch Metadata" +msgstr "메타정보 가져오기" + +#: cps/templates/book_edit.html:212 cps/templates/config_db.html:53 +#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172 +#: cps/templates/email_edit.html:65 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:232 +msgid "Keyword" +msgstr "키워드" + +#: cps/templates/book_edit.html:233 +msgid "Search keyword" +msgstr "키워드 검색" + +#: cps/templates/book_edit.html:239 +msgid "Click the cover to load metadata to the form" +msgstr "표지를 클릭하여 양식에 메타데이터 로드" + +#: cps/templates/book_edit.html:246 cps/templates/book_edit.html:285 +msgid "Loading..." +msgstr "불러오는 중..." + +#: cps/templates/book_edit.html:250 cps/templates/layout.html:63 +#: cps/templates/layout.html:186 cps/templates/modal_dialogs.html:34 +#: cps/templates/user_edit.html:163 +msgid "Close" +msgstr "닫기" + +#: cps/templates/book_edit.html:277 cps/templates/book_edit.html:291 +msgid "Source" +msgstr "출처" + +#: cps/templates/book_edit.html:286 +msgid "Search error!" +msgstr "오류 검색!" + +#: cps/templates/book_edit.html:287 +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:77 cps/templates/book_table.html:79 +#: cps/templates/book_table.html:81 cps/templates/book_table.html:83 +#: cps/templates/book_table.html:87 cps/templates/book_table.html:89 +#: cps/templates/book_table.html:91 cps/templates/book_table.html:93 +msgid "Enter " +msgstr "입력 " + +#: cps/templates/book_table.html:110 cps/templates/modal_dialogs.html:46 +msgid "Are you really sure?" +msgstr "정말 확신합니까?" + +#: cps/templates/book_table.html:114 +msgid "Books with Title will be merged from:" +msgstr "제목이 있는 책은 다음에서 병합됨:" + +#: cps/templates/book_table.html:118 +msgid "Into Book with Title:" +msgstr "제목이 있는 책으로:" + +#: cps/templates/book_table.html:123 +msgid "Merge" +msgstr "병합" + +#: cps/templates/config_db.html:12 +msgid "Location of Calibre Database" +msgstr "Calibre Database 위치" + +#: cps/templates/config_db.html:22 +msgid "Use Google Drive?" +msgstr "Google 드라이브를 사용하시겠습니까?" + +#: cps/templates/config_db.html:27 +msgid "Authenticate Google Drive" +msgstr "구글 드라이브 인증" + +#: cps/templates/config_db.html:32 +msgid "Google Drive Calibre folder" +msgstr "Google Drive Calibre 폴더" + +#: cps/templates/config_db.html:40 +msgid "Metadata Watch Channel ID" +msgstr "Metadata Watch Channel ID" + +#: cps/templates/config_db.html:43 +msgid "Revoke" +msgstr "취소" + +#: cps/templates/config_db.html:68 +msgid "New db location is invalid, please enter valid path" +msgstr "잘못된 새 DB 위치. 올바른 경로 입력 필요" + +#: cps/templates/config_edit.html:18 +msgid "Server Configuration" +msgstr "서버 구성" + +#: cps/templates/config_edit.html:25 +msgid "Server Port" +msgstr "Server Port" + +#: 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 "Logfile 설정" + +#: 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 "Enable Uploads" +msgstr "업로드 활성화" + +#: cps/templates/config_edit.html:108 +msgid "(Please ensure users having also upload rights)" +msgstr "(사용자에게 업로드 권한도 있는지 확인하십시오)" + +#: cps/templates/config_edit.html:112 +msgid "Allowed Upload Fileformats" +msgstr "허용된 업로드 파일 형식" + +#: cps/templates/config_edit.html:118 +msgid "Enable Anonymous Browsing" +msgstr "익명 탐색 활성화" + +#: cps/templates/config_edit.html:122 +msgid "Enable Public Registration" +msgstr "공개 등록 활성화" + +#: cps/templates/config_edit.html:127 +msgid "Use E-Mail as Username" +msgstr "이메일을 사용자 이름으로 사용" + +#: cps/templates/config_edit.html:132 +msgid "Enable Magic Link Remote Login" +msgstr "Enable Magic Link Remote Login" + +#: cps/templates/config_edit.html:137 +msgid "Enable Kobo sync" +msgstr "Kobo sync 활성화" + +#: cps/templates/config_edit.html:142 +msgid "Proxy unknown requests to Kobo Store" +msgstr "Kobo Store에 알 수 없는 요청 프록시" + +#: cps/templates/config_edit.html:145 +msgid "Server External Port (for port forwarded API calls)" +msgstr "서버 외부 포트(포트 전달 API 호출용)" + +#: cps/templates/config_edit.html:153 +msgid "Use Goodreads" +msgstr "Goodreads 사용" + +#: cps/templates/config_edit.html:154 +msgid "Create an API Key" +msgstr "API 키 생성" + +#: cps/templates/config_edit.html:158 +msgid "Goodreads API Key" +msgstr "Goodreads API Key" + +#: cps/templates/config_edit.html:162 +msgid "Goodreads API Secret" +msgstr "Goodreads API Secret" + +#: cps/templates/config_edit.html:169 +msgid "Allow Reverse Proxy Authentication" +msgstr "역방향 프록시 인증 허용" + +#: cps/templates/config_edit.html:180 +msgid "Login type" +msgstr "로그인 유형" + +#: cps/templates/config_edit.html:182 +msgid "Use Standard Authentication" +msgstr "표준 인증 사용" + +#: cps/templates/config_edit.html:184 +msgid "Use LDAP Authentication" +msgstr "LDAP 인증 사용" + +#: cps/templates/config_edit.html:187 +msgid "Use OAuth" +msgstr "OAuth 사용" + +#: cps/templates/config_edit.html:194 +msgid "LDAP Server Host Name or IP Address" +msgstr "LDAP 서버 호스트 이름 또는 IP 주소" + +#: cps/templates/config_edit.html:198 +msgid "LDAP Server Port" +msgstr "LDAP 서버 포트" + +#: cps/templates/config_edit.html:202 +msgid "LDAP Encryption" +msgstr "LDAP 암호화" + +#: cps/templates/config_edit.html:204 cps/templates/config_view_edit.html:62 +#: cps/templates/email_edit.html:41 +msgid "None" +msgstr "None" + +#: cps/templates/config_edit.html:205 +msgid "TLS" +msgstr "TLS" + +#: cps/templates/config_edit.html:206 +msgid "SSL" +msgstr "SSL" + +#: cps/templates/config_edit.html:210 +msgid "LDAP CACertificate Path (Only needed for Client Certificate Authentication)" +msgstr "LDAP CACertificate 경로(클라이언트 인증서 인증에만 필요)" + +#: cps/templates/config_edit.html:217 +msgid "LDAP Certificate Path (Only needed for Client Certificate Authentication)" +msgstr "LDAP 인증서 경로(클라이언트 인증서 인증에만 필요)" + +#: cps/templates/config_edit.html:224 +msgid "LDAP Keyfile Path (Only needed for Client Certificate Authentication)" +msgstr "LDAP 키 파일 경로(클라이언트 인증서 인증에만 필요)" + +#: cps/templates/config_edit.html:233 +msgid "LDAP Authentication" +msgstr "LDAP 인증" + +#: cps/templates/config_edit.html:235 +msgid "Anonymous" +msgstr "익명" + +#: cps/templates/config_edit.html:236 +msgid "Unauthenticated" +msgstr "인증되지 않음" + +#: cps/templates/config_edit.html:237 +msgid "Simple" +msgstr "Simple" + +#: cps/templates/config_edit.html:242 +msgid "LDAP Administrator Username" +msgstr "LDAP 관리자 사용자 이름" + +#: cps/templates/config_edit.html:248 +msgid "LDAP Administrator Password" +msgstr "LDAP 관리자 비밀번호" + +#: cps/templates/config_edit.html:253 +msgid "LDAP Distinguished Name (DN)" +msgstr "LDAP 고유 이름(DN)" + +#: cps/templates/config_edit.html:257 +msgid "LDAP User Object Filter" +msgstr "LDAP 사용자 개체 필터" + +#: cps/templates/config_edit.html:262 +msgid "LDAP Server is OpenLDAP?" +msgstr "LDAP 서버는 OpenLDAP입니까?" + +#: cps/templates/config_edit.html:264 +msgid "Following Settings are Needed For User Import" +msgstr "사용자 가져오기에는 다음 설정이 필요" + +#: cps/templates/config_edit.html:266 +msgid "LDAP Group Object Filter" +msgstr "LDAP 그룹 개체 필터" + +#: cps/templates/config_edit.html:270 +msgid "LDAP Group Name" +msgstr "DAP 그룹 이름" + +#: cps/templates/config_edit.html:274 +msgid "LDAP Group Members Field" +msgstr "LDAP 그룹 구성원 필드" + +#: cps/templates/config_edit.html:278 +msgid "LDAP Member User Filter Detection" +msgstr "LDAP 구성원 사용자 필터 감지" + +#: cps/templates/config_edit.html:280 +msgid "Autodetect" +msgstr "자동 감지" + +#: cps/templates/config_edit.html:281 +msgid "Custom Filter" +msgstr "맞춤 필터" + +#: cps/templates/config_edit.html:286 +msgid "LDAP Member User Filter" +msgstr "LDAP 구성원 사용자 필터" + +#: cps/templates/config_edit.html:297 +#, python-format +msgid "Obtain %(provider)s OAuth Credential" +msgstr "%(provider)s OAuth 자격 증명 얻기" + +#: cps/templates/config_edit.html:300 +#, python-format +msgid "%(provider)s OAuth Client Id" +msgstr "%(provider)s OAuth 클라이언트 ID" + +#: cps/templates/config_edit.html:304 +#, python-format +msgid "%(provider)s OAuth Client Secret" +msgstr "%(provider)s OAuth 클라이언트 암호" + +#: cps/templates/config_edit.html:320 +msgid "External binaries" +msgstr "외부 바이너리" + +#: cps/templates/config_edit.html:326 +msgid "Path to Calibre E-Book Converter" +msgstr "Calibre E-Book 변환기 경로" + +#: cps/templates/config_edit.html:334 +msgid "Calibre E-Book Converter Settings" +msgstr "Calibre E-Book 변환기 경로 설정" + +#: cps/templates/config_edit.html:337 +msgid "Path to Kepubify E-Book Converter" +msgstr "Kepubify 전자책 변환기 경로" + +#: cps/templates/config_edit.html:345 +msgid "Location of Unrar binary" +msgstr "Unrar 바이너리의 위치" + +#: 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:113 +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:165 cps/templates/user_edit.html:87 +msgid "Add Allowed/Denied Tags" +msgstr "허용/거부 태그 추가" + +#: cps/templates/config_view_edit.html:166 +msgid "Add Allowed/Denied custom column values" +msgstr "허용/거부 사용자 정의 열 값 추가" + +#: cps/templates/detail.html:60 cps/templates/detail.html:69 +msgid "Read in Browser" +msgstr "부라우저에서 보기" + +#: cps/templates/detail.html:77 cps/templates/detail.html:94 +msgid "Listen in Browser" +msgstr "브라우저에서 듣기" + +#: cps/templates/detail.html:124 +#, python-format +msgid "Book %(index)s of %(range)s" +msgstr "책 %(index)s의 %(range)s" + +#: cps/templates/detail.html:173 +msgid "Published" +msgstr "출간일" + +#: cps/templates/detail.html:221 +msgid "Mark As Unread" +msgstr "읽지 않은 상태로 표시" + +#: cps/templates/detail.html:221 +msgid "Mark As Read" +msgstr "읽은 상태로 표시" + +#: cps/templates/detail.html:222 +msgid "Read" +msgstr "읽기" + +#: cps/templates/detail.html:231 +msgid "Restore from archive" +msgstr "아카이브에서 복원" + +#: cps/templates/detail.html:231 +msgid "Add to archive" +msgstr "아카이브에 추가" + +#: cps/templates/detail.html:232 +msgid "Archived" +msgstr "보관됨" + +#: cps/templates/detail.html:243 +msgid "Description:" +msgstr "설명:" + +#: cps/templates/detail.html:256 cps/templates/search.html:14 +msgid "Add to shelf" +msgstr "서재에 추가" + +#: cps/templates/detail.html:267 cps/templates/detail.html:284 +#: cps/templates/feed.xml:79 cps/templates/layout.html:137 +#: cps/templates/search.html:20 +msgid "(Public)" +msgstr "(공개)" + +#: cps/templates/detail.html:298 +msgid "Edit Metadata" +msgstr "메타저오 편집" + +#: cps/templates/email_edit.html:13 +msgid "Choose Server Type" +msgstr "서버 유형 선택" + +#: cps/templates/email_edit.html:15 +msgid "Use Standard E-Mail Account" +msgstr "표준 이메일 계정 사용" + +#: cps/templates/email_edit.html:16 +msgid "Gmail Account with OAuth2 Verification" +msgstr "OAuth2 인증이 있는 Gmail 계정" + +#: cps/templates/email_edit.html:22 +msgid "Setup Gmail Account as E-Mail Server" +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 E-mail" +msgstr "저장 후 테스트 이메일 보내기" + +#: cps/templates/email_edit.html:70 cps/templates/layout.html:29 +#: 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/feed.xml:21 cps/templates/layout.html:170 +msgid "Next" +msgstr "다음" + +#: cps/templates/generate_kobo_auth_url.html:5 +msgid "Open the .kobo/Kobo eReader.conf file in a text editor and add (or edit):" +msgstr "텍스트 편집기에서 .kobo/Kobo eReader.conf 파일을 열고 다음을 추가(또는 편집):" + +#: cps/templates/http_error.html:31 +msgid "Calibre-Web Instance is unconfigured, please contact your administrator" +msgstr "Calibre-Web Instance가 구성되지 않았습니다. 관리자에게 문의" + +#: cps/templates/http_error.html:41 +msgid "Create Issue" +msgstr "이슈 생성" + +#: cps/templates/http_error.html:48 +msgid "Return to Home" +msgstr "홈으로" + +#: cps/templates/http_error.html:50 +msgid "Logout User" +msgstr "로그아웃" + +#: cps/templates/index.html:69 +msgid "Sort ascending according to download count" +msgstr "다운로드 횟수에 따라 오름차순 정렬" + +#: cps/templates/index.html:70 +msgid "Sort descending according to download count" +msgstr "다운로드 횟수에 따라 내림차순 정렬" + +#: cps/templates/index.html:76 cps/templates/search.html:33 +#: cps/templates/shelf.html:23 +msgid "Sort authors in alphabetical order" +msgstr "저자를 가나다순(알파벳순)으로 정렬" + +#: cps/templates/index.html:77 cps/templates/search.html:34 +#: cps/templates/shelf.html:24 +msgid "Sort authors in reverse alphabetical order" +msgstr "저자를 가나다(알파벳) 역순으로 정렬" + +#: cps/templates/index.html:81 +msgid "Sort ascending according to series index" +msgstr "시리즈 인덱스에 따라 오름차순 정렬" + +#: cps/templates/index.html:82 +msgid "Sort descending according to series index" +msgstr "시리즈 인덱스에 따라 내림차순 정렬" + +#: cps/templates/index.xml:6 +msgid "Start" +msgstr "시작" + +#: cps/templates/index.xml:18 +msgid "Alphabetical Books" +msgstr "가나다(알파벳) 순" + +#: cps/templates/index.xml:22 +msgid "Books sorted alphabetically" +msgstr "가나다(알파벳)순으로 정렬한 책" + +#: cps/templates/index.xml:29 +msgid "Popular publications from this catalog based on Downloads." +msgstr "다운로드 기준 인기 도서." + +#: cps/templates/index.xml:36 +msgid "Popular publications from this catalog based on Rating." +msgstr "별점 기준 인기 도서." + +#: cps/templates/index.xml:39 +msgid "Recently added Books" +msgstr "최근 추가된 도서" + +#: cps/templates/index.xml:43 +msgid "The latest Books" +msgstr "최신 도서" + +#: cps/templates/index.xml:46 +msgid "Random Books" +msgstr "랜덤 정렬" + +#: cps/templates/index.xml:73 +msgid "Books ordered by Author" +msgstr "저자별 정렬" + +#: cps/templates/index.xml:80 +msgid "Books ordered by publisher" +msgstr "출판사별 정렬" + +#: cps/templates/index.xml:87 +msgid "Books ordered by category" +msgstr "카테고리별 정렬" + +#: cps/templates/index.xml:94 +msgid "Books ordered by series" +msgstr "시리즈별 정렬" + +#: cps/templates/index.xml:101 +msgid "Books ordered by Languages" +msgstr "언어별 정렬" + +#: cps/templates/index.xml:108 +msgid "Books ordered by Rating" +msgstr "평점별 정렬" + +#: cps/templates/index.xml:116 +msgid "Books ordered by file formats" +msgstr "파일 종류별 정렬" + +#: cps/templates/index.xml:119 cps/templates/layout.html:135 +#: cps/templates/search_form.html:87 +msgid "Shelves" +msgstr "서재" + +#: cps/templates/index.xml:123 +msgid "Books organized in shelves" +msgstr "서재별 정렬" + +#: cps/templates/layout.html:29 +msgid "Home" +msgstr "홈" + +#: cps/templates/layout.html:35 +msgid "Toggle Navigation" +msgstr "탐색 활성화" + +#: cps/templates/layout.html:46 +msgid "Search Library" +msgstr "검색" + +#: cps/templates/layout.html:63 cps/templates/layout.html:117 +msgid "Uploading..." +msgstr "업로드 중..." + +#: cps/templates/layout.html:63 +msgid "Error" +msgstr "오류" + +#: cps/templates/layout.html:63 +msgid "Upload done, processing, please wait..." +msgstr "업로드 완료, 처리 중입니다. 잠시만 기다려 주십시오..." + +#: cps/templates/layout.html:76 cps/templates/read.html:72 +#: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 +msgid "Settings" +msgstr "설정" + +#: cps/templates/layout.html:78 +msgid "Account" +msgstr "계정" + +#: cps/templates/layout.html:80 +msgid "Logout" +msgstr "로그아웃" + +#: cps/templates/layout.html:118 +msgid "Please do not refresh the page" +msgstr "페이지를 새로고침 하지 마세요" + +#: cps/templates/layout.html:128 +msgid "Browse" +msgstr "탐색" + +#: cps/templates/layout.html:141 cps/templates/stats.html:3 +msgid "About" +msgstr "서재 정보" + +#: cps/templates/layout.html:155 +msgid "Previous" +msgstr "이전" + +#: cps/templates/layout.html:182 +msgid "Book Details" +msgstr "책 상세정보" + +#: cps/templates/login.html:18 +msgid "Remember Me" +msgstr "로그인 유지" + +#: cps/templates/login.html:23 +msgid "Forgot Password?" +msgstr "비밀번호를 잊으셨나요?" + +#: cps/templates/login.html:26 +msgid "Log in with Magic Link" +msgstr "Magic Link로 로그인" + +#: 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 "Access Log 다운로드" + +#: 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 +msgid "Ok" +msgstr "Ok" + +#: cps/templates/osd.xml:5 +msgid "Calibre-Web eBook Catalog" +msgstr "Calibre-Web 책 목록" + +#: cps/templates/read.html:6 +msgid "epub Reader" +msgstr "epub 리더" + +#: cps/templates/read.html:75 +msgid "Reflow text when sidebars are open." +msgstr "사이드바가 열려 있을 때 텍스트 다시 배열." + +#: cps/templates/readcbr.html:7 +msgid "Comic Reader" +msgstr "코믹 리더" + +#: cps/templates/readcbr.html:89 +msgid "Keyboard Shortcuts" +msgstr "키보드 단축키" + +#: cps/templates/readcbr.html:92 +msgid "Previous Page" +msgstr "이전 페이지" + +#: cps/templates/readcbr.html:93 cps/templates/readcbr.html:162 +msgid "Next Page" +msgstr "다음 페이지" + +#: cps/templates/readcbr.html:94 +msgid "Scale to Best" +msgstr "최적 크기" + +#: cps/templates/readcbr.html:95 +msgid "Scale to Width" +msgstr "폭 조절" + +#: cps/templates/readcbr.html:96 +msgid "Scale to Height" +msgstr "높이 조절" + +#: cps/templates/readcbr.html:97 +msgid "Scale to Native" +msgstr "기본 크기" + +#: cps/templates/readcbr.html:98 +msgid "Rotate Right" +msgstr "오른쪽으로 회전" + +#: cps/templates/readcbr.html:99 +msgid "Rotate Left" +msgstr "왼쪽으로 회전" + +#: cps/templates/readcbr.html:100 +msgid "Flip Image" +msgstr "이미지 뒤집기" + +#: cps/templates/readcbr.html:116 +msgid "Light" +msgstr "밝게" + +#: cps/templates/readcbr.html:117 +msgid "Dark" +msgstr "어둡게" + +#: cps/templates/readcbr.html:122 +msgid "Scale" +msgstr "크기" + +#: cps/templates/readcbr.html:125 +msgid "Best" +msgstr "최적" + +#: cps/templates/readcbr.html:126 +msgid "Width" +msgstr "폭" + +#: cps/templates/readcbr.html:127 +msgid "Height" +msgstr "높이" + +#: cps/templates/readcbr.html:128 +msgid "Native" +msgstr "기본" + +#: cps/templates/readcbr.html:133 +msgid "Rotate" +msgstr "회전" + +#: cps/templates/readcbr.html:144 +msgid "Flip" +msgstr "뒤집기" + +#: cps/templates/readcbr.html:147 +msgid "Horizontal" +msgstr "수평" + +#: cps/templates/readcbr.html:148 +msgid "Vertical" +msgstr "수직" + +#: cps/templates/readcbr.html:153 +msgid "Direction" +msgstr "방향" + +#: cps/templates/readcbr.html:156 +msgid "Left to Right" +msgstr "왼쪽에서 오른쪽" + +#: cps/templates/readcbr.html:157 +msgid "Right to Left" +msgstr "오른쪽에서 왼쪽" + +#: cps/templates/readcbr.html:165 +msgid "Reset to Top" +msgstr "맨 위로 재설정" + +#: cps/templates/readcbr.html:166 +msgid "Remember Position" +msgstr "위치 기억" + +#: cps/templates/readcbr.html:171 +msgid "Scrollbar" +msgstr "스크롤바" + +#: cps/templates/readcbr.html:174 +msgid "Show" +msgstr "보기" + +#: cps/templates/readcbr.html:175 +msgid "Hide" +msgstr "숨기기" + +#: cps/templates/readdjvu.html:5 +msgid "DJVU Reader" +msgstr "DJVU 리더" + +#: cps/templates/readpdf.html:29 +msgid "PDF Reader" +msgstr "PDF 리더" + +#: cps/templates/readtxt.html:6 +msgid "txt Reader" +msgstr "텍스트 리더" + +#: 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 address" +msgstr "이메일 주소" + +#: cps/templates/remote_login.html:5 +msgid "Magic Link - Authorise New Device" +msgstr "Magic Link - 새 장치 승인" + +#: 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/search.html:5 +msgid "No Results Found" +msgstr "결과 없음" + +#: cps/templates/search.html:6 +msgid "Search Term:" +msgstr "검색어:" + +#: cps/templates/search.html:8 +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:42 +msgid "Read Status" +msgstr "읽은 상태" + +#: cps/templates/search_form.html:59 +msgid "Exclude Tags" +msgstr "태그 제외" + +#: cps/templates/search_form.html:77 +msgid "Exclude Series" +msgstr "시리즈 제외" + +#: cps/templates/search_form.html:95 +msgid "Exclude Shelves" +msgstr "서재 제외" + +#: cps/templates/search_form.html:115 +msgid "Exclude Languages" +msgstr "언어 제외" + +#: cps/templates/search_form.html:126 +msgid "Extensions" +msgstr "확장자" + +#: cps/templates/search_form.html:134 +msgid "Exclude Extensions" +msgstr "확장자 제외" + +#: cps/templates/search_form.html:144 +msgid "Rating Above" +msgstr "평점(이상)" + +#: cps/templates/search_form.html:148 +msgid "Rating Below" +msgstr "평점(이하)" + +#: cps/templates/search_form.html:180 +msgid "From:" +msgstr "부터:" + +#: cps/templates/search_form.html:190 +msgid "To:" +msgstr "까지:" + +#: cps/templates/shelf.html:12 +msgid "Delete this Shelf" +msgstr "이 서재 삭제" + +#: cps/templates/shelf.html:13 +msgid "Edit Shelf Properties" +msgstr "서재 속성 편집" + +#: cps/templates/shelf.html:16 +msgid "Arrange books manually" +msgstr "수동으로 책 정렬" + +#: cps/templates/shelf.html:17 +msgid "Disable Change order" +msgstr "정렬 변경 비활성화" + +#: cps/templates/shelf.html:17 +msgid "Enable Change order" +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 "Calibre 서재 통계" + +#: 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 Library" +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 "Progress" + +#: cps/templates/tasks.html:17 +msgid "Run Time" +msgstr "실행 시간" + +#: cps/templates/tasks.html:18 +msgid "Start Time" +msgstr "시작 시간" + +#: cps/templates/user_edit.html:20 +msgid "Reset user Password" +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 "코보 연동 토큰" + +#: cps/templates/user_edit.html:66 +msgid "Create/View" +msgstr "생성/보기" + +#: cps/templates/user_edit.html:70 +msgid "Force full kobo sync" +msgstr "강제로 코보 전체 동기화" + +#: 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 Auth URL 생성" + +#: 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 E-mail Address" +msgstr "이메일 주소 입력" + +#: cps/templates/user_table.html:136 +msgid "Enter Kindle E-mail Address" +msgstr "킨들 이메일 주소 입력" + +#: cps/templates/user_table.html:136 +msgid "Kindle E-mail" +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 "선택한 서재를 코보와 동기화" + +#: cps/templates/user_table.html:156 +msgid "Show read/unread selection" +msgstr "읽음/읽지 않음 선택 표시" + +#: cps/templates/user_table.html:159 +msgid "Show random books" +msgstr "랜덤 보기 표시" + diff --git a/cps/translations/nl/LC_MESSAGES/messages.mo b/cps/translations/nl/LC_MESSAGES/messages.mo index 46b0374b..8c8db9e7 100644 Binary files a/cps/translations/nl/LC_MESSAGES/messages.mo and b/cps/translations/nl/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 88594080..da786104 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web (GPLV3)\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-12-12 08:20+0100\n" "Last-Translator: Marcel Maas \n" "Language: nl\n" @@ -27,7 +27,7 @@ msgstr "niet geïnstalleerd" msgid "installed" msgstr "geïnstalleerd" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statistieken" @@ -47,9 +47,9 @@ msgstr "Opnieuw verbinden gelukt" msgid "Unknown command" msgstr "Onbekende opdracht" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Onbekend" @@ -77,7 +77,7 @@ msgstr "Systeembeheerder" msgid "All" msgstr "Alles" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Gebruiker niet gevonden" @@ -94,7 +94,7 @@ msgstr "Alle talen" msgid "Malformed request" msgstr "Misvormd verzoek" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "Gast naam kan niet worden veranderd" @@ -102,7 +102,7 @@ msgstr "Gast naam kan niet worden veranderd" msgid "Guest can't have this role" msgstr "Gast kan deze rol niet hebben" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Kan systeembeheerder rol niet verwijderen van de laatste systeembeheerder" @@ -146,7 +146,7 @@ msgstr "Ongeldige gelezen kolom" msgid "Invalid Restricted Column" msgstr "Ongeldige beperkte kolom" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web-configuratie bijgewerkt" @@ -162,7 +162,7 @@ msgstr "Wil je dit domein echt verwijderen?" msgid "Do you really want to delete this user?" msgstr "Wil je deze gebruiker echt verwijderen?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Weet je zeker dat je deze boekenplank wilt verwijderen?" @@ -210,278 +210,278 @@ msgstr "Tag niet gevonden" msgid "Invalid Action" msgstr "Ongeldige actie" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Weigeren" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Toestaan" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json is niet geconfigureerd voor webapplicatie" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "De locatie van het logbestand is onjuist, voer een geldige locatie in" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "De locatie vam het toegangslog is onjuist, voer een geldige locatie in" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Voer alsjeblieft een LDAP Provider, Port, DN en User Object Identifier in" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "Voer een geldig LDAP Service Account en wachtwoord in" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Voer een LDAP Service Account in" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP Groep Object Filter Moet Een \"%s\" Formaat Identificiatie hebben" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP Groep Object Filter heeft een niet-gebalanceerd haakje" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP Gebruiker Object Filter moet \"%s\" Formaat Identificatie hebben" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP Gebruiker Filter heeft een niet-gebalanceerd haakje" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP Lid Gebruiker Filter moet een \"%s\" Formaat Identificatie hebben" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP Lid Gebruiker Filter heeft een niet-gebalanceerd haakje" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CACertficaat, Certificaat of Sleutel Locatie is ongeldig. Voer alsjeblieft een geldig pad in." -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "DB-instellingen niet opgeslagen" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Database niet gevonden, voer de juiste locatie in" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Kan niet schrijven naar database" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "SSL-sleutellocatie is niet geldig, voer een geldig pad in" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "SSL-certificaatlocatie is niet geldig, voer een geldig pad in" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "E-mailserver-instellingen bijgewerkt" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Databaseconfiguratie" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Vul alle velden in!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Het e-mailadres bevat geen geldige domeinnaam" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Gebruiker toevoegen" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Gebruiker '%(user)s' aangemaakt" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Bestaand account met dit e-mailadres of deze gebruikersnaam aangetroffen." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Gebruiker '%(nick)s' verwijderd" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "Kan Gast gebruiker niet verwijderen" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Kan laatste systeembeheerder niet verwijderen" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Gebruiker '%(nick)s' bewerken" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Gebruiker '%(nick)s' bijgewerkt" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Onbekende fout opgetreden. Probeer het later nog eens." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "SMTP-instellingen bewerken" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Gmail Account succesvol geverifieerd" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "Test E-Mail wordt verzonden naar %(email)s, controleer de taken voor het resultaat" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Fout opgetreden bij het versturen van de test-e-mail: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Gelieve eerst je e-mail adres configureren..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "E-mailserver-instellingen bijgewerkt" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Wachtwoord voor gebruiker %(user)s is hersteld" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Stel eerst SMTP-mail in..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Logbestand lezer" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Update opvragen" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Update downloaden" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Update uitpakken" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Update toepassen" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Databaseverbindingen zijn gesloten" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Bezig met stoppen van Calibre-Web" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Update voltooid, klik op 'Oké' en vernieuw de pagina" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Update mislukt:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP-fout" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Verbindingsfout" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Time-out tijdens maken van verbinding" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Algemene fout" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Geüpload bestand kon niet opgeslagen worden in de tijdelijke map" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Mislukt om minstens een LDAP gebruiker aan te maken" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Het is niet gelukt tenminste een LDAP gebruiker aan te maken" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Fout: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Fout: No user returned in response of LDAP server" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "Minstens een LDAP Gebruiker is niet gevonden in de Database" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Gebruiker succesvol geïmporteerd" @@ -493,108 +493,112 @@ msgstr "niet geconfigureerd" msgid "Execution permissions missing" msgstr "Kan programma niet uitvoeren" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Aangepaste kolom Nr.%(column)d bestaat niet in de Calibre Database" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Het boekformaat is verwijderd" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Het boek is verwijderd" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Oeps! Geselecteerd boek is niet beschikbaar. Bestand bestaat niet of is niet toegankelijk" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "metagegevens bewerken" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s is geen geldig nummer, sla het over" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s is geen geldige taal" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "De bestandsextensie '%(ext)s' is niet toegestaan op deze server" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Het te uploaden bestand moet voorzien zijn van een extensie" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Kan de locatie '%(path)s' niet aanmaken (niet gemachtigd)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Kan %(file)s niet opslaan." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Database fout: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Bestandsformaat %(ext)s toegevoegd aan %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "Identificatoren zijn niet hoofdlettergevoelig, overschrijf huidige identificatoren" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "De metagegevens zijn bijgewerkt" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Kan het boek niet bewerken, controleer het logbestand" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Geüpload boek staat mogelijk al in de bibliotheek, controleer alvorens door te gaan: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Bestand %(filename)s kon niet opgeslagen worden in de tijdelijke map" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Omslag %(file)s niet verplaatst: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Bestand %(file)s geüpload" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Bron- of doelformaat ontbreekt voor conversie" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Het boek is in de wachtrij geplaatst voor conversie naar %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Er is een fout opgetreden bij het converteren van dit boek: %(res)s" @@ -607,175 +611,175 @@ msgstr "Het instellen van Google Drive is niet afgerond, heractiveer Google Driv msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Het callback-domein is niet geverifieerd. Volg de stappen in de Google-ontwikkelaarsconsole om het domein te verifiëren" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formaat niet gevonden voor boek met id: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s niet gevonden %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Versturen naar Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Deze e-mail is verstuurd via Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web - test-e-mail" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Test-e-mail" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Aan de slag met Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Registratie-e-mailadres van gebruiker: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s converteren naar %(format)s en versturen naar Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "%(format)s versturen naar Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "%(book)s verzonden naar Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Het verwijderen van de boekenmap voor boek %(id)s is mislukt, het pad heeft submappen: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Verwijderen van boek %(id)s mislukt: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, python-format 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:388 +#: cps/helper.py:385 #, 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" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kan het bestand in '%(src)s' niet wijzigen naar '%(dest)s': %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Bestand '%(file)s' niet aangetroffen op Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Boeken locatie '%(path)s' niet aangetroffen op Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Bestaand account met dit e-mailadres aangetroffen." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Deze gebruikersnaam is al in gebruik" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "Ongeldig E-Mail adres" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Fout bij downloaden omslag" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Onjuist omslagformaat" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Locatie aanmaken voor omslag mislukt" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Omslag-bestand is geen afbeelding of kon niet opgeslagen worden" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Alleen jpg/jpeg/png/webp/bmp bestanden worden ondersteund als omslag" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Alleen jpg/jpeg bestanden zijn toegestaan als omslag" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Unrar executable niet gevonden" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Fout bij het uitvoeren van Unrar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Wachten" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Mislukt" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Gestart" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Voltooid" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Onbekende status" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Je kunt Calibre-Web niet vanaf de lokale computer openen om een geldige api_endpoint te krijgen voor je kobo toestel" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Kobo Instellen" @@ -784,7 +788,7 @@ msgstr "Kobo Instellen" msgid "Register with %(provider)s" msgstr "Aanmelden bij %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "je bent ingelogd als: '%(nickname)s'" @@ -850,7 +854,7 @@ msgid "{} Stars" msgstr "{} sterren" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Inloggen" @@ -1069,41 +1073,46 @@ msgstr "Pas een boekenplank aan" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Boekenplank '%(title)s' aangemaakt" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Boekenplank '%(title)s' is aangepast" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Er is een fout opgetreden" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Een openbare boekenplank met de naam '%(title)s' bestaat al." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Een persoonlijke boekenplank met de naam '%(title)s' bestaat al." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Het boek is verwijderd" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Volgorde van boekenplank veranderen: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Boekenplank: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Kan boekenplank niet openen: de boekenplank bestaat niet of is ontoegankelijk" @@ -1184,14 +1193,14 @@ msgstr "Categorie: %(name)s" msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Geavanceerd zoeken" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Zoeken" @@ -1211,102 +1220,102 @@ msgstr "Alle bestandsformaten" msgid "Tasks" msgstr "Taken" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Gepubliceerd na " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Gepubliceerd vóór " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Beoordeling <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Beoordeling >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Lees Status = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "Fout tijdens het zoeken van aangepaste kolommen, start Calibre-Web opnieuw op" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Het boek is in de wachtrij geplaatst om te worden verstuurd aan %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Fout opgetreden bij het versturen van dit boek: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Stel je kindle-e-mailadres in..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-mailserver is niet geconfigureerd, neem contact op met de beheerder!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Registreren" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Dit e-mailadres mag niet worden gebruikt voor registratie" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Er is een bevestigings-e-mail verstuurd naar je e-mailadres." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Kan de LDAP authenticatie niet activeren" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Terugvallen op login: '%(nickname)s', LDAP Server is onbereikbaar, of de gebruiker is onbekend" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Inloggen mislukt: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Verkeerde gebruikersnaam of wachtwoord" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Een nieuw wachtwoord is verzonden naar je e-mailadres" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Geef een geldige gebruikersnaam op om je wachtwoord te herstellen" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Je bent ingelogd als: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)ss profiel" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profiel bijgewerkt" @@ -1343,7 +1352,7 @@ msgstr "Omgezette bestand is niet gevonden of meer dan een bestand in map %(fold msgid "Ebook-converter failed: %(error)s" msgstr "E-boek-conversie mislukt: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre mislukt met foutmelding: %(error)s" @@ -1383,7 +1392,7 @@ msgid "Upload" msgstr "Uploaden" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Downloaden" @@ -1550,39 +1559,38 @@ msgstr "Details" msgid "Current version" msgstr "Huidige versie" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Controleren op updates" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Update uitvoeren" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Weet je zeker dat je Calibre-Web wilt herstarten?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Oké" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Annuleren" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Weet je zeker dat je Calibre-Web wilt stoppen?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Bezig met bijwerken, vernieuw de pagina niet" @@ -1595,39 +1603,39 @@ msgid "In Library" msgstr "In bibliotheek" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Sorteren op datum, nieuwste boeken eerst" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Sorteren op datum, oudste boeken eerst" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Sorteren op alfabetische volgorde" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Sorteren op omgekeerde alfabetische volgorde" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Sorteren op publicatiedatum, nieuwste boeken eerst" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Sorteren op publicatiedatum, oudste boeken eerst" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "beperken" @@ -2472,12 +2480,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Auteurs sorteren op alfabetische volgorde" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Auteurs sorteren op omgekeerde alfabetische volgorde" @@ -2582,7 +2590,7 @@ msgstr "Fout" msgid "Upload done, processing, please wait..." msgstr "Uploaden voltooid, bezig met verwerken..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Instellingen" @@ -2733,7 +2741,7 @@ msgstr "Calibre-Web - e-boekcatalogus" msgid "epub Reader" msgstr "PDF lezer" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Tekstindeling automatisch aanpassen als het zijpaneel geopend is." @@ -2966,30 +2974,26 @@ msgstr "Van:" msgid "To:" msgstr "Tot:" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Deze boekenplank verwijderen" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Bewerk boekenplank eigenschappen" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Boeken handmatig rangschikken" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Schakel verandering van de volgorde uit" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Schakel verandering van de volgorde in" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Boekenplank wordt permanent verwijderd voor iedereen" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Delen met iedereen" diff --git a/cps/translations/pl/LC_MESSAGES/messages.mo b/cps/translations/pl/LC_MESSAGES/messages.mo index 26286b36..b02cacdb 100644 Binary files a/cps/translations/pl/LC_MESSAGES/messages.mo and b/cps/translations/pl/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/pl/LC_MESSAGES/messages.po b/cps/translations/pl/LC_MESSAGES/messages.po index 85da79f1..af7e9bcd 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: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2021-06-12 15:35+0200\n" "Last-Translator: Radosław Kierznowski \n" "Language: pl\n" @@ -27,7 +27,7 @@ msgstr "nie zainstalowane" msgid "installed" msgstr "zainstalowane" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statystyki" @@ -48,9 +48,9 @@ msgid "Unknown command" msgstr "Nieznane polecenie" # ??? -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Nieznany" @@ -78,7 +78,7 @@ msgstr "Edytuj użytkowników" msgid "All" msgstr "Wszystko" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Nie znaleziono użytkownika" @@ -95,7 +95,7 @@ msgstr "Pokaż wszystkie" msgid "Malformed request" msgstr "Nieprawidłowo sformułowane żądanie" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "Nazwa gościa nie może być zmieniona" @@ -103,7 +103,7 @@ msgstr "Nazwa gościa nie może być zmieniona" msgid "Guest can't have this role" msgstr "Gość nie może pełnić tej roli" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Nie można odebrać praw administratora. Brak na serwerze innego konta z prawami administratora" @@ -149,7 +149,7 @@ msgstr "Nieprawidłowa kolumna odczytu" msgid "Invalid Restricted Column" msgstr "Nieprawidłowa kolumna z ograniczeniami" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Konfiguracja Calibre-Web została zaktualizowana" @@ -165,7 +165,7 @@ msgstr "Czy naprawdę chcesz usunąć tę domenę?" msgid "Do you really want to delete this user?" msgstr "Czy naprawdę chcesz usunąć tego użytkownika?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Czy na pewno chcesz usunąć półkę?" @@ -210,279 +210,279 @@ msgstr "Nie znaleziono znacznika" msgid "Invalid Action" msgstr "Nieprawidłowe działanie" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Zabroń" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Zezwalaj" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json nie został skonfigurowany dla aplikacji webowej" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Lokalizacja pliku dziennika jest nieprawidłowa, wprowadź poprawną ścieżkę" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Lokalizacja pliku dziennika dostępu jest nieprawidłowa, wprowadź poprawną ścieżkę" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Wprowadź dostawcę LDAP, port, nazwę wyróżniającą i identyfikator obiektu użytkownika" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "Proszę wprowadzić konto i hasło usługi LDAP" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Proszę wprowadzić konto usługi LDAP" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "Filtr obiektów grupy LDAP musi mieć jeden identyfikator formatu \"% s\"" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Filtr obiektów grupy LDAP ma niedopasowany nawias" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "Filtr obiektów użytkownika LDAP musi mieć jeden identyfikator formatu \"% s\"" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Filtr obiektów użytkownika LDAP ma niedopasowany nawias" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "Filtr użytkownika członka LDAP musi mieć jedno \"%s\" identyfikator formatu" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "Filtr użytkownika członka LDAP ma niedopasowane nawiasy" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "Główny urząd certyfikatu LDAP, Certyfikat lub Lokalizacja Klucza nie jest prawidłowa, Proszę wprowadzić poprawną ścieżkę" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "Ustawienia Bazy Danych nie są zapisywalne" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Lokalizacja bazy danych jest nieprawidłowa, wprowadź poprawną ścieżkę" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Baza danych nie jest zapisywalna" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Lokalizacja pliku klucza jest nieprawidłowa, wprowadź poprawną ścieżkę" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Lokalizacja pliku certyfikatu jest nieprawidłowa, wprowadź poprawną ścieżkę" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Zaktualizowano ustawienia serwera poczty e-mail" -#: cps/admin.py:1343 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "Konfiguracja bazy danych" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Proszę wypełnić wszystkie pola!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-mail nie pochodzi z prawidłowej domeny" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Dodaj nowego użytkownika" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Użytkownik '%(user)s' został utworzony" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Użytkownik '%(nick)s' został usunięty" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 #, fuzzy msgid "Can't delete Guest User" msgstr "Nie można usunąć użytkownika gościa" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Nie można usunąć użytkownika. Brak na serwerze innego konta z prawami administratora" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Edytuj użytkownika %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Użytkownik '%(nick)s' został zaktualizowany" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Zmień ustawienia SMTP" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Weryfikacja konta Gmail przebiegła pomyślnie" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, fuzzy, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "Testowy e-mail czeka w kolejce do wysłania do %(email)s, sprawdź zadania, aby uzyskać wynik" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Wystąpił błąd podczas wysyłania e-maila testowego: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Najpierw skonfiguruj swój adres e-mail..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Zaktualizowano ustawienia serwera poczty e-mail" # ??? -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Zrestartowano hasło użytkownika %(user)s" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Przeglądanie dziennika" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Żądanie o pakiet aktualizacji" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Pobieranie pakietu aktualizacji" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Rozpakowywanie pakietu aktualizacji" # ??? -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Zastępowanie plików" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Połączenia z bazą danych zostały zakończone" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Zatrzymywanie serwera" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Aktualizacja nieudana:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "Błąd HTTP" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Błąd połączenia" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Przekroczono limit czasu podczas nawiązywania połączenia" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Błąd ogólny" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Plik aktualizacji nie mógł zostać zapisany w katalogu tymczasowym" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Błąd przy tworzeniu przynajmniej jednego użytkownika LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Błąd przy tworzeniu przynajmniej jednego użytkownika LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Błąd: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Błąd. LDAP nie zwrócił żadnego użytkownika" -#: cps/admin.py:1840 +#: cps/admin.py:1860 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:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Użytkownik pomyślnie zaimportowany" @@ -494,108 +494,112 @@ msgstr "nie skonfigurowane" msgid "Execution permissions missing" msgstr "Brak uprawnienia do wykonywania pliku" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Niestandardowa kolumna No.%(column)d nie istnieje w bazie calibre" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Plik książki w wybranym formacie został usunięty" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Książka została usunięta" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Błąd otwierania e-booka. Plik nie istnieje lub jest niedostępny" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "edytuj metadane" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s nie jest poprawną liczbą, pomijanie" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s nie jest prawidłowym językiem" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Rozszerzenie pliku '%(ext)s' nie jest dozwolone do wysłania na ten serwer" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Plik do wysłania musi mieć rozszerzenie" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Nie udało się utworzyć łącza %(path)s (Odmowa dostępu)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Nie można zapisać pliku %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Błąd bazy danych: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Format pliku %(ext)s dodany do %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "W identyfikatorach nie jest rozróżniana wielkość liter, nadpisywanie starego identyfikatora" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metadane zostały pomyślnie zaktualizowane" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Błąd podczas edycji książki, sprawdź plik dziennika, aby uzyskać szczegółowe informacje" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Wysłana książka prawdopodobnie istnieje w bibliotece, rozważ zmianę przed przesłaniem nowej: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Nie można zapisać pliku %(filename)s w katalogu tymczasowym" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Nie udało się przenieść pliku okładki %(file)s:%(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Wysłano plik %(file)s" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Brak formatu źródłowego lub docelowego do konwersji" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Książka została pomyślnie umieszczona w zadaniach do konwersji %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Podczas konwersji książki wystąpił błąd: %(res)s" @@ -608,176 +612,176 @@ msgstr "Konfiguracja Google Drive nie została zakończona, spróbuj dezaktywowa msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Zwrotna domena nie jest zweryfikowana, proszę zweryfikowania domenę w konsoli deweloperskiej google" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "Nie znaleziono formatu %(format)s dla id książki: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s nie znaleziono: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Wyślij do Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Ten e-mail został wysłany za pośrednictwem Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Testowy e-mail Calibre-Web" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Testowy e-mail" # ??? -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Zacznij korzystać z Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Rejestracja e-mail dla użytkownika: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Konwertuj %(orig)s do %(format)s i wyślij do Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Wyślij %(format)s do Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Wyślij do Kindle" # ??? -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Usuwanie folderu książki dla książki %(id)s nie powiodło się, ścieżka ma podfoldery: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Usuwanie książki %(id)s zakończyło się błędem: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, python-format 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:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Zmiana nazwy tytułu z: „%(src)s” na „%(dest)s” zakończyła się błędem: %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Zmiana nazwy pliku w ścieżce '%(src)s' na '%(dest)s' zakończyło się błędem: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Nie znaleziono pliku %(file)s na Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Nie znaleziono ścieżki do książki %(path)s na Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "Znaleziono istniejące konto dla tego adresu e-mail" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Nazwa użytkownika jest już zajęta" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "Nieprawidłowy format adresu e-mail" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Błąd przy pobieraniu okładki" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Błędny format okładki" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Nie udało się utworzyć ścieżki dla okładki" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Plik okładki nie jest poprawnym plikiem obrazu lub nie mógł zostać zapisany" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Jako plik okładki obsługiwane są tylko pliki jpg/jpeg/png/webp/bmp" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Jako plik okładki dopuszczalne są jedynie pliki jpg/jpeg" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Plik wykonywalny programu unrar nie znaleziony" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Błąd przy wykonywaniu unrar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Oczekiwanie" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Nieudane" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Rozpoczynanie" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Zakończone" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Ststus nieznany" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Aby uzyskać prawidłowy api_endpoint dla urządzenia Kobo, należy skorzystać z dostępu do calibre-web spoza localhost" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Konfiguracja Kobo" @@ -787,7 +791,7 @@ msgstr "Konfiguracja Kobo" msgid "Register with %(provider)s" msgstr "Zarejestruj się %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "zalogowałeś się jako: '%(nickname)s'" @@ -853,7 +857,7 @@ msgid "{} Stars" msgstr "{} Gwiazdek" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Zaloguj się" @@ -1072,41 +1076,46 @@ msgstr "Edytuj półkę" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Półka %(title)s została utworzona" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Półka %(title)s została zmieniona" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Wystąpił błąd" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Publiczna półka o nazwie '%(title)s' już istnieje." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Prywatna półka o nazwie '%(title)s' już istnieje." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Książka została usunięta" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Zmieniono kolejność półki: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Półka: „%(name)s”" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Błąd otwierania półki. Półka nie istnieje lub jest niedostępna" @@ -1187,14 +1196,14 @@ msgstr "Kategoria: %(name)s" msgid "Language: %(name)s" msgstr "Język: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Wyszukiwanie" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Szukaj" @@ -1214,103 +1223,103 @@ msgstr "Lista formatów" msgid "Tasks" msgstr "Zadania" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Opublikowane po " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Opublikowane przed " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Ocena <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Ocena >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Status przeczytania = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 #, fuzzy msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "Błąd podczas wyszukiwania kolumn niestandardowych, proszę zrestartować Calibre-Web" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Książka została umieszczona w kolejce do wysłania do %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Najpierw skonfiguruj adres e-mail Kindle..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Serwer e-mail nie jest skonfigurowany, skontaktuj się z administratorem!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Zarejestruj się" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Twój e-mail nie może się zarejestrować" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Wiadomość e-mail z potwierdzeniem została wysłana na Twoje konto e-mail." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Nie można aktywować uwierzytelniania LDAP" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Nie można zalogować: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Błędna nazwa użytkownika lub hasło" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Nowe hasło zostało wysłane na Twój adres e-mail" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Wprowadź prawidłową nazwę użytkownika, aby zresetować hasło" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Jesteś teraz zalogowany jako: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Profil użytkownika %(name)s" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Zaktualizowano profil" @@ -1347,7 +1356,7 @@ msgstr "Konwertowany plik nie został znaleziony, lub więcej niż jeden plik w msgid "Ebook-converter failed: %(error)s" msgstr "Konwertowanie nie powiodło się: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, fuzzy, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre nie powiodło się z błędem: %(error)s" @@ -1389,7 +1398,7 @@ msgstr "Wysyłanie" # ??? #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Pobieranie" @@ -1556,39 +1565,38 @@ msgstr "Szczegóły" msgid "Current version" msgstr "Bieżąca wersja" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Sprawdź aktualizacje" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Wykonaj aktualizację" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Na pewno chcesz uruchomić ponownie Calibre Web?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "OK" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Anuluj" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Na pewno chcesz zatrzymać Calibre Web?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Aktualizowanie, proszę nie odświeżać strony" @@ -1601,39 +1609,39 @@ msgid "In Library" msgstr "W Bibliotece" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Sortuj książki według daty, najnowsze jako pierwsze" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Sortuj książki według daty, najstarsze jako pierwsze" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Sortuj tytuły w porządku alfabetycznym" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Sortuj tytuły w odwrotnym porządku alfabetycznym" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Sortuj według daty publikacji, najnowsze jako pierwsze" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Sortuj według daty publikacji, najstarsze jako pierwsze" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "zwiń" @@ -2486,12 +2494,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Sortuj autorów w porządku alfabetycznym" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Posortuj autorów w odwrotnym porządku alfabetycznym" @@ -2597,7 +2605,7 @@ msgstr "Błąd" msgid "Upload done, processing, please wait..." msgstr "Wysyłanie zakończone, przetwarzanie, proszę czekać…" -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ustawienia" @@ -2749,7 +2757,7 @@ msgstr "Katalog e-booków Calibre-Web" msgid "epub Reader" msgstr "Czytnik PDF" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Przepływ tekstu, gdy paski boczne są otwarte." @@ -2981,30 +2989,26 @@ msgstr "Od:" msgid "To:" msgstr "Do:" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Usuń tą półkę" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Edytuj właściwości półki" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Ręczne porządkowanie książek" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Wyłączenie Zlecenie zmiany" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Włącz polecenie zmiany" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Półka zostanie usunięta dla wszystkich użytkowników" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Współdziel z wszystkimi" diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.mo b/cps/translations/pt_BR/LC_MESSAGES/messages.mo index 23b5a33f..a440798e 100644 Binary files a/cps/translations/pt_BR/LC_MESSAGES/messages.mo and b/cps/translations/pt_BR/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.po b/cps/translations/pt_BR/LC_MESSAGES/messages.po index a40a13e7..af21e9c1 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: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: br\n" @@ -23,7 +23,7 @@ msgstr "não instalado" msgid "installed" msgstr "instalado" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Estatística" @@ -43,9 +43,9 @@ msgstr "Reconexão bem-sucedida" msgid "Unknown command" msgstr "Comando desconhecido" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Desconhecido" @@ -73,7 +73,7 @@ msgstr "Usuário Admin" msgid "All" msgstr "Todos" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Usuário não encontrado" @@ -91,7 +91,7 @@ msgstr "Mostrar tudo" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -99,7 +99,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Nenhum usuário administrador restante, não pode remover a função de administrador" @@ -143,7 +143,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Configuração do Calibre-Web atualizada" @@ -159,7 +159,7 @@ msgstr "Você realmente quer excluir este domínio?" msgid "Do you really want to delete this user?" msgstr "Você realmente quer excluir este usuário?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Tem certeza que quer apagar essa estante?" @@ -207,279 +207,279 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Negar" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Permita" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json não está configurado para aplicativo da web" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "A localização do arquivo de log não é válida, digite o caminho correto" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "A localização do arquivo de log de acesso não é válida, digite o caminho correto" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Digite um provedor LDAP, porta, DN e identificador de objeto do usuário" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Por favor, digite um nome de usuário válido para redefinir a senha" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "O filtro de objeto de grupo LDAP precisa ter um identificador de formato \"%s\"" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Filtro de objeto de grupo LDAP tem parênteses incomparáveis" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "O filtro de objeto de usuário LDAP precisa ter um identificador de formato \"%s\"" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Filtro de objeto de usuário LDAP tem parênteses incomparáveis" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "O filtro de usuário membro do LDAP precisa ter um identificador de formato \"%s\"" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "Filtro de usuário de membro LDAP tem parênteses incomparáveis" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CACertificate, Certificados ou chave de localização não é válida, Insira o caminho correto" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "O banco de dados de configurações não é gravável" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "A localização do banco de dados não é válida, digite o caminho correto" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "DB não é gravável" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "A localização do arquivo-chave não é válida, por favor insira o caminho correto" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "A localização do arquivo de certificação não é válida, digite o caminho correto" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Atualização das configurações do servidor de e-mail" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Configuração das Características" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Por favor, preencha todos os campos!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "O e-mail não é de um domínio válido" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Adicionar novo usuário" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Usuário '%(user)s' criado" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Encontrei uma conta existente para este endereço de e-mail ou apelido." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuário '%(nick)s' excluído" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Nenhum usuário administrador restante, não é possível excluir o usuário" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Editar usuário %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuário '%(nick)s' atualizado" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Ocorreu um erro desconhecido. Por favor, tente novamente mais tarde." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Editar configurações do servidor de e-mail" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Ocorreu um erro ao enviar o e-mail de teste: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Por favor, configure seu endereço de e-mail primeiro..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Atualização das configurações do servidor de e-mail" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Senha para redefinição do usuário %(user)s" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Por favor, configure primeiro as configurações de correio SMTP..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "visualizador de arquivo de registro" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Solicitação de pacote de atualização" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Download do pacote de atualização" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Descompactação de pacote de atualização" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Substituição de arquivos" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "As ligações à base de dados estão fechadas" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Parar servidor" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Atualização concluída, pressione okay e recarregue a página" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Atualização falhou:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "Erro HTTP" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Erro de conexão" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Tempo limite durante o estabelecimento da conexão" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Erro geral" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Arquivo de atualização não pôde ser salvo no diretório temporário" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Falha na criação no mínimo de um usuário LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Falha na criação no mínimo de um usuário LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Erro: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Erro: Nenhum usuário retornado em resposta do servidor LDAP" -#: cps/admin.py:1840 +#: cps/admin.py:1860 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:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Usuário Importado com Sucesso" @@ -491,108 +491,112 @@ msgstr "não configurado" msgid "Execution permissions missing" msgstr "Faltam as permissões de execução" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "A coluna personalizada No.%(column)d não existe no banco de dados do calibre" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Formato do Livro Eliminado com Sucesso" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Livro Eliminado com Sucesso" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Oops! O título do livro seleccionado não está disponível. O arquivo não existe ou não é acessível" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "editar metadados" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s não é um idioma válido" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "A extensão de arquivo '%(ext)s' não pode ser enviada para este servidor" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "O arquivo a ser carregado deve ter uma extensão" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Falha ao criar o caminho %(path)s (Permission denied)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Falha ao armazenar o arquivo %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Erro de banco de dados: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Formato de arquivo %(ext)s adicionado a %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "Os identificadores não são sensíveis a maiúsculas ou minúsculas, mas sim a maiúsculas e minúsculas" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metadados atualizados com sucesso" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Livro de edição de erros, por favor verifique o ficheiro de registo para mais detalhes" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "O livro carregado provavelmente existe na biblioteca, considere mudar antes de carregar novo: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "O arquivo %(filename)s não pôde ser salvo no diretório temporário" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Falha ao mover arquivo de capa %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Arquivo %(file)s enviado" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Falta o formato de origem ou destino para a conversão" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Livro enfileirado com sucesso para conversão em %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Ocorreu um erro ao converter este livro: %(res)s" @@ -605,175 +609,175 @@ msgstr "Configuração do Google Drive não concluída, tente desativar e ativar msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "O domínio Callback não é verificado, por favor siga os passos para verificar o domínio no console do desenvolvedor do google" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format 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:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s não encontrado: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Enviar para Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Este e-mail foi enviado via Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "E-mail de teste do Calibre-Web" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "E-mail de teste" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Comece a usar o calibre-web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "E-mail de registro do usuário: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Converta %(orig)s em %(format)s e envie para o Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Envie %(format)s para o Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Enviar para Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "A exclusão da pasta de livros do livro %(id)s falhou, o caminho tem subpastas: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Falha ao excluir livro %(id)s: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "Excluindo livro %(id)s, caminho do livro inválido: %(path)s" -#: cps/helper.py:388 +#: cps/helper.py:385 #, 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" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Renomear arquivo no caminho '%(src)s' para '%(dest)s' falhou com o erro: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Arquivo %(file)s não encontrado no Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Caminho do livro %(path)s não encontrado no Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Encontrado uma conta existente para este endereço de e-mail." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Este nome de usuário já está registrado" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "Formato de endereço de e-mail inválido" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Erro ao Baixar a capa" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Erro de Formato da Capa" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Falha em criar caminho para a capa" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "O arquivo de capa não é um arquivo de imagem válido, ou não pôde ser armazenado" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Apenas ficheiros jpg/jpeg/png/webp/bmp são suportados como arquivos de capa" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Apenas arquivos jpg/jpeg são suportados como arquivos de capa" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Unrar arquivo binário não encontrado" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Erro excecutando UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Aguardando" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Falha" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Iniciado em" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Concluído" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Status Desconhecido" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Por favor, acesse o calibre-web de um host não local para obter um api_endpoint válido para o dispositivo kobo" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Configuração Kobo" @@ -782,7 +786,7 @@ msgstr "Configuração Kobo" msgid "Register with %(provider)s" msgstr "Registre-se com %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "agora você está logado como: '%(nickname)s'" @@ -848,7 +852,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Login" @@ -1067,41 +1071,46 @@ msgstr "Editar uma estante" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Estante %(title)s criada" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Estante %(title)s alterada" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Houve um erro" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Já existe uma estante pública com o nome '%(title)s' ." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Já existe uma estante privada com o nome'%(title)s' ." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Livro Eliminado com Sucesso" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Alterar ordem da Estante: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Estante: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Erro ao abrir estante. A estante não existe ou não está acessível" @@ -1182,14 +1191,14 @@ msgstr "Categoria: %(name)s" msgid "Language: %(name)s" msgstr "Idioma: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Pesquisa Avançada" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Pesquisa" @@ -1209,102 +1218,102 @@ msgstr "Lista de formatos de arquivo" msgid "Tasks" msgstr "Tarefas" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Publicado depois de " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Publicado antes de " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Avaliação <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Avaliação >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Status de leitura = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Livro enfileirado com sucesso para envio para %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Ups! Ocorreu um erro ao enviar este livro: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Por favor, atualize seu perfil com um endereço de e-mail válido para Kindle." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "O servidor de E-Mail não está configurado, por favor contacte o seu administrador!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Registe-se" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Seu e-mail não tem permissão para registrar" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "O e-mail de confirmação foi enviado para a sua conta de e-mail." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Não é possível ativar a autenticação LDAP" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Login de reserva como:'%(nickname)s', servidor LDAP não acessível ou usuário desconhecido" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Não foi possível fazer o login: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Nome de usuário ou senha incorretos" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Nova senha foi enviada para seu endereço de e-mail" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Por favor, digite um nome de usuário válido para redefinir a senha" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Você agora está logado como: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s's" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Perfil atualizado" @@ -1341,7 +1350,7 @@ msgstr "Arquivo convertido não encontrado ou mais de um arquivo na pasta %(fold msgid "Ebook-converter failed: %(error)s" msgstr "Conversor de ebook falhou: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre falhou com erro: %(error)s" @@ -1381,7 +1390,7 @@ msgid "Upload" msgstr "Upload" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Baixar" @@ -1548,39 +1557,38 @@ msgstr "Detalhes" msgid "Current version" msgstr "Versão atual" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Verificar Atualizações" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Realizar Atualizações" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Tem a certeza que quer recomeçar?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Ok" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Cancelar" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Tens a certeza que queres fechar?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Atualizando, por favor, não recarregue esta página" @@ -1593,39 +1601,39 @@ msgid "In Library" msgstr "Na Biblioteca" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Classificar de acordo com a data do livro, o mais recente primeiro" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Classificar de acordo com a data do livro, o mais antigo primeiro" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Classificar título em ordem alfabética" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Classificar título em ordem alfabética inversa" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Classificar de acordo com a data de publicação, o mais novo primeiro" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Classificar de acordo com a data de publicação, primeiro mais antigo" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "reduzir" @@ -2470,12 +2478,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Ordenar os autores em ordem alfabética" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Ordenar os autores em ordem alfabética inversa" @@ -2580,7 +2588,7 @@ msgstr "Erro" msgid "Upload done, processing, please wait..." msgstr "Upload feito, processando, por favor aguarde ..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Configurações" @@ -2731,7 +2739,7 @@ msgstr "Catálogo de e-books Calibre-Web" msgid "epub Reader" msgstr "leitor de PDF" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Refluxo de texto quando as barras laterais estão abertas." @@ -2964,30 +2972,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Excluir esta estante" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Editar as propriedades da estante" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Organizar os livros manualmente" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Desativar ordem de modificação" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Habilitar ordem de modificação" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "A estante será excluída para todos os usuários" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Partilhar com Todos" diff --git a/cps/translations/ru/LC_MESSAGES/messages.mo b/cps/translations/ru/LC_MESSAGES/messages.mo index 255a7fd7..4a468171 100644 Binary files a/cps/translations/ru/LC_MESSAGES/messages.mo and b/cps/translations/ru/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/ru/LC_MESSAGES/messages.po b/cps/translations/ru/LC_MESSAGES/messages.po index 3d991d64..7e698243 100644 --- a/cps/translations/ru/LC_MESSAGES/messages.po +++ b/cps/translations/ru/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-04-29 01:20+0400\n" "Last-Translator: ZIZA\n" "Language: ru\n" @@ -27,7 +27,7 @@ msgstr "не установлено" msgid "installed" msgstr "установлено" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Статистика" @@ -47,9 +47,9 @@ msgstr "Успешно переподключено" msgid "Unknown command" msgstr "Неизвестная команда" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Неизвестно" @@ -77,7 +77,7 @@ msgstr "Управление сервером" msgid "All" msgstr "Все" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -94,7 +94,7 @@ msgstr "Показать все" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -102,7 +102,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -146,7 +146,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Конфигурация Calibre-Web обновлена" @@ -162,7 +162,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Вы действительно хотите удалить эту книжную полку?" @@ -210,279 +210,279 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Запретить" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Разрешить" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json не настроен для веб-приложения" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Неправильное расположение файла журнала, пожалуйста, введите правильный путь." -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Недопустимое расположение файла журнала доступа, пожалуйста, введите правильный путь" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Пожалуйста, введите провайдера LDAP, порт, DN и идентификатор объекта пользователя" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Пожалуйста, введите действительное имя пользователя для сброса пароля" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "Фильтр объектов группы LDAP должен иметь один идентификатор формата \"%s\"" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Фильтр объектов группы LDAP имеет незавершённые круглые скобки" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "Фильтр объектов пользователя LDAP должен иметь один идентификатор формата \"%s\"" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Фильтр объектов пользователя LDAP имеет незавершенную круглую скобку" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Расположение Базы Данных неверно, пожалуйста, введите правильный путь." -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Расположение ключевого файла неверно, пожалуйста, введите правильный путь" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Расположение Certfile не является действительным, пожалуйста, введите правильный путь" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Настройки E-mail сервера обновлены" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Дополнительный Настройки" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Пожалуйста, заполните все поля!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-mail не из существующей доменной зоны" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Добавить пользователя" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Пользователь '%(user)s' добавлен" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Для этого адреса электронной почты или логина уже есть учётная запись." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Пользователь '%(nick)s' удалён" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Это последний администратор, невозможно удалить пользователя" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Изменить пользователя %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Пользователь '%(nick)s' обновлён" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Неизвестная ошибка. Попробуйте позже." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Изменить настройки SMTP" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Произошла ошибка при отправке тестового письма на: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Пожалуйста, сначала настройте свой адрес электронной почты ..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Настройки E-mail сервера обновлены" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Пароль для пользователя %(user)s сброшен" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Пожалуйста, сперва настройте параметры SMTP....." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Просмотр лога" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Проверка обновлений" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Загрузка обновлений" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Распаковка обновлений" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Замена файлов" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Соединения с базой данных закрыты" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Остановка сервера" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Обновления установлены, нажмите ок и перезагрузите страницу" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Ошибка обновления:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "Ошибка HTTP" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Ошибка соединения" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Тайм-аут при установлении соединения" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Общая ошибка" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Не удалось сохранить файл обновления во временной папке." -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Не удалось создать хотя бы одного пользователя LDAP" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Не удалось создать хотя бы одного пользователя LDAP" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Ошибка: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Ошибка: ни одного пользователя не найдено в ответ на запрос сервер LDAP" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "По крайней мере, один пользователь LDAP не найден в базе данных" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -494,108 +494,112 @@ msgstr "не настроено" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Невозможно открыть книгу. Файл не существует или недоступен" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "изменить метаданные" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s не допустимый язык" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Запрещена загрузка файлов с расширением '%(ext)s'" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Загружаемый файл должен иметь расширение" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Ошибка при создании пути %(path)s (Доступ запрещён)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Не удалось сохранить файл %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Формат файла %(ext)s добавлен в %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Метаданные обновлены" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Ошибка редактирования книги. Пожалуйста, проверьте лог-файл для дополнительной информации" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Загруженная книга, вероятно, существует в библиотеке, перед тем как загрузить новую, рассмотрите возможность изменения: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Файл %(filename)s не удалось сохранить во временную папку" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Файл %(file)s загружен" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Исходный или целевой формат для конвертирования отсутствует" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Книга успешно поставлена в очередь для конвертирования в %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Произошла ошибка при конвертирования этой книги: %(res)s" @@ -608,175 +612,175 @@ msgstr "Настройка Google Drive не завершена, попробу msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Не удалось проверить домен обратного вызова, пожалуйста, выполните шаги для проверки домена в консоли разработчика Google." -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s форма не найден для книги с id: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "%(format)s не найден на Google Drive: %(fn)s" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s не найден: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Отправить на Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Это электронное письмо было отправлено через Caliber-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Тестовый e-mail для Calibre-Web" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Тестовый e-mail" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Начать работу с Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Регистрационный e-mail для пользователя: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Преобразовать %(orig)s в %(format)s и отправить в Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Отправить %(format)s в Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Отправить на Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "Запрашиваемый файл не может быть прочитан. Возможно у вас нет разрешения?" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, 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:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Не удалось переименовать файл по пути '%(src)s' to '%(dest)s' из-за ошибки: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Файл %(file)s не найден на Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Путь книги %(path)s не найден на Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Этот адрес электронной почты уже зарегистрирован." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Это имя пользователя уже занято" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Не удалось создать путь для обложки." -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Только файлы в формате jpg / jpeg поддерживаются как файл обложки" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Ожидание" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Неудачно" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Начало" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Завершено" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Неизвестный статус" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Пожалуйста, подключитесь к Calibre-Web не с локального хоста, чтобы получить действительный api_endpoint для устройства Kobo" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Настройка Kobo" @@ -785,7 +789,7 @@ msgstr "Настройка Kobo" msgid "Register with %(provider)s" msgstr "Зарегистрируйтесь с %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "вы вошли как пользователь '%(nickname)s'" @@ -851,7 +855,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Логин" @@ -1070,41 +1074,46 @@ msgstr "Изменить полку" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Создана полка %(title)s" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Колка %(title)s изменена" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Произошла ошибка" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "Публичная полка с названием '%(title)s' уже существует." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "Приватная полка с названием '%(title)s' уже существует." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Метаданные обновлены" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Изменить расположение полки '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Полка: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Ошибка открытия Полки. Полка не существует или недоступна" @@ -1185,14 +1194,14 @@ msgstr "Категория: %(name)s" msgid "Language: %(name)s" msgstr "Язык: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Расширенный поиск" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Поиск" @@ -1212,102 +1221,102 @@ msgstr "Список форматов файлов" msgid "Tasks" msgstr "Задания" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Опубликовано после " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Опубликовано до " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Рейтинг <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Рейтинг >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Книга успешно поставлена в очередь для отправки на %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "При отправке этой книги произошла ошибка: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Пожалуйста, сначала настройте e-mail на вашем kindle..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "Сервер электронной почты не настроен, обратитесь к администратору !" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Зарегистрироваться" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Ваш e-mail не подходит для регистрации" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Письмо с подтверждением отправлено вам на e-mail." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Не удается активировать LDAP аутентификацию" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "Резервный вход в систему как: '%(nickname)s', LDAP-сервер недоступен или пользователь не известен" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Не удалось войти: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Ошибка в имени пользователя или пароле" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Новый пароль был отправлен на ваш адрес электронной почты" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Пожалуйста, введите действительное имя пользователя для сброса пароля" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Вы вошли как: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Профиль %(name)s's" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Профиль обновлён" @@ -1344,7 +1353,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "Ошибка Ebook-конвертора: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1384,7 +1393,7 @@ msgid "Upload" msgstr "Загрузить" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Скачать" @@ -1551,39 +1560,38 @@ msgstr "Подробности" msgid "Current version" msgstr "Текущая версия" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Проверка обновлений" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Установить обновления" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Вы действительно хотите перезагрузить Calibre-Web?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Ok" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Отмена" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Вы действительно хотите остановить Calibre-Web?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Установка обновлений, пожалуйста, не обновляйте страницу" @@ -1596,39 +1604,39 @@ msgid "In Library" msgstr "В библиотеке" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "уменьшить" @@ -2473,12 +2481,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2583,7 +2591,7 @@ msgstr "Ошибка" msgid "Upload done, processing, please wait..." msgstr "Загрузка завершена, обработка, пожалуйста, подождите..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Настройки" @@ -2734,7 +2742,7 @@ msgstr "Каталог электронных книг Caliber-Web" msgid "epub Reader" msgstr "PDF reader" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Обновить размещение текста при открытии боковой панели." @@ -2967,30 +2975,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Удалить эту книжную полку" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Книжная полка будет безвозвратно удалена для всех" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Сделать книжную полку доступной для всех ?" diff --git a/cps/translations/sv/LC_MESSAGES/messages.mo b/cps/translations/sv/LC_MESSAGES/messages.mo index 80985045..c396c602 100644 Binary files a/cps/translations/sv/LC_MESSAGES/messages.mo and b/cps/translations/sv/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/sv/LC_MESSAGES/messages.po b/cps/translations/sv/LC_MESSAGES/messages.po index e9cfb11e..ea19c81d 100644 --- a/cps/translations/sv/LC_MESSAGES/messages.po +++ b/cps/translations/sv/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2021-05-13 11:00+0000\n" "Last-Translator: Jonatan Nyberg \n" "Language: sv\n" @@ -26,7 +26,7 @@ msgstr "inte installerad" msgid "installed" msgstr "installerad" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Statistik" @@ -46,9 +46,9 @@ msgstr "Återanslutning lyckades" msgid "Unknown command" msgstr "Okänt kommando" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Okänd" @@ -75,7 +75,7 @@ msgstr "Redigera användare" msgid "All" msgstr "Alla" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "Användaren hittades inte" @@ -92,7 +92,7 @@ msgstr "Visa alla" msgid "Malformed request" msgstr "Felaktig begäran" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "Gästnamn kan inte ändras" @@ -100,7 +100,7 @@ msgstr "Gästnamn kan inte ändras" msgid "Guest can't have this role" msgstr "Gäst kan inte ha den här rollen" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "Ingen administratörsanvändare kvar, kan inte ta bort administratörsrollen" @@ -145,7 +145,7 @@ msgstr "Ogiltig roll" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web konfiguration uppdaterad" @@ -161,7 +161,7 @@ msgstr "Vill du verkligen ta bort den här domänen?" msgid "Do you really want to delete this user?" msgstr "Vill du verkligen ta bort den här användaren?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Är du säker på att du vill ta bort hyllan?" @@ -207,279 +207,279 @@ msgstr "Taggen hittades inte" msgid "Invalid Action" msgstr "Ogiltig åtgärd" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "Förneka" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "Tillåt" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json är inte konfigurerad för webbapplikation" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Loggfilens plats är inte giltig, vänligen ange rätt sökväg" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Åtkomstloggplatsens plats är inte giltig, vänligen ange rätt sökväg" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Vänligen ange en LDAP-leverantör, port, DN och användarobjektidentifierare" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Ange giltigt användarnamn för att återställa lösenordet" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP-gruppobjektfilter måste ha en \"%s\"-formatidentifierare" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP-gruppobjektfilter har omatchande parentes" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP-användarobjektfilter måste ha en \"%s\"-formatidentifierare" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP-användarobjektfilter har omatchad parentes" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "Användarfilter för LDAP-medlemmar måste ha en \"%s\"-formatidentifierare" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "Användarfilter för LDAP-medlemmar har omatchad parentes" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP-certifikat, certifikat eller nyckelplats är inte giltigt, vänligen ange rätt sökväg" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "Inställningar för DB är inte skrivbara" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "DB-plats är inte giltig, vänligen ange rätt sökväg" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "DB är inte skrivbar" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Keyfile-platsen är inte giltig, vänligen ange rätt sökväg" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Certfile-platsen är inte giltig, vänligen ange rätt sökväg" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "E-postserverinställningar uppdaterade" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Funktion konfiguration" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Fyll i alla fält!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-posten är inte från giltig domän" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Lägg till ny användare" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Användaren '%(user)s' skapad" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "Hittade ett befintligt konto för den här e-postadressen eller namnet." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Användaren '%(nick)s' borttagen" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "Det går inte att ta bort gästanvändaren" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Ingen adminstratörsanvändare kvar, kan inte ta bort användaren" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Redigera användaren %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Användaren '%(nick)s' uppdaterad" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Ett okänt fel uppstod. Försök igen senare." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Ändra SMTP-inställningar" -#: cps/admin.py:1551 +#: cps/admin.py:1571 #, fuzzy msgid "Gmail Account Verification Successful" msgstr "Verifiering av G-mail-kontot lyckades" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "Testa e-post i kö för att skicka till %(email)s, vänligen kontrollera Uppgifter för resultat" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Det gick inte att skicka Testmeddelandet: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Vänligen konfigurera din e-postadress först..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "E-postserverinställningar uppdaterade" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Lösenord för användaren %(user)s återställd" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Konfigurera SMTP-postinställningarna först..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visaren för loggfil" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Begär uppdateringspaketet" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Hämtar uppdateringspaketet" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Packar upp uppdateringspaketet" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Ersätta filer" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Databasanslutningarna är stängda" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Stoppar server" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Uppdatering klar, tryck på okej och uppdatera sidan" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Uppdateringen misslyckades:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP-fel" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Anslutningsfel" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Tiden ute när du etablerade anslutning" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Allmänt fel" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Uppdateringsfilen kunde inte sparas i Temp Dir" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Det gick inte att skapa minst en LDAP-användare" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Det gick inte att skapa minst en LDAP-användare" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Fel: %(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Fel: Ingen användare återges som svar på LDAP-servern" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "Minst en LDAP-användare hittades inte i databasen" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} användare har importerats" @@ -491,108 +491,112 @@ msgstr "inte konfigurerad" msgid "Execution permissions missing" msgstr "Körningstillstånd saknas" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "Anpassad kolumn n.%(column)d finns inte i calibre-databasen" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "Bokformat har tagits bort" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "Boken har tagits bort" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Hoppsan! Vald boktitel är inte tillgänglig. Filen finns inte eller är inte tillgänglig" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "redigera metadata" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s är inte ett giltigt språk" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "Filändelsen '%(ext)s' får inte laddas upp till den här servern" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Filen som ska laddas upp måste ha en ändelse" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "Det gick inte att skapa sökväg %(path)s (behörighet nekad)." -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "Det gick inte att lagra filen %(file)s." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "Databasfel: %(error)s." -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "Filformatet %(ext)s lades till %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "Identifierare är inte skiftlägeskänsliga, skriver över gammal identifierare" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metadata uppdaterades" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Det gick inte att redigera boken, kontrollera loggfilen för mer information" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Uppladdad bok finns förmodligen i biblioteket, överväg att ändra innan du laddar upp nya: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "Filen %(filename)s kunde inte sparas i temp dir" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "Det gick inte att flytta omslagsfil %(file)s: %(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "Filen %(file)s uppladdad" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Källa eller målformat för konvertering saknas" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "Boken är i kö för konvertering till %(book_format)s" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Det gick inte att konvertera den här boken: %(res)s" @@ -605,174 +609,174 @@ msgstr "Installationen av Google Drive är inte klar, försök att inaktivera oc msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Återuppringningsdomänen är inte verifierad, följ stegen för att verifiera domänen i Google utvecklarkonsol" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(format)s formatet hittades inte för bok-id: %(book)d" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s hittades inte: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Skicka till Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Detta e-postmeddelande har skickats via Calibre-Web." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web test e-post" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Test e-post" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Kom igång med Calibre-Web" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Registrera e-post för användare: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "Konvertera %(orig)s till %(format)s och skicka till Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "Skicka %(format)s till Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Skicka till Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 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:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "Borttagning av bokmapp för boken %(id)s misslyckades, sökvägen har undermappar: %(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "Borttagning av boken %(id)s misslyckades: %(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, fuzzy, python-format 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:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Byt namn på titel från: \"%(src)s\" till \"%(dest)s\" misslyckades med fel: %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Byt namn på fil i sökvägen '%(src)s' till '%(dest)s' misslyckades med fel: %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Filen %(file)s hittades inte på Google Drive" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Boksökvägen %(path)s hittades inte på Google Drive" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "Hittade ett befintligt konto för den här e-postadressen" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Detta användarnamn är redan taget" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "Ogiltigt e-postadressformat" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "Fel vid hämtning av omslaget" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "Fel på omslagsformat" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "Det gick inte att skapa sökväg för omslag" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "Omslagsfilen är inte en giltig bildfil eller kunde inte lagras" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "Endast jpg/jpeg/png/webp/bmp-filer stöds som omslagsfil" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "Endast jpg/jpeg-filer stöds som omslagsfil" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "Unrar binär fil hittades inte" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "Fel vid körning av UnRar" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Väntar" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Misslyckades" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Startad" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Klar" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Okänd status" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "Vänligen få tillgång till calibre-web från icke localhost för att få giltig api_endpoint för Kobo-enhet" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Kobo-installation" @@ -781,7 +785,7 @@ msgstr "Kobo-installation" msgid "Register with %(provider)s" msgstr "Registrera dig med %(provider)s" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "du är nu inloggad som: \"%(nickname)s\"" @@ -847,7 +851,7 @@ msgid "{} Stars" msgstr "{} stjärnor" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Logga in" @@ -1066,41 +1070,46 @@ msgstr "Redigera en hylla" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Hyllan %(title)s skapad" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Hyllan %(title)s ändrad" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Det fanns ett fel" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "En offentlig hylla med namnet \"%(title)s\" finns redan." -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "En privat hylla med namnet \"%(title)s\" finns redan." -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Boken har tagits bort" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Ändra ordning på hyllan: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Hylla: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Fel vid öppning av hyllan. Hylla finns inte eller är inte tillgänglig" @@ -1181,14 +1190,14 @@ msgstr "Kategori: %(name)s" msgid "Language: %(name)s" msgstr "Språk: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Avancerad sökning" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Sök" @@ -1208,102 +1217,102 @@ msgstr "Lista över filformat" msgid "Tasks" msgstr "Uppgifter" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Publicerad efter " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Publicerad före " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Betyg <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Betyg >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Lässtatus = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Boken är i kö för att skicka till %(kindlemail)s" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Det gick inte att skicka den här boken: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Konfigurera din kindle-e-postadress först..." -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-postservern är inte konfigurerad, kontakta din administratör!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Registrera" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Din e-post är inte tillåten att registrera" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Bekräftelsemail skickades till ditt e-postkonto." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Det går inte att aktivera LDAP-autentisering" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Det gick inte att logga in: %(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Fel användarnamn eller lösenord" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Nytt lösenord skickades till din e-postadress" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Ange giltigt användarnamn för att återställa lösenordet" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Du är nu inloggad som: \"%(nickname)s\"" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)ss profil" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profilen uppdaterad" @@ -1340,7 +1349,7 @@ msgstr "Konverterad fil hittades inte eller mer än en fil i mappen %(folder)s" msgid "Ebook-converter failed: %(error)s" msgstr "E-bokkonverteraren misslyckades: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "calibre misslyckades med fel: %(error)s" @@ -1380,7 +1389,7 @@ msgid "Upload" msgstr "Ladda upp" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Hämta" @@ -1547,39 +1556,38 @@ msgstr "Detaljer" msgid "Current version" msgstr "Aktuell version" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Sök efter uppdatering" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Utför uppdatering" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "Är du säker på att du vill starta om Calibre-Web?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Ok" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "Avbryt" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "Är du säker på att du vill stoppa Calibre-Web?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Uppdaterar, vänligen uppdatera inte sidan" @@ -1592,39 +1600,39 @@ msgid "In Library" msgstr "I biblioteket" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "Sortera efter bokdatum, nyast först" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "Sortera efter bokdatum, äldsta först" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "Sortera titel i alfabetisk ordning" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "Sortera titel i omvänd alfabetisk ordning" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "Sortera efter publiceringsdatum, nyast först" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "Sortera efter publiceringsdatum, äldsta först" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "minska" @@ -2470,12 +2478,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "Sortera författare i alfabetisk ordning" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "Sortera författare i omvänd alfabetisk ordning" @@ -2580,7 +2588,7 @@ msgstr "Fel" msgid "Upload done, processing, please wait..." msgstr "Uppladdning klar, bearbetning, vänligen vänta ..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Inställningar" @@ -2730,7 +2738,7 @@ msgstr "Calibre-Web e-bokkatalog" msgid "epub Reader" msgstr "PDF-läsare" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Fyll i texten igen när sidofält är öppna." @@ -2962,30 +2970,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Ta bort den här hyllan" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "Redigera hyllegenskaper" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "Ordna böcker manuellt" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "Inaktivera ändring av ordning" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "Aktivera ändring av ordning" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Hylla kommer att tas bort för alla användare" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "Dela med alla" diff --git a/cps/translations/tr/LC_MESSAGES/messages.mo b/cps/translations/tr/LC_MESSAGES/messages.mo index fbad4697..26014d5f 100644 Binary files a/cps/translations/tr/LC_MESSAGES/messages.mo and b/cps/translations/tr/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/tr/LC_MESSAGES/messages.po b/cps/translations/tr/LC_MESSAGES/messages.po index 8a049549..10387783 100644 --- a/cps/translations/tr/LC_MESSAGES/messages.po +++ b/cps/translations/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-04-23 22:47+0300\n" "Last-Translator: iz \n" "Language: tr\n" @@ -26,7 +26,7 @@ msgstr "yüklü değil" msgid "installed" msgstr "yüklü" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "İstatistikler" @@ -46,9 +46,9 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Bilinmeyen" @@ -75,7 +75,7 @@ msgstr "" msgid "All" msgstr "Tümü" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -92,7 +92,7 @@ msgstr "" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -144,7 +144,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web yapılandırması güncellendi" @@ -160,7 +160,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "" @@ -204,278 +204,278 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Şifrenizi sıfırlayabilmek için lütfen geçerli bir kullanıcı adı giriniz" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "E-posta sunucusu ayarları güncellendi" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Özellik Yapılandırması" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Lütfen tüm alanları doldurun!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-posta izin verilen bir servisten değil" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Yeni kullanıcı ekle" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "'%(user)s' kullanıcısı oluşturuldu" -#: cps/admin.py:1390 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Bu e-posta adresi veya kullanıcı adı için zaten bir hesap var." -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Kullanıcı '%(nick)s' silindi" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Başka yönetici kullanıcı olmadığından silinemedi" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "%(nick)s kullanıcısını düzenle" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "'%(nick)s' kullanıcısı güncellendi" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "Bilinmeyen bir hata oluştu. Lütfen daha sonra tekrar deneyiniz." -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Deneme e-postası gönderilirken bir hata oluştu: %(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Lütfen önce e-posta adresinizi ayarlayın..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "E-posta sunucusu ayarları güncellendi" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "%(user)s kullanıcısının şifresi sıfırlandı" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Lütfen önce SMTP e-posta ayarlarını ayarlayın..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Log dosyası görüntüleyici" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Güncelleme paketi isteniyor" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Güncelleme paketi indiriliyor" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Güncelleme paketi ayıklanıyor" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Dosyalar değiştiriliyor" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Veritabanı bağlantıları kapalı" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Sunucu durduruyor" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Güncelleme tamamlandı, sayfayı yenilemek için lütfen Tamam'a tıklayınız" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "Güncelleme başarısız:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP Hatası" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "Bağlantı hatası" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "Bağlantı kurulmaya çalışırken zaman aşımına uğradı" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "Genel hata" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "%(filename)s dosyası geçici dizine kaydedilemedi" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -487,108 +487,112 @@ msgstr "ayarlanmadı" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "metaveri düzenle" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s geçerli bir dil değil" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "'%(ext)s' uzantılı dosyaların bu sunucuya yüklenmesine izin verilmiyor" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Yüklenecek dosyanın mutlaka bir uzantısı olması gerekli" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "%(path)s dizini oluşturulamadı. (İzin reddedildi)" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "%(file)s dosyası kaydedilemedi." -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "%(book)s kitabına %(ext)s dosya biçimi eklendi" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "Metaveri başarıyla güncellendi" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "eKitap düzenlenirken hata oluştu, detaylar için lütfen log dosyasını kontrol edin" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "Yüklenen eKitap muhtemelen kitaplıkta zaten var. Yenisini yüklemeden değiştirmeyi düşünün: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "%(filename)s dosyası geçici dizine kaydedilemedi" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "%(file)s dosyası yüklendi" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "Dönüştürme için kaynak ya da hedef biçimi eksik" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "eKitap %(book_format)s formatlarına dönüştürülmek üzere başarıyla sıraya alındı" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "Bu eKitabı dönüştürürken bir hata oluştu: %(res)s" @@ -601,175 +605,175 @@ msgstr "Google Drive kurulumu tamamlanmadı, Google Drive'ı devre dışı bıra msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Geri yönlendirme alanı (callback domain) doğrulanamadı, lütfen Google geliştirici konsolunda alan adını doğrulamak için gerekli adımları izleyin." -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "%(book)d nolu kitap için %(format)s biçimi bulunamadı" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, 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:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "%(format)s bulunamadı: %(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Kindle'a gönder" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "Bu e-Posta Calibre-Web ile gönderilmiştir." -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web deneme e-Postası" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "Deneme e-Postası" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "Calibre-Web'i Kullanmaya Başlayın" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "Kullanıcı Kayıt e-Postası: %(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "%(orig)s'dan %(format)s biçimine çevir ve Kindle'a gönder" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "%(format)s biçimlerini Kindle'a gönder" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Kindle'a gönder" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "İstenilen dosya okunamadı. Yanlış izinlerden kaynaklanabilir?" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Kitap adını değiştirme sırasında hata oluştu ('%(src)s' → '%(dest)s'): %(error)s" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "Dosya adını değiştirme sırasında hata oluştu ('%(src)s' → '%(dest)s'): %(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "%(file)s dosyası Google Drive'da bulunamadı" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "eKitap yolu %(path)s Google Drive'da bulunamadı" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 #, fuzzy msgid "Found an existing account for this e-mail address" msgstr "Bu e-posta adresi için bir hesap mevcut." -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "Bu kullanıcı adı zaten alındı" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "Bekleniyor" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "Başarısız" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "Başladı" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "Bitti" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "Bilinmeyen Durum" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "" @@ -778,7 +782,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "%(provider)s ile Kaydol" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "giriş yaptınız: '%(nickname)s'" @@ -844,7 +848,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Giriş" @@ -1063,41 +1067,46 @@ msgstr "Kitaplığı düzenle" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "%(title)s kitaplığı oluşturuldu." -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "%(title)s kitaplığı değiştirildi" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Bir hata oluştu" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "Metaveri başarıyla güncellendi" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Kitaplık sıralamasını değiştir: '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Kitaplık: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Kitaplık açılırken hata oluştu. Kitaplık mevcut değil ya da erişilebilir değil" @@ -1178,14 +1187,14 @@ msgstr "Kategori: %(name)s" msgid "Language: %(name)s" msgstr "Dil: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Gelişmiş Arama" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Ara" @@ -1205,102 +1214,102 @@ msgstr "Biçim listesi" msgid "Tasks" msgstr "Görevler" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "Yayınlanma (sonra)" -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Yayınlanma (önce)" -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Değerlendirme <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Değerlendirme >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "%(kindlemail)s'a gönderilmek üzere başarıyla sıraya alındı" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-Posta sunucusu ayarlanmadı, lütfen yöneticinizle iletişime geçin!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Kayıt ol" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "E-posta adresinizle kaydolunmasına izin verilmiyor" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Onay e-Postası hesabınıza gönderildi." -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "LDAP Kimlik Doğrulaması etkinleştirilemiyor" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Yanlış Kullanıcı adı ya da Şifre" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Yeni şifre e-Posta adresinize gönderildi" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Şifrenizi sıfırlayabilmek için lütfen geçerli bir kullanıcı adı giriniz" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Giriş yaptınız: '%(nickname)s'" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s Profili" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil güncellendi" @@ -1337,7 +1346,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "eKitap-Dönüştürücü hatası: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1377,7 +1386,7 @@ msgid "Upload" msgstr "Yükleme" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "İndirme" @@ -1544,39 +1553,38 @@ msgstr "Detaylar" msgid "Current version" msgstr "Geçerli sürüm" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Güncelle" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "" @@ -1589,39 +1597,39 @@ msgid "In Library" msgstr "Kitaplıkta" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "azalt" @@ -2464,12 +2472,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2574,7 +2582,7 @@ msgstr "Hata" msgid "Upload done, processing, please wait..." msgstr "Yükleme tamamlandı, işleniyor, lütfen bekleyin..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Ayarlar" @@ -2725,7 +2733,7 @@ msgstr "" msgid "epub Reader" msgstr "PDF Okuyucu" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Kenar çubukları açıkken metni kaydır" @@ -2958,30 +2966,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Bu Kitaplığı sil" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "" diff --git a/cps/translations/uk/LC_MESSAGES/messages.mo b/cps/translations/uk/LC_MESSAGES/messages.mo index c62a2074..16a29dec 100644 Binary files a/cps/translations/uk/LC_MESSAGES/messages.mo and b/cps/translations/uk/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/uk/LC_MESSAGES/messages.po b/cps/translations/uk/LC_MESSAGES/messages.po index 4e8801da..8cca1d0c 100644 --- a/cps/translations/uk/LC_MESSAGES/messages.po +++ b/cps/translations/uk/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-web\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n" "Last-Translator: ABIS Team \n" "Language: uk\n" @@ -25,7 +25,7 @@ msgstr "не встановлено" msgid "installed" msgstr "" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "Статистика" @@ -45,9 +45,9 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "Невідомий" @@ -75,7 +75,7 @@ msgstr "Керування сервером" msgid "All" msgstr "" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -92,7 +92,7 @@ msgstr "Показати всі" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -144,7 +144,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "" @@ -160,7 +160,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "Ви справді хочете видалити книжкову полицю?" @@ -208,275 +208,275 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "З'єднання з базою даних закрите" -#: cps/admin.py:1343 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Особливі налаштування" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Будь-ласка, заповніть всі поля!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Додати користувача" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Користувач '%(user)s' додан" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Користувача '%(nick)s' видалено" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Змінити користувача %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Користувача '%(nick)s' оновлено" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "Змінити налаштування SMTP" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Будь-ласка, спочатку сконфігуруйте параметри SMTP" -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Перевірка оновлень" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Завантаження оновлень" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Розпакування оновлення" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "З'єднання з базою даних закрите" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Оновлення встановлені, натисніть ok і перезавантажте сторінку" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -488,108 +488,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Неможливо відкрити книгу. Файл не існує або немає доступу." -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "змінити метадані" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "Завантажувальний файл повинен мати розширення" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "" -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "Сталась помилка при редагуванні книги. Будь-ласка, перевірте лог-файл для деталей" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "" @@ -602,174 +606,174 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "Домен зворотнього зв'язку не підтверджено. Виконайте дії для підтвердження домену, будь-ласка" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "Відправити на Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, fuzzy, python-format msgid "%(book)s send to Kindle" msgstr "Відправити на Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "" @@ -778,7 +782,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "Ви увійшли як користувач: '%(nickname)s'" @@ -844,7 +848,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Ім'я користувача" @@ -1063,41 +1067,45 @@ msgstr "Змінити книжкову полицю" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "Створена книжкова полиця %(title)s" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "Книжкова полиця %(title)s змінена" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "Сталась помилка" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +msgid "Shelf successfully deleted" +msgstr "" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "Змінити розташування книжкової полиці '%(name)s'" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "Книжкова полиця: '%(name)s'" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "Помилка при відкриванні полиці. Полиця не існує або до неї відсутній доступ" @@ -1178,14 +1186,14 @@ msgstr "Категорія: %(name)s" msgid "Language: %(name)s" msgstr "Мова: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "Розширений пошук" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Пошук" @@ -1205,102 +1213,102 @@ msgstr "" msgid "Tasks" msgstr "" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "" -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "Опубліковано до" -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Помилка при відправці книги: %(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "Зареєструватись" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Помилка в імені користувача або паролі" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Профіль %(name)s" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Профіль оновлено" @@ -1337,7 +1345,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1377,7 +1385,7 @@ msgid "Upload" msgstr "Додати нову книгу" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "Завантажити" @@ -1544,39 +1552,38 @@ msgstr "" msgid "Current version" msgstr "" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "Перевірка оновлень" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "Встановити оновлення" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "Ok" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "Встановлення оновлень, будь-ласка, не оновлюйте сторінку" @@ -1589,39 +1596,39 @@ msgid "In Library" msgstr "У бібліотеці" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "" @@ -2463,12 +2470,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2573,7 +2580,7 @@ msgstr "" msgid "Upload done, processing, please wait..." msgstr "" -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "Налаштування" @@ -2723,7 +2730,7 @@ msgstr "" msgid "epub Reader" msgstr "" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "Переформатувати текст, коли відкриті бічні панелі." @@ -2953,30 +2960,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "Видалити цю книжкову полицю" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "Книжкова полиця буде остаточно видалена для всіх" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "зробити книжкову полицю доступною для всіх?" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index f7b864c0..d0ffc14c 100644 Binary files a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo and b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 3986e33a..73bc4efa 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-09-27 22:18+0800\n" "Last-Translator: xlivevil \n" "Language: zh_CN\n" @@ -26,7 +26,7 @@ msgstr "未安装" msgid "installed" msgstr "已安装" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "统计" @@ -46,9 +46,9 @@ msgstr "重新连接成功" msgid "Unknown command" msgstr "未知命令" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "未知" @@ -75,7 +75,7 @@ msgstr "管理用户" msgid "All" msgstr "全部" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "找不到用户" @@ -92,7 +92,7 @@ msgstr "显示全部" msgid "Malformed request" msgstr "格式错误的请求" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "访客名称无法更改" @@ -100,7 +100,7 @@ msgstr "访客名称无法更改" msgid "Guest can't have this role" msgstr "游客无法拥有此角色" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "理员账户不存在,无法删除管理员角色" @@ -144,7 +144,7 @@ msgstr "无效的阅读列" msgid "Invalid Restricted Column" msgstr "无效的限制列" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web配置已更新" @@ -160,7 +160,7 @@ msgstr "您确定要删除此域吗?" msgid "Do you really want to delete this user?" msgstr "您确定要删除此用户吗?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "您确定要删除此书架吗?" @@ -204,273 +204,273 @@ msgstr "标签未找到" msgid "Invalid Action" msgstr "无效的动作" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "拒绝" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "允许" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json 未为 Web 应用程序配置" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "日志文件路径无效,请输入正确的路径" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "访问日志路径无效,请输入正确的路径" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "请输入LDAP主机、端口、DN和用户对象标识符" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "请输入一个LDAP服务账号和密码 " -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "请输入一个LDAP服务账号" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP组对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP组对象过滤器的括号不匹配" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP用户对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP用户对象过滤器的括号不匹配" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP成员用户过滤器需要有一个“%s”格式标识符" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP成员用户过滤器中有不匹配的括号" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CA证书、证书或密钥位置无效,请输入正确的路径" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "设置数据库不可写入" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "数据库路径无效,请输入正确的路径" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "数据库不可写入" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "密钥文件路径无效,请输入正确的路径" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "证书文件路径无效,请输入正确的路径" -#: cps/admin.py:1335 +#: cps/admin.py:1346 msgid "Database Settings updated" msgstr "数据库设置已更新" -#: cps/admin.py:1343 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "数据库配置" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "请填写所有字段!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "邮箱不在有效域中" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "添加新用户" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "用户“%(user)s”已创建" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "使用此邮箱或用户名的账号已经存在。" -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户“%(nick)s”已删除" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "无法删除游客用户" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "管理员账户不存在,无法删除用户" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "用户“%(nick)s”已更新" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "发生一个未知错误,请稍后再试。" -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "编辑邮件服务器设置" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "G-Mail账号校验成功" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "发送给%(email)s的测试邮件已进入队列。请检查任务结果" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "发送测试邮件时出错:%(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "请先配置您的邮箱地址..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "邮件服务器设置已更新" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "用户 %(user)s 的密码已重置" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱设置..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "日志文件查看器" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "正在替换文件" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "正在停止服务器" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请点击确定并刷新页面" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "更新失败:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP错误" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "连接错误" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "建立连接超时" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "一般错误" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "更新文件无法保存在临时目录中" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "更新期间无法替换文件" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "未能提取至少一个LDAP用户" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "未能创建至少一个LDAP用户" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "错误:%(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "错误:在LDAP服务器的响应中没有返回用户" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "数据库中没有找到至少一个LDAP用户" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} 用户被成功导入" @@ -482,108 +482,112 @@ msgstr "未配置" msgid "Execution permissions missing" msgstr "缺少执行权限" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "自定义列号:%(column)d在Calibre数据库中不存在" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "书籍格式已成功删除" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "书籍已成功删除" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "糟糕!选择书名无法打开。文件不存在或者文件不可访问" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "编辑元数据" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s 不是一个有效的数值,忽略" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "'%(langname)s' 不是一种有效语言" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "不能上传文件扩展名为“%(ext)s”的文件到此服务器" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "要上传的文件必须具有扩展名" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "创建路径 %(path)s 失败(权限拒绝)。" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "保存文件 %(file)s 失败。" -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "数据库错误:%(error)s。" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "已添加 %(ext)s 格式到 %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "标识符不区分大小写,覆盖旧标识符" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "已成功更新元数据" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "编辑书籍出错,请检查日志文件以获取详细信息" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "上传的书籍可能已经存在,建议修改后重新上传: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "文件 %(filename)s 无法保存到临时目录" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "移动封面文件失败 %(file)s:%(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "文件 %(file)s 已上传" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "转换的源或目的格式缺失" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "书籍已经被成功加入到 %(book_format)s 格式转换队列" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "转换此书籍时出现错误: %(res)s" @@ -596,174 +600,174 @@ msgstr "Google Drive 设置未完成,请尝试停用并再次激活Google云 msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "回调域名尚未被校验,请在google开发者控制台按步骤校验域名" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "找不到id为 %(book)d 的书籍的 %(format)s 格式" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Google Drive %(fn)s 上找不到 %(format)s" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "找不到 %(format)s:%(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "发送到Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "此邮件已经通过Calibre-Web发送。" -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web测试邮件" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "测试邮件" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "开启Calibre-Web之旅" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "用户注册电子邮件:%(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "转换 %(orig)s 到 %(format)s 并发送到Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "发送 %(format)s 到Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, python-format msgid "%(book)s send to Kindle" msgstr "%(book)s发送到Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "无法读取请求的文件。可能有错误的权限设置?" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "删除书的文件夹%(id)s失败,路径有子文件夹:%(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "删除书籍 %(id)s失败:%(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, 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:388 +#: cps/helper.py:385 #, 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:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "从“%(src)s”重命名为“%(dest)s”失败,出错信息:%(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Google Drive上找不到文件 %(file)s" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Google Drive上找不到书籍路径 %(path)s" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "使用此邮箱的账号已经存在。" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "此用户名已被使用" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "无效的邮件地址格式" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "下载封面时出错" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "封面格式出错" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "创建封面路径失败" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "封面文件不是有效的图片文件,或者无法存储" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "封面文件只支持jpg/jpeg/png/webp/bmp文件" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "封面文件内容无效" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "仅将jpg、jpeg文件作为封面文件" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "找不到Unrar执行文件" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "执行UnRar时出错" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "等待中" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "失败" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "已开始" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "已完成" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "未知状态" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "请不要使用localhost访问Calibre-Web,以便Kobo设备能获取有效的api_endpoint" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Kobo 设置" @@ -772,7 +776,7 @@ msgstr "Kobo 设置" msgid "Register with %(provider)s" msgstr "使用 %(provider)s 注册" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”身份登录" @@ -838,7 +842,7 @@ msgid "{} Stars" msgstr "{} 星" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "登录" @@ -1055,41 +1059,46 @@ msgstr "编辑书架" msgid "Sorry you are not allowed to create a public shelf" msgstr "抱歉,你没有创建公开书架的权限" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "书架 %(title)s 已创建" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "书架 %(title)s 已修改" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "发生错误" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "公共书架:%(title)s已经存在已经存在。" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "私有书架:%(title)s已经存在已经存在。" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "书籍已成功删除" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "修改书架 %(name)s 顺序" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "书架:%(name)s" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "打开书架出错。书架不存在或不可访问" @@ -1170,14 +1179,14 @@ msgstr "分类:%(name)s" msgid "Language: %(name)s" msgstr "语言:%(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "高级搜索" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "搜索" @@ -1197,102 +1206,102 @@ msgstr "文件格式列表" msgid "Tasks" msgstr "任务列表" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "出版时间晚于 " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "出版时间早于 " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "评分 <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "评分 >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "阅读状态 = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "搜索自定义列时出错,请重启 Calibre-Web" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "书籍已经成功加入 %(kindlemail)s 的发送队列" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "糟糕!发送这本书籍的时候出现错误:%(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "请先配置您的kindle邮箱。" -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "邮件服务未配置,请联系网站管理员!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "注册" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "您的电子邮件不允许注册" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "确认邮件已经发送到您的邮箱。" -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "无法激活LDAP认证" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "后备登录“%(nickname)s”:无法访问LDAP服务器,或用户未知" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "无法登录:%(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "用户名或密码错误" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "新密码已发送到您的邮箱" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "请输入有效的用户名进行密码重置" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”登录" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的用户配置" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "资料已更新" @@ -1329,7 +1338,7 @@ msgstr "找不到转换后的文件或文件夹%(folder)s中有多个文件" msgid "Ebook-converter failed: %(error)s" msgstr "电子书转换器失败: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre 运行失败,错误信息:%(error)s" @@ -1369,7 +1378,7 @@ msgid "Upload" msgstr "上传书籍" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "下载书籍" @@ -1535,39 +1544,38 @@ msgstr "详情" msgid "Current version" msgstr "当前版本" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "检查更新" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "执行更新" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "您确定要重启吗?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "确定" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "取消" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "您确定要关闭吗?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "正在更新,请不要刷新页面" @@ -1580,39 +1588,39 @@ msgid "In Library" msgstr "在书库" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "按图书日期排序,最新优先" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "按图书日期排序,最旧优先" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "按标题按字母顺序排序" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "按标题逆字母顺序排序" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "按出版日期排序,最新优先" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "按出版日期排序,最旧优先" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "减少" @@ -2450,12 +2458,12 @@ msgid "Sort descending according to download count" msgstr "按下载数逆序排序" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "按作者字母顺序排序" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "按作者逆字母顺序排序" @@ -2560,7 +2568,7 @@ msgstr "错误" msgid "Upload done, processing, please wait..." msgstr "上传完成,正在处理,请稍候..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "设置" @@ -2709,7 +2717,7 @@ msgstr "Caliebre-Web电子书路径" msgid "epub Reader" msgstr "epub阅读器" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "打开侧栏时重排文本。" @@ -2937,30 +2945,26 @@ msgstr "从:" msgid "To:" msgstr "到:" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "删除此书架" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "编辑书架属性" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "手动排列书籍排列顺序" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "禁止改变顺序" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "允许改变顺序" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "书架将会从所有用户中删除" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "书架将被公开" diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo index 4a8c7cdd..6ca6555d 100644 Binary files a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo and b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.po index a7c87e24..8fea62e8 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: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: 2020-09-27 22:18+0800\n" "Last-Translator: xlivevil \n" "Language: zh_TW\n" @@ -26,7 +26,7 @@ msgstr "未安裝" msgid "installed" msgstr "已安裝" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "統計" @@ -46,9 +46,9 @@ msgstr "重新連接成功" msgid "Unknown command" msgstr "未知命令" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "未知" @@ -75,7 +75,7 @@ msgstr "管理用戶" msgid "All" msgstr "全部" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "找不到用戶" @@ -92,7 +92,7 @@ msgstr "顯示全部" msgid "Malformed request" msgstr "格式錯誤的請求" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "訪客名稱無法更改" @@ -100,7 +100,7 @@ msgstr "訪客名稱無法更改" msgid "Guest can't have this role" msgstr "遊客無法擁有此角色" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "管理員賬戶不存在,無法刪除管理員角色" @@ -144,7 +144,7 @@ msgstr "無效的閱讀列" msgid "Invalid Restricted Column" msgstr "無效的限制列" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web配置已更新" @@ -160,7 +160,7 @@ msgstr "您確定要刪除此網域嗎?" msgid "Do you really want to delete this user?" msgstr "您確定要刪除此用戶嗎?" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "您確定要刪除此書架嗎?" @@ -204,275 +204,275 @@ msgstr "標籤未找到" msgid "Invalid Action" msgstr "無效的動作" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "拒絕" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "允許" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json 未為 Web 應用程序配置" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "日誌文件路徑無效,請輸入正確的路徑" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "訪問日誌路徑無效,請輸入正確的路徑" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "請輸入LDAP主機、端口、DN和用戶對象標識符" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "請輸入一個LDAP服務賬號和密碼 " -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "請輸入一個LDAP服務賬號" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP群組對象過濾器需要一個具有“%s”格式標識符號" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP群組對象過濾器的括號不匹配" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP用戶對象過濾器需要一個具有“%s”格式標識符" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP用戶對象過濾器的括號不匹配" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP成員用戶過濾器需要有一個“%s”格式標識符號" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP成員用戶過濾器中有不匹配的括號" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CA證書、證書或密鑰位置無效,請輸入正確的路徑" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "設置數據庫不可寫入" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "數據庫路徑無效,請輸入正確的路徑" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "數據庫不可寫入" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "密鑰文件路徑無效,請輸入正確的路徑" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "證書文件路徑無效,請輸入正確的路徑" -#: cps/admin.py:1335 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "郵件服務器設置已更新" -#: cps/admin.py:1343 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "數據庫配置" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "請填寫所有欄位!" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "郵箱不在有效網域中" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "添加新用戶" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "用戶“%(user)s”已創建" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "使用此郵箱或用戶名的賬號已經存在。" -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "用戶“%(nick)s”已刪除" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "無法刪除訪客用戶" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "管理員賬戶不存在,無法刪除用戶" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "編輯用戶 %(nick)s" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "用戶“%(nick)s”已更新" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "發生一個未知錯誤,請稍後再試。" -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "編輯郵件服務器設置" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "G-Mail賬號驗證成功" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "發送給%(email)s的測試郵件已進入隊列。請檢查任務結果" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "發送測試郵件時出錯:%(res)s" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "請先配置您的郵箱地址..." -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "郵件服務器設置已更新" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "用戶 %(user)s 的密碼已重置" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "請先配置SMTP郵箱設置..." -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "日誌文件查看器" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "正在請求更新包" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "正在下載更新包" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "正在解壓更新包" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "正在替換文件" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "數據庫連接已關閉" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "正在停止服務器" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "更新完成,請點擊確定並刷新頁面" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "更新失敗:" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "HTTP錯誤" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "連接錯誤" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "建立連接超時" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "一般錯誤" -#: cps/admin.py:1720 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "更新文件無法保存在臨時目錄中" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "更新時檔案無法替換變更" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "未能提取至少一個LDAP用戶" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "未能創建至少一個LDAP用戶" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "錯誤:%(ldaperror)s" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "錯誤:在LDAP服務器的響應中沒有返回用戶" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "數據庫中沒有找到至少一個LDAP用戶" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} 用戶被成功導入" @@ -484,108 +484,112 @@ msgstr "未配置" msgid "Execution permissions missing" msgstr "缺少執行權限" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "自定義列號:%(column)d在Calibre數據庫中不存在" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "書籍格式已成功刪除" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "書籍已成功刪除" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "糟糕!選擇書名無法打開。文件不存在或者文件不可訪問" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "編輯元數據" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s 不是一個有效的數值,忽略" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, fuzzy, python-format msgid "'%(langname)s' is not a valid language" msgstr "%(langname)s 不是一種有效語言" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "不能上傳文件附檔名為“%(ext)s”的文件到此服務器" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "要上傳的文件必須具有附檔名" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "創建路徑 %(path)s 失敗(權限拒絕)。" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "保存文件 %(file)s 失敗。" -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "數據庫錯誤:%(error)s。" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "已添加 %(ext)s 格式到 %(book)s" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "標識符不區分大小寫,覆蓋舊標識符" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "已成功更新元數據" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "編輯書籍出錯,請檢查日誌文件以獲取詳細信息" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "上傳的書籍可能已經存在,建議修改後重新上傳: " -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "文件 %(filename)s 無法保存到臨時目錄" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "移動封面文件失敗 %(file)s:%(error)s" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "文件 %(file)s 已上傳" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "轉換的來源或目的格式不存在" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "書籍已經被成功加入到 %(book_format)s 格式轉換隊列" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "轉換此書籍時出現錯誤: %(res)s" @@ -598,174 +602,174 @@ msgstr "Google Drive 設置未完成,請嘗試停用並再次激活Google雲 msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "回調網域名稱尚未被驗證,請在google開發者控制台按步驟驗證網域名稱" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "找不到id為 %(book)d 的書籍的 %(format)s 格式" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Google Drive %(fn)s 上找不到 %(format)s" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "找不到 %(format)s:%(fn)s" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "發送到Kindle" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "此郵件已經通過Calibre-Web發送。" -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web測試郵件" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "測試郵件" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "開啟Calibre-Web之旅" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "用戶註冊電子郵件:%(name)s" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "轉換 %(orig)s 到 %(format)s 並發送到Kindle" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "發送 %(format)s 到Kindle" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, python-format msgid "%(book)s send to Kindle" msgstr "%(book)s發送到Kindle" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "無法讀取請求的文件。可能有錯誤的權限設置?" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "刪除書的文件夾%(id)s失敗,路徑有子文件夾:%(path)s" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "刪除書籍 %(id)s失敗:%(message)s" -#: cps/helper.py:333 +#: cps/helper.py:330 #, 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:388 +#: cps/helper.py:385 #, 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:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "從“%(src)s”重命名為“%(dest)s”失敗,錯誤信息:%(error)s" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Google Drive上找不到文件 %(file)s" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Google Drive上找不到書籍路徑 %(path)s" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "使用此郵箱的賬號已經存在。" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "此用戶名已被使用" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "無效的郵件地址格式" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "下載封面時出錯" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "封面格式出錯" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "創建封面路徑失敗" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "封面文件不是有效的圖片文件,或者無法儲存" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "封面文件只支持jpg/jpeg/png/webp/bmp格式文件" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "僅將jpg、jpeg文件作為封面文件" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "找不到Unrar執行文件" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "執行UnRar時出錯" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "等待中" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "失敗" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "已開始" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "已完成" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "未知狀態" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "請不要使用localhost訪問Calibre-Web,以便Kobo設備能獲取有效的api_endpoint" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "Kobo 設置" @@ -774,7 +778,7 @@ msgstr "Kobo 設置" msgid "Register with %(provider)s" msgstr "使用 %(provider)s 註冊" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "您現在已以“%(nickname)s”身份登入" @@ -840,7 +844,7 @@ msgid "{} Stars" msgstr "{} 星" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "登入" @@ -1057,41 +1061,46 @@ msgstr "編輯書架" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "書架 %(title)s 已創建" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "書架 %(title)s 已修改" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "發生錯誤" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "公共書架:%(title)s已經存在已經存在。" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "私有書架:%(title)s已經存在。" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +#, fuzzy +msgid "Shelf successfully deleted" +msgstr "書籍已成功刪除" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "修改書架 %(name)s 順序" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "書架:%(name)s" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "打開書架出錯。書架不存在或不可訪問" @@ -1172,14 +1181,14 @@ msgstr "分類:%(name)s" msgid "Language: %(name)s" msgstr "語言:%(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "進階搜尋" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "搜尋" @@ -1199,102 +1208,102 @@ msgstr "文件格式列表" msgid "Tasks" msgstr "任務列表" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "出版時間晚於 " -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "出版時間早於 " -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "評分 <= %(rating)s" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "評分 >= %(rating)s" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "閱讀狀態 = %(status)s" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "搜詢自定義欄位時出錯,請重啟 Calibre-Web" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "書籍已經成功加入 %(kindlemail)s 的發送隊列" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "糟糕!發送這本書籍的時候出現錯誤:%(res)s" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "請先設置您的kindle郵箱。" -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "郵件服務未配置,請聯繫網站管理員!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "註冊" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "您的電子郵件不允許註冊" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "確認郵件已經發送到您的郵箱。" -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "無法激活LDAP認證" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "備援登入“%(nickname)s”:無法訪問LDAP伺服器,或用戶未知" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "無法登入:%(message)s" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "用戶名或密碼錯誤" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "新密碼已發送到您的郵箱" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "請輸入有效的用戶名進行密碼重置" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "您現在已以“%(nickname)s”登入" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的用戶配置" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "資料已更新" @@ -1331,7 +1340,7 @@ msgstr "找不到轉換後的文件或文件夾%(folder)s中有多個文件" msgid "Ebook-converter failed: %(error)s" msgstr "電子書轉換器失敗: %(error)s" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre 運行失敗,錯誤信息:%(error)s" @@ -1371,7 +1380,7 @@ msgid "Upload" msgstr "上傳書籍" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "下載書籍" @@ -1537,39 +1546,38 @@ msgstr "詳情" msgid "Current version" msgstr "當前版本" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "檢查更新" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "執行更新" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "您確定要重啟嗎?" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "確定" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "取消" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "您確定要關閉嗎?" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "正在更新,請不要刷新頁面" @@ -1582,39 +1590,39 @@ msgid "In Library" msgstr "在書庫" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "按圖書日期排序,最新優先" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "按圖書日期排序,最舊優先" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "按標題按字母順序排序" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "按標題逆字母順序排序" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "按出版日期排序,最新優先" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "按出版日期排序,最舊優先" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "減少" @@ -2457,12 +2465,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "按作者字母順序排序" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "按作者逆字母順序排序" @@ -2567,7 +2575,7 @@ msgstr "錯誤" msgid "Upload done, processing, please wait..." msgstr "上傳完成,正在處理中,請稍候..." -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "設置" @@ -2716,7 +2724,7 @@ msgstr "Caliebre-Web電子書路徑" msgid "epub Reader" msgstr "epub閱讀器" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "打開側欄時重排文本。" @@ -2944,30 +2952,26 @@ msgstr "從:" msgid "To:" msgstr "到:" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "刪除此書架" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "編輯書架屬性" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "手動排列書籍排列順序" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "禁止改變順序" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "允許改變順序" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "書架將會從所有用戶中刪除" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "書架將被公開" diff --git a/cps/ub.py b/cps/ub.py index c074acc7..c1d6d24c 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -427,8 +427,8 @@ class KoboReadingState(Base): book_id = Column(Integer) last_modified = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) priority_timestamp = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) - current_bookmark = relationship("KoboBookmark", uselist=False, backref="kobo_reading_state", cascade="all") - statistics = relationship("KoboStatistics", uselist=False, backref="kobo_reading_state", cascade="all") + current_bookmark = relationship("KoboBookmark", uselist=False, backref="kobo_reading_state", cascade="all, delete") + statistics = relationship("KoboStatistics", uselist=False, backref="kobo_reading_state", cascade="all, delete") class KoboBookmark(Base): @@ -779,6 +779,14 @@ def create_admin_user(session): except Exception: session.rollback() +def ini(): + global app_DB_path + engine = create_engine(u'sqlite:///{0}'.format(app_DB_path), echo=False) + + Session = scoped_session(sessionmaker()) + Session.configure(bind=engine) + return Session() + def init_db(app_db_path): # Open session for database connection @@ -836,12 +844,13 @@ def dispose(): except Exception: pass -def session_commit(success=None): +def session_commit(success=None, sess=None): + s = sess if sess else session try: - session.commit() + s.commit() if success: log.info(success) except (exc.OperationalError, exc.InvalidRequestError) as e: - session.rollback() + s.rollback() log.debug_or_exception(e) return "" diff --git a/cps/web.py b/cps/web.py index ded72ad0..7ecb7e0e 100644 --- a/cps/web.py +++ b/cps/web.py @@ -1104,7 +1104,8 @@ def get_tasks_status(): return render_title_template('tasks.html', entries=answer, title=_(u"Tasks"), page="tasks") -@app.route("/reconnect") +# method is available without login and not protected by CSRF to make it easy reachable +@app.route("/reconnect", methods=['GET']) def reconnect(): calibre_db.reconnect_db(config, ub.app_DB_path) return json.dumps({}) @@ -1117,7 +1118,7 @@ def reconnect(): def search(): term = request.args.get("query") if term: - return redirect(url_for('web.books_list', data="search", sort_param='stored', query=term)) + return redirect(url_for('web.books_list', data="search", sort_param='stored', query=term.strip())) else: return render_title_template('search.html', searchterm="", @@ -1501,7 +1502,7 @@ def download_link(book_id, book_format, anyname): return get_download_link(book_id, book_format, client) -@web.route('/send///') +@web.route('/send///', methods=["POST"]) @login_required @download_required def send_to_kindle(book_id, book_format, convert): diff --git a/messages.pot b/messages.pot index 5588247f..7fc39068 100644 --- a/messages.pot +++ b/messages.pot @@ -1,14 +1,14 @@ # Translations template for PROJECT. -# Copyright (C) 2021 ORGANIZATION +# Copyright (C) 2022 ORGANIZATION # This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2021. +# FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-12-14 17:51+0100\n" +"POT-Creation-Date: 2022-01-15 09:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgstr "" msgid "installed" msgstr "" -#: cps/about.py:138 +#: cps/about.py:145 msgid "Statistics" msgstr "" @@ -45,9 +45,9 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:703 cps/editbooks.py:717 -#: cps/editbooks.py:862 cps/editbooks.py:864 cps/editbooks.py:891 -#: cps/editbooks.py:907 cps/updater.py:584 cps/uploader.py:93 +#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 +#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 +#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 #: cps/uploader.py:103 msgid "Unknown" msgstr "" @@ -74,7 +74,7 @@ msgstr "" msgid "All" msgstr "" -#: cps/admin.py:343 cps/admin.py:1595 +#: cps/admin.py:343 cps/admin.py:1615 msgid "User not found" msgstr "" @@ -91,7 +91,7 @@ msgstr "" msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1473 +#: cps/admin.py:418 cps/admin.py:1493 msgid "Guest Name can't be changed" msgstr "" @@ -99,7 +99,7 @@ msgstr "" msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1431 +#: cps/admin.py:442 cps/admin.py:1451 msgid "No admin user remaining, can't remove admin role" msgstr "" @@ -143,7 +143,7 @@ msgstr "" msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1312 +#: cps/admin.py:560 cps/admin.py:1323 msgid "Calibre-Web configuration updated" msgstr "" @@ -159,7 +159,7 @@ msgstr "" msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 cps/templates/shelf.html:91 +#: cps/admin.py:578 msgid "Are you sure you want to delete this shelf?" msgstr "" @@ -203,273 +203,273 @@ msgstr "" msgid "Invalid Action" msgstr "" -#: cps/admin.py:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:862 cps/admin.py:868 cps/admin.py:878 cps/admin.py:888 +#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:902 +#: cps/admin.py:913 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1025 +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1070 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1076 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1106 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1115 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1120 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1122 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1128 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1135 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1144 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1186 cps/admin.py:1297 cps/admin.py:1394 cps/admin.py:1501 -#: cps/admin.py:1570 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:274 cps/shelf.py:335 cps/shelf.py:370 cps/shelf.py:445 +#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 +#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1197 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1212 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1224 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1228 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1335 +#: cps/admin.py:1346 msgid "Database Settings updated" msgstr "" -#: cps/admin.py:1343 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "" -#: cps/admin.py:1359 cps/web.py:1478 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "" -#: cps/admin.py:1367 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1373 cps/admin.py:1523 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "" -#: cps/admin.py:1384 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/admin.py:1390 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1410 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/admin.py:1412 cps/admin.py:1413 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1416 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1489 cps/admin.py:1614 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/admin.py:1493 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "" -#: cps/admin.py:1497 cps/admin.py:1629 cps/web.py:1503 cps/web.py:1563 +#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1532 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "" -#: cps/admin.py:1551 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1577 +#: cps/admin.py:1597 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1580 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1582 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1584 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1626 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1632 cps/web.py:1443 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "" -#: cps/admin.py:1643 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1709 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "" -#: cps/admin.py:1710 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "" -#: cps/admin.py:1711 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "" -#: cps/admin.py:1712 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "" -#: cps/admin.py:1713 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "" -#: cps/admin.py:1714 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "" -#: cps/admin.py:1715 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/admin.py:1716 cps/admin.py:1717 cps/admin.py:1718 cps/admin.py:1719 -#: cps/admin.py:1720 cps/admin.py:1721 +#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 +#: cps/admin.py:1740 cps/admin.py:1741 msgid "Update failed:" msgstr "" -#: cps/admin.py:1716 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 msgid "HTTP Error" msgstr "" -#: cps/admin.py:1717 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 msgid "Connection error" msgstr "" -#: cps/admin.py:1718 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 msgid "Timeout while establishing connection" msgstr "" -#: cps/admin.py:1719 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 msgid "General error" msgstr "" -#: cps/admin.py:1720 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1721 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1745 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1790 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1803 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1807 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1840 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1842 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -481,108 +481,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:648 cps/web.py:667 cps/web.py:1154 +#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:305 cps/editbooks.py:307 +#: cps/editbooks.py:300 cps/editbooks.py:302 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:314 cps/editbooks.py:316 +#: cps/editbooks.py:309 cps/editbooks.py:311 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:372 cps/editbooks.py:759 cps/web.py:523 cps/web.py:1702 -#: cps/web.py:1743 cps/web.py:1810 +#: cps/editbooks.py:361 +msgid "You are missing permissions to delete books" +msgstr "" + +#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 +#: cps/web.py:1744 cps/web.py:1811 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/editbooks.py:406 +#: cps/editbooks.py:410 msgid "edit metadata" msgstr "" -#: cps/editbooks.py:454 +#: cps/editbooks.py:458 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:490 cps/editbooks.py:954 +#: cps/editbooks.py:494 cps/editbooks.py:958 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "" -#: cps/editbooks.py:630 cps/editbooks.py:981 +#: cps/editbooks.py:634 cps/editbooks.py:985 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:638 cps/editbooks.py:989 msgid "File to be uploaded must have an extension" msgstr "" -#: cps/editbooks.py:646 +#: cps/editbooks.py:650 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "" -#: cps/editbooks.py:651 +#: cps/editbooks.py:655 #, python-format msgid "Failed to store file %(file)s." msgstr "" -#: cps/editbooks.py:669 cps/editbooks.py:1072 cps/web.py:1663 +#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/editbooks.py:674 +#: cps/editbooks.py:678 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "" -#: cps/editbooks.py:810 +#: cps/editbooks.py:814 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:844 +#: cps/editbooks.py:848 msgid "Metadata successfully updated" msgstr "" -#: cps/editbooks.py:857 +#: cps/editbooks.py:861 msgid "Error editing book, please check logfile for details" msgstr "" -#: cps/editbooks.py:895 +#: cps/editbooks.py:899 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:993 +#: cps/editbooks.py:997 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:1012 +#: cps/editbooks.py:1016 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1059 +#: cps/editbooks.py:1063 #, python-format msgid "File %(file)s uploaded" msgstr "" -#: cps/editbooks.py:1084 +#: cps/editbooks.py:1088 msgid "Source or destination format for conversion missing" msgstr "" -#: cps/editbooks.py:1092 +#: cps/editbooks.py:1096 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1100 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "" @@ -595,174 +599,174 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "" -#: cps/helper.py:80 +#: cps/helper.py:77 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:86 cps/tasks/convert.py:73 +#: cps/helper.py:83 cps/tasks/convert.py:73 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:91 +#: cps/helper.py:88 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:96 cps/helper.py:220 cps/templates/detail.html:41 +#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "" -#: cps/helper.py:97 cps/helper.py:114 cps/helper.py:222 +#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:112 +#: cps/helper.py:109 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:113 +#: cps/helper.py:110 msgid "Test e-mail" msgstr "" -#: cps/helper.py:130 +#: cps/helper.py:127 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:135 +#: cps/helper.py:132 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:146 cps/helper.py:152 +#: cps/helper.py:143 cps/helper.py:149 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "" -#: cps/helper.py:171 cps/helper.py:175 cps/helper.py:179 +#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 #, python-format msgid "Send %(format)s to Kindle" msgstr "" -#: cps/helper.py:219 cps/tasks/convert.py:90 +#: cps/helper.py:216 cps/tasks/convert.py:90 #, python-format msgid "%(book)s send to Kindle" msgstr "" -#: cps/helper.py:224 +#: cps/helper.py:221 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "" -#: cps/helper.py:316 +#: cps/helper.py:313 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:322 +#: cps/helper.py:319 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:333 +#: cps/helper.py:330 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:388 +#: cps/helper.py:385 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:403 +#: cps/helper.py:400 #, python-format msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446 +#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:467 +#: cps/helper.py:464 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "" -#: cps/helper.py:507 cps/web.py:1658 +#: cps/helper.py:504 cps/web.py:1659 msgid "Found an existing account for this e-mail address" msgstr "" -#: cps/helper.py:515 +#: cps/helper.py:512 msgid "This username is already taken" msgstr "" -#: cps/helper.py:525 +#: cps/helper.py:522 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:595 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:601 +#: cps/helper.py:598 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:611 +#: cps/helper.py:608 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:627 +#: cps/helper.py:624 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:638 +#: cps/helper.py:635 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:648 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:655 +#: cps/helper.py:652 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:707 +#: cps/helper.py:704 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:718 +#: cps/helper.py:715 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:766 +#: cps/helper.py:763 msgid "Waiting" msgstr "" -#: cps/helper.py:768 +#: cps/helper.py:765 msgid "Failed" msgstr "" -#: cps/helper.py:770 +#: cps/helper.py:767 msgid "Started" msgstr "" -#: cps/helper.py:772 +#: cps/helper.py:769 msgid "Finished" msgstr "" -#: cps/helper.py:774 +#: cps/helper.py:771 msgid "Unknown Status" msgstr "" -#: cps/kobo_auth.py:131 +#: cps/kobo_auth.py:127 msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:134 cps/kobo_auth.py:162 +#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 msgid "Kobo Setup" msgstr "" @@ -771,7 +775,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1534 +#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "" @@ -837,7 +841,7 @@ msgid "{} Stars" msgstr "" #: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1583 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "" @@ -1054,41 +1058,45 @@ msgstr "" msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:261 +#: cps/shelf.py:266 #, python-format msgid "Shelf %(title)s created" msgstr "" -#: cps/shelf.py:264 +#: cps/shelf.py:269 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/shelf.py:278 +#: cps/shelf.py:283 msgid "There was an error" msgstr "" -#: cps/shelf.py:300 +#: cps/shelf.py:305 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:311 +#: cps/shelf.py:316 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:380 +#: cps/shelf.py:337 +msgid "Shelf successfully deleted" +msgstr "" + +#: cps/shelf.py:386 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/shelf.py:450 +#: cps/shelf.py:456 #, python-format msgid "Shelf: '%(name)s'" msgstr "" -#: cps/shelf.py:454 +#: cps/shelf.py:460 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" @@ -1169,14 +1177,14 @@ msgstr "" msgid "Language: %(name)s" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1370 +#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 msgid "Advanced Search" msgstr "" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1076 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "" @@ -1196,102 +1204,102 @@ msgstr "" msgid "Tasks" msgstr "" -#: cps/web.py:1214 +#: cps/web.py:1215 msgid "Published after " msgstr "" -#: cps/web.py:1221 +#: cps/web.py:1222 msgid "Published before " msgstr "" -#: cps/web.py:1243 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "" -#: cps/web.py:1245 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "" -#: cps/web.py:1247 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1352 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1448 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "" -#: cps/web.py:1452 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:1454 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1471 +#: cps/web.py:1472 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1472 -#: cps/web.py:1479 cps/web.py:1485 cps/web.py:1504 cps/web.py:1508 -#: cps/web.py:1514 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 +#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 +#: cps/web.py:1515 msgid "Register" msgstr "" -#: cps/web.py:1506 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1509 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1523 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1542 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1548 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1552 cps/web.py:1577 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "" -#: cps/web.py:1559 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1565 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1572 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1638 cps/web.py:1687 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:1654 +#: cps/web.py:1655 msgid "Profile updated" msgstr "" @@ -1328,7 +1336,7 @@ msgstr "" msgid "Ebook-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:241 +#: cps/tasks/convert.py:245 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1368,7 +1376,7 @@ msgid "Upload" msgstr "" #: cps/templates/admin.html:22 cps/templates/detail.html:18 -#: cps/templates/detail.html:27 cps/templates/shelf.html:6 +#: cps/templates/detail.html:27 cps/templates/shelf.html:7 #: cps/templates/user_table.html:146 msgid "Download" msgstr "" @@ -1534,39 +1542,38 @@ msgstr "" msgid "Current version" msgstr "" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:194 msgid "Check for Update" msgstr "" -#: cps/templates/admin.html:196 +#: cps/templates/admin.html:195 msgid "Perform Update" msgstr "" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:208 msgid "Are you sure you want to restart?" msgstr "" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/admin.html:248 cps/templates/config_db.html:70 -#: cps/templates/shelf.html:96 +#: cps/templates/admin.html:213 cps/templates/admin.html:227 +#: cps/templates/admin.html:247 cps/templates/config_db.html:70 msgid "OK" msgstr "" -#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:214 cps/templates/admin.html:228 #: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:173 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/shelf.html:97 -#: cps/templates/shelf_edit.html:27 cps/templates/user_edit.html:144 +#: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 +#: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:227 +#: cps/templates/admin.html:226 msgid "Are you sure you want to shutdown?" msgstr "" -#: cps/templates/admin.html:239 +#: cps/templates/admin.html:238 msgid "Updating, please do not reload this page" msgstr "" @@ -1579,39 +1586,39 @@ msgid "In Library" msgstr "" #: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:17 +#: cps/templates/search.html:29 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" #: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:18 +#: cps/templates/search.html:30 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" #: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:19 +#: cps/templates/search.html:31 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" #: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:20 +#: cps/templates/search.html:32 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" #: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:23 +#: cps/templates/search.html:35 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" #: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:24 +#: cps/templates/search.html:36 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" #: cps/templates/author.html:57 cps/templates/author.html:117 #: cps/templates/discover.html:30 cps/templates/index.html:29 #: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:52 +#: cps/templates/shelf.html:54 msgid "reduce" msgstr "" @@ -2449,12 +2456,12 @@ msgid "Sort descending according to download count" msgstr "" #: cps/templates/index.html:76 cps/templates/search.html:33 -#: cps/templates/shelf.html:21 +#: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" #: cps/templates/index.html:77 cps/templates/search.html:34 -#: cps/templates/shelf.html:22 +#: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" @@ -2559,7 +2566,7 @@ msgstr "" msgid "Upload done, processing, please wait..." msgstr "" -#: cps/templates/layout.html:76 cps/templates/read.html:71 +#: cps/templates/layout.html:76 cps/templates/read.html:72 #: cps/templates/readcbr.html:84 cps/templates/readcbr.html:108 msgid "Settings" msgstr "" @@ -2708,7 +2715,7 @@ msgstr "" msgid "epub Reader" msgstr "" -#: cps/templates/read.html:74 +#: cps/templates/read.html:75 msgid "Reflow text when sidebars are open." msgstr "" @@ -2936,30 +2943,26 @@ msgstr "" msgid "To:" msgstr "" -#: cps/templates/shelf.html:11 +#: cps/templates/shelf.html:12 msgid "Delete this Shelf" msgstr "" -#: cps/templates/shelf.html:12 +#: cps/templates/shelf.html:13 msgid "Edit Shelf Properties" msgstr "" -#: cps/templates/shelf.html:14 +#: cps/templates/shelf.html:16 msgid "Arrange books manually" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Disable Change order" msgstr "" -#: cps/templates/shelf.html:15 +#: cps/templates/shelf.html:17 msgid "Enable Change order" msgstr "" -#: cps/templates/shelf.html:94 -msgid "Shelf will be deleted for all users" -msgstr "" - #: cps/templates/shelf_edit.html:14 msgid "Share with Everyone" msgstr "" diff --git a/optional-requirements.txt b/optional-requirements.txt index 03f58bb5..92a01488 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -1,4 +1,5 @@ # GDrive Integration +google-api-python-client>=1.7.11,<2.36.0 gevent>20.6.0,<22.0.0 greenlet>=0.4.17,<1.2.0 httplib2>=0.9.2,<0.21.0 @@ -8,34 +9,32 @@ pyasn1-modules>=0.0.8,<0.3.0 pyasn1>=0.1.9,<0.5.0 PyDrive2>=1.3.1,<1.11.0 PyYAML>=3.12 -rsa>=3.4.2,<4.8.0 +rsa>=3.4.2,<4.9.0 six>=1.10.0,<1.17.0 -# Gdrive and Gmail integration -google-api-python-client>=1.7.11,<2.32.0 - # Gmail google-auth-oauthlib>=0.4.3,<0.5.0 +google-api-python-client>=1.7.11,<2.36.0 # goodreads goodreads>=0.3.2,<0.4.0 python-Levenshtein>=0.12.0,<0.13.0 # ldap login -python-ldap>=3.0.0,<3.4.0 +python-ldap>=3.0.0,<3.5.0 Flask-SimpleLDAP>=1.4.0,<1.5.0 -#oauth +# oauth Flask-Dance>=2.0.0,<5.2.0 -SQLAlchemy-Utils>=0.33.5,<0.38.0 +SQLAlchemy-Utils>=0.33.5,<0.39.0 -# extracting metadata +# metadata extraction rarfile>=2.7 -scholarly>=1.2.0, <1.5 +scholarly>=1.2.0,<1.6 -# other +# Comics natsort>=2.2.0,<8.1.0 comicapi>=2.2.0,<2.3.0 -#Kobo integration -jsonschema>=3.2.0,<4.3.0 +# Kobo integration +jsonschema>=3.2.0,<4.5.0 diff --git a/requirements.txt b/requirements.txt index 1db961fe..0b95dfa3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,10 +7,11 @@ Flask>=1.0.2,<2.1.0 iso-639>=0.4.5,<0.5.0 PyPDF3>=1.0.0,<1.0.6 pytz>=2016.10 -requests>=2.11.1,<2.25.0 +requests>=2.11.1,<2.28.0 SQLAlchemy>=1.3.0,<1.5.0 tornado>=4.1,<6.2 Wand>=0.4.4,<0.7.0 -unidecode>=0.04.19,<1.3.0 -lxml>=3.8.0,<4.7.0 +unidecode>=0.04.19,<1.4.0 +lxml>=3.8.0,<4.8.0 flask-wtf>=0.14.2,<1.1.0 +chardet>=3.0.0,<4.1.0 diff --git a/setup.cfg b/setup.cfg index fc74a1ed..d372be87 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,93 +1,94 @@ [metadata] name = calibreweb url = https://github.com/janeczku/calibre-web -project_urls = - Bug Tracker = https://github.com/janeczku/calibre-web/issues - Release Management = https://github.com/janeczku/calibre-web/releases - Documentation = https://github.com/janeczku/calibre-web/wiki - Source Code = https://github.com/janeczku/calibre-web +project_urls = + Bug Tracker = https://github.com/janeczku/calibre-web/issues + Release Management = https://github.com/janeczku/calibre-web/releases + Documentation = https://github.com/janeczku/calibre-web/wiki + Source Code = https://github.com/janeczku/calibre-web description = Web app for browsing, reading and downloading eBooks stored in a Calibre database. long_description = file: README.md -long_description_content_type= text/markdown +long_description_content_type = text/markdown author = @OzzieIsaacs author_email = Ozzie.Fernandez.Isaacs@googlemail.com maintainer = @OzzieIsaacs license = GPLv3+ license_file = LICENSE -classifiers = - Development Status :: 5 - Production/Stable - License :: OSI Approved :: GNU Affero General Public License v3 - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Operating System :: OS Independent -keywords = - calibre - calibre-web - library +classifiers = + Development Status :: 5 - Production/Stable + License :: OSI Approved :: GNU Affero General Public License v3 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Operating System :: OS Independent +keywords = + calibre + calibre-web + library python_requires = >=3.5 [options.entry_points] -console_scripts = - cps = calibreweb:main +console_scripts = + cps = calibreweb:main + [options] include_package_data = True -install_requires = - Babel>=1.3,<3.0 - Flask-Babel>=0.11.1,<2.1.0 - Flask-Login>=0.3.2,<0.5.1 - Flask-Principal>=0.3.2,<0.5.1 - backports_abc>=0.4 - Flask>=1.0.2,<2.1.0 - iso-639>=0.4.5,<0.5.0 - PyPDF3>=1.0.0,<1.0.6 - pytz>=2016.10 - requests>=2.11.1,<2.25.0 - SQLAlchemy>=1.3.0,<1.5.0 - tornado>=4.1,<6.2 - Wand>=0.4.4,<0.7.0 - unidecode>=0.04.19,<1.3.0 - lxml>=3.8.0,<4.7.0 - flask-wtf>=0.14.2,<1.1.0 +install_requires = + Babel>=1.3,<3.0 + Flask-Babel>=0.11.1,<2.1.0 + Flask-Login>=0.3.2,<0.5.1 + Flask-Principal>=0.3.2,<0.5.1 + backports_abc>=0.4 + Flask>=1.0.2,<2.1.0 + iso-639>=0.4.5,<0.5.0 + PyPDF3>=1.0.0,<1.0.6 + pytz>=2016.10 + requests>=2.11.1,<2.28.0 + SQLAlchemy>=1.3.0,<1.5.0 + tornado>=4.1,<6.2 + Wand>=0.4.4,<0.7.0 + unidecode>=0.04.19,<1.4.0 + lxml>=3.8.0,<4.8.0 + flask-wtf>=0.14.2,<1.1.0 + chardet>=3.0.0,<4.1.0 + [options.extras_require] -gdrive = - google-api-python-client>=1.7.11,<2.32.0 - gevent>20.6.0,<22.0.0 - greenlet>=0.4.17,<1.2.0 - httplib2>=0.9.2,<0.21.0 - oauth2client>=4.0.0,<4.1.4 - uritemplate>=3.0.0,<4.2.0 - pyasn1-modules>=0.0.8,<0.3.0 - pyasn1>=0.1.9,<0.5.0 - PyDrive2>=1.3.1,<1.11.0 - PyYAML>=3.12 - rsa>=3.4.2,<4.8.0 - six>=1.10.0,<1.17.0 -gmail = - google-auth-oauthlib>=0.4.3,<0.5.0 - google-api-python-client>=1.7.11,<2.32.0 -goodreads = - goodreads>=0.3.2,<0.4.0 - python-Levenshtein>=0.12.0,<0.13.0 -ldap = - python-ldap>=3.0.0,<3.4.0 - Flask-SimpleLDAP>=1.4.0,<1.5.0 -oauth = - Flask-Dance>=2.0.0,<5.2.0 - SQLAlchemy-Utils>=0.33.5,<0.38.0 -metadata = - rarfile>=2.7 - scholarly>=1.2.0,<1.5 -comics = - natsort>=2.2.0,<8.1.0 - comicapi>= 2.2.0,<2.3.0 -kobo = - jsonschema>=3.2.0,<4.3.0 - - +gdrive = + google-api-python-client>=1.7.11,<2.36.0 + gevent>20.6.0,<22.0.0 + greenlet>=0.4.17,<1.2.0 + httplib2>=0.9.2,<0.21.0 + oauth2client>=4.0.0,<4.1.4 + uritemplate>=3.0.0,<4.2.0 + pyasn1-modules>=0.0.8,<0.3.0 + pyasn1>=0.1.9,<0.5.0 + PyDrive2>=1.3.1,<1.11.0 + PyYAML>=3.12 + rsa>=3.4.2,<4.9.0 + six>=1.10.0,<1.17.0 +gmail = + google-auth-oauthlib>=0.4.3,<0.5.0 + google-api-python-client>=1.7.11,<2.36.0 +goodreads = + goodreads>=0.3.2,<0.4.0 + python-Levenshtein>=0.12.0,<0.13.0 +ldap = + python-ldap>=3.0.0,<3.5.0 + Flask-SimpleLDAP>=1.4.0,<1.5.0 +oauth = + Flask-Dance>=2.0.0,<5.2.0 + SQLAlchemy-Utils>=0.33.5,<0.39.0 +metadata = + rarfile>=2.7 + scholarly>=1.2.0,<1.6 +comics = + natsort>=2.2.0,<8.1.0 + comicapi>=2.2.0,<2.3.0 +kobo = + jsonschema>=3.2.0,<4.5.0 diff --git a/test/Calibre-Web TestSummary.html b/test/Calibre-Web TestSummary.html deleted file mode 100755 index 10e2e0ee..00000000 --- a/test/Calibre-Web TestSummary.html +++ /dev/null @@ -1,2947 +0,0 @@ - - - - Calibre-Web Tests - - - - - - - - - - - - - - - - - - - -
-

Calibre-Web Tests

-
-
-
-
-
-
- -
-
-
-
-
-
- -

Start Time: 2020-08-30 15:47:09

- -
-
-
-
- -

Stop Time: 2020-08-30 17:06:27

- -
-
-
-
-

Duration: 1h 7 min

-
-
-
-
-
- -
-
-
-
-
- - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Test Group/Test caseCountPassFailErrorSkipView
TestAnonymous1313000 - Detail -
-
TestAnonymous - test_check_locale_guest
-
PASS
-
TestAnonymous - test_guest_about
-
PASS
-
TestAnonymous - test_guest_change_visibility_category
-
PASS
-
TestAnonymous - test_guest_change_visibility_format
-
PASS
-
TestAnonymous - test_guest_change_visibility_hot
-
PASS
-
TestAnonymous - test_guest_change_visibility_language
-
PASS
-
TestAnonymous - test_guest_change_visibility_publisher
-
PASS
-
TestAnonymous - test_guest_change_visibility_rated
-
PASS
-
TestAnonymous - test_guest_change_visibility_rating
-
PASS
-
TestAnonymous - test_guest_change_visibility_series
-
PASS
-
TestAnonymous - test_guest_random_books_available
-
PASS
-
TestAnonymous - test_guest_restricted_settings_visibility
-
PASS
-
TestAnonymous - test_guest_visibility_sidebar
-
PASS
TestCli76001 - Detail -
-
TestCli - test_already_started
-
PASS
-
TestCli - test_bind_to_single_interface
-
PASS
-
TestCli - test_cli_SSL_files
-
PASS
-
TestCli - test_cli_different_folder
-
PASS
-
TestCli - test_cli_different_settings_database
-
PASS
-
TestCli - test_cli_gdrive_location
-
-
- SKIP -
- - - -
-
TestCli - test_environ_port_setting
-
PASS
TestCoverEditBooks10100 - Detail -
-
TestCoverEditBooks - test_upload_jpg
-
-
- FAIL -
- - - -
TestDeleteDatabase11000 - Detail -
-
TestDeleteDatabase - test_delete_books_in_database
-
PASS
TestEbookConvert1111000 - Detail -
-
TestEbookConvert - test_convert_deactivate
-
PASS
-
TestEbookConvert - test_convert_email
-
PASS
-
TestEbookConvert - test_convert_failed_and_email
-
PASS
-
TestEbookConvert - test_convert_only
-
PASS
-
TestEbookConvert - test_convert_parameter
-
PASS
-
TestEbookConvert - test_convert_wrong_excecutable
-
PASS
-
TestEbookConvert - test_email_failed
-
PASS
-
TestEbookConvert - test_email_only
-
PASS
-
TestEbookConvert - test_kindle_send_not_configured
-
PASS
-
TestEbookConvert - test_ssl_smtp_setup_error
-
PASS
-
TestEbookConvert - test_starttls_smtp_setup_error
-
PASS
TestEditAdditionalBooks55000 - Detail -
-
TestEditAdditionalBooks - test_delete_book
-
PASS
-
TestEditAdditionalBooks - test_upload_metadata_cbt
-
PASS
-
TestEditAdditionalBooks - test_upload_metadate_cbr
-
PASS
-
TestEditAdditionalBooks - test_writeonly_database
-
PASS
-
TestEditAdditionalBooks - test_writeonly_path
-
PASS
TestEditBooks3330102 - Detail -
-
TestEditBooks - test_download_book
-
PASS
-
TestEditBooks - test_edit_author
-
PASS
-
TestEditBooks - test_edit_category
-
PASS
-
TestEditBooks - test_edit_comments
-
PASS
-
TestEditBooks - test_edit_custom_bool
-
PASS
-
TestEditBooks - test_edit_custom_categories
-
PASS
-
TestEditBooks - test_edit_custom_float
-
PASS
-
TestEditBooks - test_edit_custom_int
-
PASS
-
TestEditBooks - test_edit_custom_rating
-
PASS
-
TestEditBooks - test_edit_custom_single_select
-
PASS
-
TestEditBooks - test_edit_custom_text
-
PASS
-
TestEditBooks - test_edit_language
-
PASS
-
TestEditBooks - test_edit_publisher
-
PASS
-
TestEditBooks - test_edit_publishing_date
-
-
- SKIP -
- - - -
-
TestEditBooks - test_edit_rating
-
PASS
-
TestEditBooks - test_edit_series
-
PASS
-
TestEditBooks - test_edit_title
-
PASS
-
TestEditBooks - test_rename_uppercase_lowercase
-
-
- SKIP -
- - - -
-
TestEditBooks - test_typeahead_author
-
PASS
-
TestEditBooks - test_typeahead_functions
-
PASS
-
TestEditBooks - test_typeahead_language
-
PASS
-
TestEditBooks - test_typeahead_publisher
-
PASS
-
TestEditBooks - test_typeahead_series
-
PASS
-
TestEditBooks - test_typeahead_tag
-
PASS
-
TestEditBooks - test_upload_book_cbr
-
PASS
-
TestEditBooks - test_upload_book_cbt
-
PASS
-
TestEditBooks - test_upload_book_cbz
-
PASS
-
TestEditBooks - test_upload_book_epub
-
PASS
-
TestEditBooks - test_upload_book_fb2
-
PASS
-
TestEditBooks - test_upload_book_lit
-
PASS
-
TestEditBooks - test_upload_book_mobi
-
PASS
-
TestEditBooks - test_upload_book_pdf
-
PASS
-
TestEditBooks - test_upload_cover_hdd
-
-
- FAIL -
- - - -
TestEditBooksGdrive11000 - Detail -
-
TestEditBooksGdrive - test_config_gdrive
-
PASS
TestSTARTTLS33000 - Detail -
-
TestSTARTTLS - test_STARTTLS
-
PASS
-
TestSTARTTLS - test_STARTTLS_SSL_setup_error
-
PASS
-
TestSTARTTLS - test_STARTTLS_resend_password
-
PASS
TestSSL44000 - Detail -
-
TestSSL - test_SSL_None_setup_error
-
PASS
-
TestSSL - test_SSL_STARTTLS_setup_error
-
PASS
-
TestSSL - test_SSL_logging_email
-
PASS
-
TestSSL - test_SSL_only
-
PASS
TestGoodreads33000 - Detail -
-
TestGoodreads - test_author_page
-
PASS
-
TestGoodreads - test_author_page_invalid
-
PASS
-
TestGoodreads - test_goodreads_about
-
PASS
TestCalibreHelper1616000 - Detail -
-
TestCalibreHelper - test_author_sort
-
PASS
-
TestCalibreHelper - test_author_sort_comma
-
PASS
-
TestCalibreHelper - test_author_sort_junior
-
PASS
-
TestCalibreHelper - test_author_sort_oneword
-
PASS
-
TestCalibreHelper - test_author_sort_roman
-
PASS
-
TestCalibreHelper - test_check_Limit_Length
-
PASS
-
TestCalibreHelper - test_check_char_replacement
-
PASS
-
TestCalibreHelper - test_check_chinese_Characters
-
PASS
-
TestCalibreHelper - test_check_deg_eur_replacement
-
PASS
-
TestCalibreHelper - test_check_doubleS
-
PASS
-
TestCalibreHelper - test_check_finish_Dot
-
PASS
-
TestCalibreHelper - test_check_high23
-
PASS
-
TestCalibreHelper - test_check_umlauts
-
PASS
-
TestCalibreHelper - test_random_password
-
PASS
-
TestCalibreHelper - test_split_authors
-
PASS
-
TestCalibreHelper - test_whitespaces
-
PASS
TestKoboSync88000 - Detail -
-
TestKoboSync - test_kobo_about
-
PASS
-
TestKoboSync - test_shelves_add_remove_books
-
PASS
-
TestKoboSync - test_sync_changed_book
-
PASS
-
TestKoboSync - test_sync_invalid
-
PASS
-
TestKoboSync - test_sync_reading_state
-
PASS
-
TestKoboSync - test_sync_shelf
-
PASS
-
TestKoboSync - test_sync_unchanged
-
PASS
-
TestKoboSync - test_sync_upload
-
PASS
TestLdapLogin1010000 - Detail -
-
TestLdapLogin - test_LDAP_SSL
-
PASS
-
TestLdapLogin - test_LDAP_STARTTLS
-
PASS
-
TestLdapLogin - test_LDAP_fallback_Login
-
PASS
-
TestLdapLogin - test_LDAP_import
-
PASS
-
TestLdapLogin - test_LDAP_login
-
PASS
-
TestLdapLogin - test_invalid_LDAP
-
PASS
-
TestLdapLogin - test_ldap_about
-
PASS
-
TestLdapLogin - test_ldap_authentication
-
PASS
-
TestLdapLogin - test_ldap_kobo_sync
-
PASS
-
TestLdapLogin - test_ldap_opds_download_book
-
PASS
TestLogging76001 - Detail -
-
TestLogging - test_access_log_recover
-
PASS
-
TestLogging - test_debug_log
-
PASS
-
TestLogging - test_failed_login
-
PASS
-
TestLogging - test_failed_register
-
-
- SKIP -
- - - -
-
TestLogging - test_logfile_change
-
PASS
-
TestLogging - test_logfile_recover
-
PASS
-
TestLogging - test_logviewer
-
PASS
TestLogin1111000 - Detail -
-
TestLogin - test_digest_login
-
PASS
-
TestLogin - test_login_capital_letters_user_unicode_password
-
PASS
-
TestLogin - test_login_delete_admin
-
PASS
-
TestLogin - test_login_empty_password
-
PASS
-
TestLogin - test_login_locale_select
-
PASS
-
TestLogin - test_login_protected
-
PASS
-
TestLogin - test_login_remember_me
-
PASS
-
TestLogin - test_login_rename_user
-
PASS
-
TestLogin - test_login_unicode_user_space_end_password
-
PASS
-
TestLogin - test_login_user_with_space_password_end_space
-
PASS
-
TestLogin - test_robots
-
PASS
TestOAuthLogin22000 - Detail -
-
TestOAuthLogin - test_oauth_about
-
PASS
-
TestOAuthLogin - test_visible_oauth
-
PASS
TestOPDSFeed2020000 - Detail -
-
TestOPDSFeed - test_opds
-
PASS
-
TestOPDSFeed - test_opds_author
-
PASS
-
TestOPDSFeed - test_opds_calibre_companion
-
PASS
-
TestOPDSFeed - test_opds_cover
-
PASS
-
TestOPDSFeed - test_opds_download_book
-
PASS
-
TestOPDSFeed - test_opds_formats
-
PASS
-
TestOPDSFeed - test_opds_guest_user
-
PASS
-
TestOPDSFeed - test_opds_hot
-
PASS
-
TestOPDSFeed - test_opds_language
-
PASS
-
TestOPDSFeed - test_opds_non_admin
-
PASS
-
TestOPDSFeed - test_opds_publisher
-
PASS
-
TestOPDSFeed - test_opds_random
-
PASS
-
TestOPDSFeed - test_opds_ratings
-
PASS
-
TestOPDSFeed - test_opds_read_unread
-
PASS
-
TestOPDSFeed - test_opds_search
-
PASS
-
TestOPDSFeed - test_opds_series
-
PASS
-
TestOPDSFeed - test_opds_shelf_access
-
PASS
-
TestOPDSFeed - test_opds_tags
-
PASS
-
TestOPDSFeed - test_opds_top_rated
-
PASS
-
TestOPDSFeed - test_recently_added
-
PASS
TestRegister77000 - Detail -
-
TestRegister - test_forgot_password
-
PASS
-
TestRegister - test_limit_domain
-
PASS
-
TestRegister - test_register_no_server
-
PASS
-
TestRegister - test_registering_only_email
-
PASS
-
TestRegister - test_registering_user
-
PASS
-
TestRegister - test_registering_user_fail
-
PASS
-
TestRegister - test_user_change_password
-
PASS
TestShelf109001 - Detail -
-
TestShelf - test_add_shelf_from_search
-
PASS
-
TestShelf - test_arrange_shelf
-
PASS
-
TestShelf - test_delete_book_of_shelf
-
PASS
-
TestShelf - test_private_shelf
-
PASS
-
TestShelf - test_public_private_shelf
-
PASS
-
TestShelf - test_public_shelf
-
PASS
-
TestShelf - test_rename_shelf
-
PASS
-
TestShelf - test_shelf_action_non_shelf_edit_role
-
PASS
-
TestShelf - test_shelf_database_change
-
-
- SKIP -
- - - -
-
TestShelf - test_shelf_long_name
-
PASS
TestUpdater87001 - Detail -
-
TestUpdater - test_check_update_nightly_errors
-
PASS
-
TestUpdater - test_check_update_nightly_request_errors
-
PASS
-
TestUpdater - test_check_update_stable_errors
-
PASS
-
TestUpdater - test_check_update_stable_versions
-
PASS
-
TestUpdater - test_perform_update
-
PASS
-
TestUpdater - test_perform_update_stable_errors
-
PASS
-
TestUpdater - test_perform_update_timeout
-
-
- SKIP -
- - - -
-
TestUpdater - test_reconnect_database
-
PASS
TestUserTemplate1919000 - Detail -
-
TestUserTemplate - test_allow_column_restriction
-
PASS
-
TestUserTemplate - test_allow_tag_restriction
-
PASS
-
TestUserTemplate - test_archived_format_template
-
PASS
-
TestUserTemplate - test_author_user_template
-
PASS
-
TestUserTemplate - test_best_user_template
-
PASS
-
TestUserTemplate - test_category_user_template
-
PASS
-
TestUserTemplate - test_deny_column_restriction
-
PASS
-
TestUserTemplate - test_deny_tag_restriction
-
PASS
-
TestUserTemplate - test_detail_random_user_template
-
PASS
-
TestUserTemplate - test_format_user_template
-
PASS
-
TestUserTemplate - test_hot_user_template
-
PASS
-
TestUserTemplate - test_language_user_template
-
PASS
-
TestUserTemplate - test_limit_book_languages
-
PASS
-
TestUserTemplate - test_publisher_user_template
-
PASS
-
TestUserTemplate - test_random_user_template
-
PASS
-
TestUserTemplate - test_read_user_template
-
PASS
-
TestUserTemplate - test_recent_user_template
-
PASS
-
TestUserTemplate - test_series_user_template
-
PASS
-
TestUserTemplate - test_ui_language_settings
-
PASS
TestCalibreWebVisibilitys3030000 - Detail -
-
TestCalibreWebVisibilitys - test_about
-
PASS
-
TestCalibreWebVisibilitys - test_admin_SMTP_Settings
-
PASS
-
TestCalibreWebVisibilitys - test_admin_add_user
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_password
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_archived
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_authors
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_category
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_file_formats
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_hot
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_language
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_publisher
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_random
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_rated
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_rating
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_read
-
PASS
-
TestCalibreWebVisibilitys - test_admin_change_visibility_series
-
PASS
-
TestCalibreWebVisibilitys - test_allow_columns
-
PASS
-
TestCalibreWebVisibilitys - test_allow_tags
-
PASS
-
TestCalibreWebVisibilitys - test_archive_books
-
PASS
-
TestCalibreWebVisibilitys - test_authors_max_settings
-
PASS
-
TestCalibreWebVisibilitys - test_checked_logged_in
-
PASS
-
TestCalibreWebVisibilitys - test_hide_custom_column
-
PASS
-
TestCalibreWebVisibilitys - test_link_column_to_read_status
-
PASS
-
TestCalibreWebVisibilitys - test_random_books_available
-
PASS
-
TestCalibreWebVisibilitys - test_restrict_columns
-
PASS
-
TestCalibreWebVisibilitys - test_restrict_tags
-
PASS
-
TestCalibreWebVisibilitys - test_search_functions
-
PASS
-
TestCalibreWebVisibilitys - test_search_string
-
PASS
-
TestCalibreWebVisibilitys - test_user_email_available
-
PASS
-
TestCalibreWebVisibilitys - test_user_visibility_sidebar
-
PASS
Total230222206 
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Program libraryInstalled VersionTest class
PlatformLinux 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64Basic
Python3.8.2Basic
Babel2.8.0Basic
backports-abc0.5Basic
Flask1.1.2Basic
Flask-Babel1.0.0Basic
Flask-Login0.5.0Basic
Flask-Principal0.4.0Basic
iso-6390.4.5Basic
Jinja22.11.2Basic
PyPDF21.26.0Basic
pytz2020.1Basic
requests2.23.0Basic
singledispatch3.4.0.3Basic
six1.15.0Basic
SQLAlchemy1.3.19Basic
tornado6.0.4Basic
Unidecode1.1.1Basic
Wand0.5.9Basic
Werkzeug1.0.1Basic
Pillow7.2.0TestCoverEditBooks
comicapi2.1.1TestEditAdditionalBooks
lxml4.5.2TestEditAdditionalBooks
Pillow7.2.0TestEditAdditionalBooks
rarfile4.0TestEditAdditionalBooks
lxml4.5.2TestEditBooks
Pillow7.2.0TestEditBooks
google-api-python-client1.11.0TestEditBooksGdrive
httplib20.18.1TestEditBooksGdrive
oauth2client4.1.3TestEditBooksGdrive
PyDrive1.3.1TestEditBooksGdrive
PyYAML5.3.1TestEditBooksGdrive
goodreads0.3.2TestGoodreads
jsonschema3.2.0TestKoboSync
Flask-SimpleLDAP1.4.0TestLdapLogin
jsonschema3.2.0TestLdapLogin
python-ldap3.3.1TestLdapLogin
Flask-Dance3.0.0TestOAuthLogin
SQLAlchemy-Utils0.36.8TestOAuthLogin
-
-
-
-
- - - -
- - - - - \ No newline at end of file