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 a7113785..bbaad7c4 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -27,3 +27,6 @@ To receive fixes for security vulnerabilities it is required to always upgrade t | V 0.6.14|Cross-Site Scripting vulnerability on typeahead inputs. Thanks to @notdodo|| +## Staement regarding Log4j (CVE-2021-44228 and related) + +Calibre-web is not affected by bugs related to Log4j. Calibre-Web is a python program, therefore not using Java, and not using the Java logging feature log4j. 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..706dce39 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,7 +1415,16 @@ 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)) @@ -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/db.py b/cps/db.py index 4b0a7ac7..470ecc1c 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 @@ -166,6 +167,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) @@ -796,23 +799,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 21dc3ba0..18248416 --- 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: @@ -51,13 +53,6 @@ from .tasks.upload import TaskUpload from .render_template import render_title_template from .usermanagement import login_required_if_no_ano -try: - from functools import wraps -except ImportError: - pass # We're not using Python 3 - - - editbook = Blueprint('editbook', __name__) log = logger.create() @@ -237,14 +232,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) @@ -362,7 +357,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): @@ -832,7 +836,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() @@ -1014,7 +1018,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 2c2c3cad..e8a0b738 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -38,11 +38,8 @@ 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 +from urllib.parse import quote -try: - from urllib.parse import quote -except ImportError: - from urllib import quote try: import unidecode @@ -233,7 +230,7 @@ def get_valid_filename(value, replace_whitespace=True): value = value[:-1]+u'_' value = value.replace("/", "_").replace(":", "_").strip('\0') if use_unidecode: - if not config.config_unicode_filename: + if config.config_unicode_filename: value = (unidecode.unidecode(value)) else: value = value.replace(u'§', u'SS') @@ -673,9 +670,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 697b7e22..f86e5612 100644 --- a/cps/iso_language_names.py +++ b/cps/iso_language_names.py @@ -51,11 +51,11 @@ LANGUAGE_NAMES = { "bel": "běloruština", "bem": "bemba (Zambie)", "ben": "bengálština", - "berinomo": "bit", "bho": "bhódžpurština", "bik": "bikolština", "bin": "bini", "bis": "bislamština", + "bit": "berinomo", "bla": "siksika", "bod": "tibetština", "bos": "bosenština", @@ -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", @@ -164,6 +165,7 @@ LANGUAGE_NAMES = { "hil": "hiligayonština", "hin": "hindština", "hit": "chetitština", + "hmj": "Ge", "hmn": "hmongština", "hmo": "hiri motu", "hrv": "chorvatština", @@ -474,11 +476,11 @@ LANGUAGE_NAMES = { "bel": "Weißrussisch", "bem": "Bemba (Sambia)", "ben": "Bengalisch", - "berinomo": "Bit", "bho": "Bhojpuri", "bik": "Bikol", "bin": "Bini", "bis": "Bislama", + "bit": "Berinomo", "bla": "Blackfoot", "bod": "Tibetisch", "bos": "Bosnisch", @@ -525,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", @@ -587,6 +590,7 @@ LANGUAGE_NAMES = { "hil": "Hiligaynon", "hin": "Hindi", "hit": "Hethitisch", + "hmj": "Ge", "hmn": "Miao-Sprachen", "hmo": "Hiri-Motu", "hrv": "Kroatisch", @@ -896,12 +900,12 @@ LANGUAGE_NAMES = { "bel": "Λευκωρωσικά", "bem": "Bemba (Zambia)", "ben": "Μπενγκάλι", + "bit": "Berinomo", "bho": "Bhojpuri", "bik": "Bikol", "byn": "Bilin", "bin": "Bini", "bis": "Bislama", - "berinomo": "Bit", "zbl": "Blissymbols", "bos": "Βοσνιακά", "bra": "Braj", @@ -943,6 +947,7 @@ LANGUAGE_NAMES = { "dgr": "Dogrib", "dua": "Duala", "nld": "Ολλανδικά", + "dse": "Ολλανδική νοηματική γλώσσα", "dyu": "Dyula", "dzo": "Dzongkha", "efi": "Efik", @@ -971,6 +976,7 @@ LANGUAGE_NAMES = { "lug": "Ganda", "gay": "Gayo", "gba": "Gbaya (Central African Republic)", + "hmj": "Ge", "gez": "Geez", "kat": "Γεωργιανά", "deu": "Γερμανικά", @@ -1275,11 +1281,11 @@ LANGUAGE_NAMES = { "bel": "Bielorruso", "bem": "Bemba (Zambia)", "ben": "Bengalí", - "berinomo": "Bit", "bho": "Bopurí", "bik": "Bicolano", "bin": "Bini", "bis": "Bislama", + "bit": "Berinomo", "bla": "Siksiká", "bod": "Tibetano", "bos": "Bosnio", @@ -1326,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", @@ -1388,6 +1395,7 @@ LANGUAGE_NAMES = { "hil": "Hiligainón", "hin": "Hindi", "hit": "Hitita", + "hmj": "Ge", "hmn": "Hmong", "hmo": "Hiri motu", "hrv": "Croata", @@ -1698,11 +1706,11 @@ LANGUAGE_NAMES = { "bel": "valkovenäjä", "bem": "Bemba (Zambia)", "ben": "bengali", - "berinomo": "Bit", "bho": "bhojpuri", "bik": "bikol", "bin": "bini", "bis": "bislama", + "bit": "Berinomo", "bla": "mustajalka (siksika)", "bod": "tiibetti", "bos": "bosnia", @@ -1749,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", @@ -1811,6 +1820,7 @@ LANGUAGE_NAMES = { "hil": "hiligaynon", "hin": "hindi", "hit": "heetti", + "hmj": "Ge", "hmn": "hmong", "hmo": "hiri-motu", "hrv": "kroatia", @@ -2121,11 +2131,11 @@ LANGUAGE_NAMES = { "bel": "biélorusse", "bem": "bemba (Zambie)", "ben": "bengali", - "berinomo": "bit", "bho": "bhojpuri", "bik": "bikol", "bin": "bini", "bis": "bislama", + "bit": "berinomo", "bla": "pied-noir", "bod": "tibétain", "bos": "bosniaque", @@ -2172,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", @@ -2234,6 +2245,7 @@ LANGUAGE_NAMES = { "hil": "hiligaynon", "hin": "hindi", "hit": "hittite", + "hmj": "ge", "hmn": "hmong", "hmo": "hiri Motu", "hrv": "croate", @@ -2544,11 +2556,11 @@ LANGUAGE_NAMES = { "bel": "belarusz", "bem": "Bemba (Zambia)", "ben": "bengáli", - "berinomo": "Bit", "bho": "bhodzspuri", "bik": "bikol", "bin": "bini", "bis": "biszlama", + "bit": "Berinomo", "bla": "szikszika", "bod": "tibeti", "bos": "bosnyák", @@ -2595,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", @@ -2657,6 +2670,7 @@ LANGUAGE_NAMES = { "hil": "hiligajnon", "hin": "hindi", "hit": "hettita", + "hmj": "Ge", "hmn": "hmong", "hmo": "hiri motu", "hrv": "horvát", @@ -2967,11 +2981,11 @@ LANGUAGE_NAMES = { "bel": "Bielorusso", "bem": "Bemba (Zambia)", "ben": "Bengalese", - "berinomo": "Bit", "bho": "Bhojpuri", "bik": "bicol", "bin": "Bini", "bis": "bislama", + "bit": "Berinomo", "bla": "Siksika", "bod": "Tibetano", "bos": "Bosniaco", @@ -3018,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", @@ -3080,6 +3095,7 @@ LANGUAGE_NAMES = { "hil": "Hiligayna", "hin": "Hindi", "hit": "hittite", + "hmj": "Ge", "hmn": "Hmong", "hmo": "Hiri motu", "hrv": "Croato", @@ -3390,11 +3406,11 @@ LANGUAGE_NAMES = { "bel": "白ロシア語", "bem": "Bemba (Zambia)", "ben": "ベンガル語", - "berinomo": "Bit", "bho": "ボージプリー語", "bik": "ビコル語", "bin": "ビニ語", "bis": "ビスラマ語", + "bit": "Berinomo", "bla": "ブラックフット語", "bod": "チベット語", "bos": "ボスニア語", @@ -3441,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": "デュラ語", @@ -3503,6 +3520,7 @@ LANGUAGE_NAMES = { "hil": "ヒリジャノン語", "hin": "ヒンディー語", "hit": "ヒッタイト語", + "hmj": "Ge", "hmn": "フモング語", "hmo": "ヒリモトゥ語", "hrv": "クロアチア語", @@ -3813,11 +3831,11 @@ LANGUAGE_NAMES = { "bel": "Belarusian", "bem": "Bemba (Zambia)", "ben": "Bengali", - "berinomo": "Bit", "bho": "Bhojpuri", "bik": "Bikol", "bin": "Bini", "bis": "Bislama", + "bit": "Berinomo", "bla": "Siksika", "bod": "Tibetan", "bos": "Bosnian", @@ -3864,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", @@ -3926,6 +3945,7 @@ LANGUAGE_NAMES = { "hil": "Hiligaynon", "hin": "Hindi", "hit": "Hittite", + "hmj": "Ge", "hmn": "Hmong", "hmo": "Hiri Motu", "hrv": "Croatian", @@ -4197,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", @@ -4236,11 +4634,11 @@ LANGUAGE_NAMES = { "bel": "Wit-Russisch; Belarussisch", "bem": "Bemba (Zambia)", "ben": "Bengaals", - "berinomo": "Bit", "bho": "Bhojpuri", "bik": "Bikol", "bin": "Bini; Edo", "bis": "Bislama", + "bit": "Berinomo", "bla": "Siksika", "bod": "Tibetaans", "bos": "Bosnisch", @@ -4287,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", @@ -4349,6 +4748,7 @@ LANGUAGE_NAMES = { "hil": "Hiligainoons", "hin": "Hindi", "hit": "Hittitisch", + "hmj": "Ge", "hmn": "Hmong", "hmo": "Hiri Motu", "hrv": "Kroatisch", @@ -4659,11 +5059,11 @@ LANGUAGE_NAMES = { "bel": "białoruski", "bem": "bemba (Zambia)", "ben": "bengalski", - "berinomo": "Bit", "bho": "bhodźpuri", "bik": "bikol", "bin": "edo", "bis": "bislama", + "bit": "Berinomo", "bla": "siksika", "bod": "tybetański", "bos": "bośniacki", @@ -4710,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", @@ -4772,6 +5173,7 @@ LANGUAGE_NAMES = { "hil": "hiligajnon", "hin": "hindi", "hit": "hetycki", + "hmj": "Ge", "hmn": "hmong", "hmo": "hiri motu", "hrv": "chorwacki", @@ -5081,12 +5483,12 @@ LANGUAGE_NAMES = { "bel": "Belarusian", "bem": "Bemba (Zambia)", "ben": "Bengali", + "bit": "Berinomo", "bho": "Bhojpuri", "bik": "Bikol", "byn": "Bilin", "bin": "Bini", "bis": "Bislama", - "berinomo": "Bit", "zbl": "Blissymbols", "bos": "Bosnian", "bra": "Braj", @@ -5128,6 +5530,7 @@ LANGUAGE_NAMES = { "dgr": "Dogrib", "dua": "Duala", "nld": "Holandês", + "dse": "Língua gestual holandesa", "dyu": "Dyula", "dzo": "Dzongkha", "efi": "Efik", @@ -5156,6 +5559,7 @@ LANGUAGE_NAMES = { "lug": "Ganda", "gay": "Gayo", "gba": "Gbaya (Central African Republic)", + "hmj": "Ge", "gez": "Geez", "kat": "Georgiano", "deu": "Alemão", @@ -5458,11 +5862,11 @@ LANGUAGE_NAMES = { "bel": "Белорусский", "bem": "Бемба (Замбия)", "ben": "Бенгальский", - "berinomo": "Bit", "bho": "Бходжпури", "bik": "Бикольский", "bin": "Бини", "bis": "Бислама", + "bit": "Berinomo", "bla": "Сиксика", "bod": "Тибетский", "bos": "Боснийский", @@ -5509,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": "Диула (Дьюла)", @@ -5571,6 +5976,7 @@ LANGUAGE_NAMES = { "hil": "Хилигайнон", "hin": "Хинди", "hit": "Хиттит", + "hmj": "Ge", "hmn": "Хмонг", "hmo": "Хири Моту", "hrv": "Хорватский", @@ -5881,11 +6287,11 @@ LANGUAGE_NAMES = { "bel": "Vitryska", "bem": "Bemba (Zambia)", "ben": "Bengaliska", - "berinomo": "Bit", "bho": "Bhojpuri", "bik": "Bikol", "bin": "Edo (bini)", "bis": "Bislama", + "bit": "Berinomo", "bla": "Siksika (svartfotindianernas språk)", "bod": "Tibetanska", "bos": "Bosniska", @@ -5932,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", @@ -5994,6 +6401,7 @@ LANGUAGE_NAMES = { "hil": "Hiligaynon", "hin": "Hindi", "hit": "Hettitiska språk", + "hmj": "Ge", "hmn": "Hmong", "hmo": "Hiri Motu", "hrv": "Kroatiska", @@ -6303,12 +6711,12 @@ LANGUAGE_NAMES = { "bel": "Beyaz Rusça", "bem": "Bemba (Zambia)", "ben": "Bengalce", + "bit": "Berinomo", "bho": "Bhojpuri (Hindistan)", "bik": "Bikol (Filipinler)", "byn": "Bilin", "bin": "Bini (Afrika)", "bis": "Bislama (Vanuatu; Kuzey Pasifik)", - "berinomo": "Bit", "zbl": "Blis Sembolleri", "bos": "Boşnakça", "bra": "Braj (Hindistan)", @@ -6350,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)", @@ -6378,6 +6787,7 @@ LANGUAGE_NAMES = { "lug": "Ganda Dili", "gay": "Gayo (Sumatra)", "gba": "Gbaya (Orta Afrika Cumhuriyeti)", + "hmj": "Ge", "gez": "Geez (Etiyopya)", "kat": "Gürcüce", "deu": "Almanca", @@ -6680,11 +7090,11 @@ LANGUAGE_NAMES = { "bel": "білоруська", "bem": "бемба (Замбія)", "ben": "бенгальська", - "berinomo": "біт", "bho": "бходжпурі", "bik": "бікольська", "bin": "біні", "bis": "біслама", + "bit": "беріномо", "bla": "сісіка", "bod": "тибетська", "bos": "боснійська", @@ -6731,6 +7141,7 @@ LANGUAGE_NAMES = { "div": "мальдивська", "doi": "догрі (макромова)", "dsb": "нижньолужицька", + "dse": "голландська мова жестів", "dua": "дуала", "dum": "середньовічна голландська (бл. 1050-1350)", "dyu": "діула", @@ -6793,6 +7204,7 @@ LANGUAGE_NAMES = { "hil": "хілігайнон", "hin": "хінді", "hit": "хетська", + "hmj": "ге", "hmn": "хмонг", "hmo": "хірімоту", "hrv": "хорватська", @@ -7103,11 +7515,11 @@ LANGUAGE_NAMES = { "bel": "白俄罗斯语", "bem": "本巴语(赞比亚)", "ben": "孟加拉语", - "berinomo": "布兴话", "bho": "博杰普尔语", "bik": "比科尔语", "bin": "比尼语", "bis": "比斯拉马语", + "bit": "Berinomo", "bla": "西克西卡语", "bod": "藏语", "bos": "波斯尼亚语", @@ -7154,6 +7566,7 @@ LANGUAGE_NAMES = { "div": "迪维希语", "doi": "多格拉语", "dsb": "索布语(下)", + "dse": "荷兰手语", "dua": "杜亚拉语", "dum": "荷兰语(中古,约 1050-1350)", "dyu": "迪尤拉语", @@ -7216,6 +7629,7 @@ LANGUAGE_NAMES = { "hil": "希利盖农语", "hin": "印地语", "hit": "赫梯语", + "hmj": "亻革家语、重安江苗语", "hmn": "苗语", "hmo": "希里莫图语", "hrv": "克罗地亚语", @@ -7525,12 +7939,12 @@ LANGUAGE_NAMES = { "bel": "白俄羅斯文", "bem": "Bemba (Zambia)", "ben": "Bengali", + "bit": "Berinomo", "bho": "Bhojpuri", "bik": "Bikol", "byn": "Bilin", "bin": "Bini", "bis": "Bislama", - "berinomo": "Bit", "zbl": "布利斯符號", "bos": "Bosnian", "bra": "Braj", @@ -7572,6 +7986,7 @@ LANGUAGE_NAMES = { "dgr": "Dogrib", "dua": "Duala", "nld": "荷蘭文", + "dse": "Dutch Sign Language", "dyu": "Dyula", "dzo": "Dzongkha", "efi": "Efik", @@ -7600,6 +8015,7 @@ LANGUAGE_NAMES = { "lug": "Ganda", "gay": "Gayo", "gba": "Gbaya (Central African Republic)", + "hmj": "Ge", "gez": "Geez", "kat": "Georgian", "deu": "德文", @@ -7954,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", @@ -8016,6 +8433,7 @@ LANGUAGE_NAMES = { "hil": "Hiligaynon", "hin": "Hindi", "hit": "Hittite", + "hmj": "Ge", "hmn": "Hmong", "hmo": "Hiri Motu", "hrv": "Croatian", diff --git a/cps/kobo.py b/cps/kobo.py index c5af44fc..67304c93 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, @@ -146,9 +142,16 @@ def HandleSyncRequest(): if not current_app.wsgi_app.is_proxied: log.debug('Kobo: Received unproxied request, changed request port to external server port') - new_books_last_modified = sync_token.books_last_modified - new_books_last_created = sync_token.books_last_created + # if no books synced don't respect sync_token + if not ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.user_id == current_user.id).count(): + sync_token.books_last_modified = datetime.datetime.min + sync_token.books_last_created = datetime.datetime.min + sync_token.reading_state_last_modified = datetime.datetime.min + + new_books_last_modified = sync_token.books_last_modified # needed for sync selected shelfs only + new_books_last_created = sync_token.books_last_created # needed to distinguish between new and changed entitlement new_reading_state_last_modified = sync_token.reading_state_last_modified + new_archived_last_modified = datetime.datetime.min sync_results = [] @@ -170,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)) @@ -193,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) @@ -254,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 @@ -292,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() @@ -306,18 +312,19 @@ def HandleSyncRequest(): sync_shelves(sync_token, sync_results, only_kobo_shelves) - sync_token.books_last_created = new_books_last_created + # update last created timestamp to distinguish between new and changed entitlements + if not cont_sync: + sync_token.books_last_created = new_books_last_created sync_token.books_last_modified = new_books_last_modified sync_token.archive_last_modified = new_archived_last_modified sync_token.reading_state_last_modified = new_reading_state_last_modified - # sync_token.books_last_id = books_last_id return generate_sync_response(sync_token, sync_results, cont_sync) 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) @@ -335,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" @@ -667,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": { @@ -684,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( @@ -847,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..8d46b26a 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() @@ -167,7 +163,7 @@ def generate_auth_token(user_id): ) -@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. diff --git a/cps/kobo_sync_status.py b/cps/kobo_sync_status.py index eee47d89..6df0a503 100644 --- a/cps/kobo_sync_status.py +++ b/cps/kobo_sync_status.py @@ -20,7 +20,7 @@ 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 # Add the current book id to kobo_synced_books table for current user, if entry is already present, # do nothing (safety precaution) @@ -36,9 +36,13 @@ 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): +def remove_synced_book(book_id, all=False): + if not all: + user = ub.KoboSyncedBooks.user_id == current_user.id + else: + user = true() ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.book_id == book_id) \ - .filter(ub.KoboSyncedBooks.user_id == current_user.id).delete() + .filter(user).delete() ub.session_commit() @@ -56,7 +60,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 +75,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/scholar.py b/cps/metadata_provider/scholar.py index 0becaef0..dc5368d8 100644 --- a/cps/metadata_provider/scholar.py +++ b/cps/metadata_provider/scholar.py @@ -23,7 +23,6 @@ from scholarly import scholarly from cps.services.Metadata import MetaRecord, MetaSourceInfo, Metadata - class scholar(Metadata): __name__ = "Google Scholar" __id__ = "googlescholar" 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/services/SyncToken.py b/cps/services/SyncToken.py index 85ed5032..2e23efe2 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 5f6a66bf..29a4fe99 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") 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/css/style.css b/cps/static/css/style.css index bf2257e6..6e6b0eae 100644 --- a/cps/static/css/style.css +++ b/cps/static/css/style.css @@ -429,7 +429,7 @@ div.log { } #detailcover { cursor:zoom-in; } -#detailcover:-webkit-full-screen { cursor:zoom-out; } -#detailcover:-moz-full-screen { cursor:zoom-out; } -#detailcover:-ms-fullscreen { cursor:zoom-out; } -#detailcover:fullscreen { cursor:zoom-out; } +#detailcover:-webkit-full-screen { cursor:zoom-out; border: 0; } +#detailcover:-moz-full-screen { cursor:zoom-out; border: 0; } +#detailcover:-ms-fullscreen { cursor:zoom-out; border: 0; } +#detailcover:fullscreen { cursor:zoom-out; border: 0; } diff --git a/cps/static/js/details.js b/cps/static/js/details.js index 9caf9470..3a7def32 100644 --- a/cps/static/js/details.js +++ b/cps/static/js/details.js @@ -62,7 +62,7 @@ $("#archived_cb").on("change", function() { $("#shelf-actions").on("click", "[data-shelf-action]", function (e) { e.preventDefault(); - $.get(this.href) + $.post(this.href) .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 a8643065..6db1a261 100644 --- a/cps/static/js/get_meta.js +++ b/cps/static/js/get_meta.js @@ -47,7 +47,7 @@ $(function () { $("#tags").val(uniqueTags.join(", ")); $("#languages").val(uniqueLanguages.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); } @@ -160,9 +160,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/libs/tinymce/langs/zh_Hans_CN.js b/cps/static/js/libs/tinymce/langs/zh_Hans_CN.js index 2a784f57..981c9090 100644 --- a/cps/static/js/libs/tinymce/langs/zh_Hans_CN.js +++ b/cps/static/js/libs/tinymce/langs/zh_Hans_CN.js @@ -1,4 +1,4 @@ -tinymce.addI18n('zh_CN',{ +tinymce.addI18n('zh_Hans_CN',{ "Redo": "\u91cd\u505a", "Undo": "\u64a4\u9500", "Cut": "\u526a\u5207", diff --git a/cps/static/js/libs/tinymce/langs/zh_Hant_TW.js b/cps/static/js/libs/tinymce/langs/zh_Hant_TW.js index 1987486c..f6e7e248 100644 --- a/cps/static/js/libs/tinymce/langs/zh_Hant_TW.js +++ b/cps/static/js/libs/tinymce/langs/zh_Hant_TW.js @@ -1,4 +1,4 @@ -tinymce.addI18n('zh_TW',{ +tinymce.addI18n('zh_Hant_TW',{ "Redo": "\u91cd\u505a", "Undo": "\u64a4\u92b7", "Cut": "\u526a\u4e0b", @@ -416,4 +416,4 @@ tinymce.addI18n('zh_TW',{ "Spellcheck": "\u62fc\u5b57\u6aa2\u67e5", "Caption": "\u8868\u683c\u6a19\u984c", "Insert template": "\u63d2\u5165\u6a23\u7248" -}); \ No newline at end of file +}); diff --git a/cps/static/js/main.js b/cps/static/js/main.js old mode 100644 new mode 100755 index 585d2296..cf5a4327 --- 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,7 +198,7 @@ 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"); @@ -179,7 +209,7 @@ $("#delete_confirm").click(function() { 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); @@ -527,7 +562,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 +609,7 @@ $(function() { function(value){ path = getPath() + "/ajax/fullsync" $.ajax({ - method:"get", + method:"post", url: path, timeout: 900, success:function(data) { @@ -638,7 +673,7 @@ $(function() { else { $("#InvalidDialog").modal('show'); } - } else { + } else { changeDbSettings(); } } @@ -679,13 +714,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 +770,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 +805,3 @@ $(function() { }); }); }); - diff --git a/cps/static/js/reading/epub.js b/cps/static/js/reading/epub.js index edafa82c..7942bfbd 100644 --- a/cps/static/js/reading/epub.js +++ b/cps/static/js/reading/epub.js @@ -61,11 +61,14 @@ var reader; this.removeBookmark(bookmark); }.bind(this)); } + + var csrftoken = $("input[name='csrf_token']").val(); // Save to database $.ajax(calibre.bookmarkUrl, { method: "post", - data: { bookmark: location || "" } + data: { bookmark: location || "" }, + headers: { "X-CSRFToken": csrftoken } }).fail(function (xhr, status, error) { alert(error); }); diff --git a/cps/static/js/table.js b/cps/static/js/table.js index e98f6a8b..112ca957 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; - } - - var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) { - return row.id; - }); + 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 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 ada53005..59ad6909 100644 --- a/cps/tasks/convert.py +++ b/cps/tasks/convert.py @@ -217,13 +217,16 @@ class TaskConvert(CalibreTask): quotes.append(quotes_index) quotes_index += 1 - p = process_open(command, quotes) + p = process_open(command, quotes, newlines=False) except OSError as e: return 1, _(u"Ebook-converter failed: %(error)s", error=e) while p.poll() is None: nextline = p.stdout.readline() - log.debug(nextline.strip('\r\n')) + if isinstance(nextline, bytes): + nextline = nextline.decode('utf-8', errors="ignore").strip('\r\n') + if nextline: + log.debug(nextline) # parse progress string from calibre-converter progress = re.search(r"(\d+)%\s.*", nextline) if progress: @@ -236,11 +239,15 @@ class TaskConvert(CalibreTask): calibre_traceback = p.stderr.readlines() error_message = "" for ele in calibre_traceback: - log.debug(ele.strip('\n')) + ele = ele.decode('utf-8', errors="ignore").strip('\n') + log.debug(ele) if not ele.startswith('Traceback') and not ele.startswith(' File'): - error_message = _("Calibre failed with error: %(error)s", error=ele.strip('\n')) + error_message = _("Calibre failed with error: %(error)s", error=ele) return check, error_message @property def name(self): return "Convert" + + def __str__(self): + return "Convert {} {}".format(self.bookid, self.kindle_mail) diff --git a/cps/tasks/mail.py b/cps/tasks/mail.py index 2e95ee98..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 @@ -267,4 +267,4 @@ class TaskEmail(CalibreTask): return "E-mail" def __str__(self): - return "{}, {}".format(self.name, self.subject) + return "E-mail {}, {}".format(self.name, self.subject) diff --git a/cps/tasks/upload.py b/cps/tasks/upload.py index 6a341cdd..2a667c28 100644 --- a/cps/tasks/upload.py +++ b/cps/tasks/upload.py @@ -32,3 +32,6 @@ class TaskUpload(CalibreTask): @property def name(self): return "Upload" + + def __str__(self): + return "Upload {}".format(self.message) 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/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 fb0cfed8..eb5c1bff 100644 --- a/cps/templates/book_table.html +++ b/cps/templates/book_table.html @@ -120,8 +120,8 @@
diff --git a/cps/templates/detail.html b/cps/templates/detail.html index 0ecaf903..c8d7d527 100644 --- a/cps/templates/detail.html +++ b/cps/templates/detail.html @@ -38,7 +38,7 @@ {% endif %} {% if g.user.kindle_mail and kindle_list %} {% if kindle_list.__len__() == 1 %} - {{kindle_list[0]['text']}} +
{{kindle_list[0]['text']}}
{% else %}
diff --git a/cps/templates/read.html b/cps/templates/read.html index 3d2566e0..1766eb1b 100644 --- a/cps/templates/read.html +++ b/cps/templates/read.html @@ -17,6 +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 4c982ee7..7455b606 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 3a0407c6..f8d5bf1e 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -196,283 +196,291 @@ msgstr "Jste si jisti, že chcete odstranit tuto polici?" msgid "Are you sure you want to change Calibre library location?" msgstr "Opravdu chcete vypnout?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 není nakonfigurováno pro webové aplikace" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: 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:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Filtr objektů skupiny LDAP má nesrovnatelnou závorku" -#: cps/admin.py:1116 +#: 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:1118 +#: 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:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Databáze není zapisovatelná" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Nastavení e-mailového serveru aktualizováno" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Konfigurace funkcí" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Vyplňte všechna pole!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-mail není z platné domény" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Přidat nového uživatele" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Uživatel '%(user)s' vytvořen" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Uživatel '%(nick)s' smazán" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Upravit uživatele %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Uživatel '%(nick)s' aktualizován" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Prvně nastavte svou e-mailovou adresu..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Nastavení e-mailového serveru aktualizováno" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Prohlížeč log souborů" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Požadování balíčku aktualizace" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Stahování balíčku aktualizace" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Rozbalování balíčku aktualizace" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Nahrazování souborů" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Databázová připojení jsou uzavřena" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Zastavuji server" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Chyba: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -484,108 +492,112 @@ msgstr "není nakonfigurováno" msgid "Execution permissions missing" msgstr "Chybí povolení k exekuci" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -598,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:1670 +#: 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í" @@ -775,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:1546 +#: 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'" @@ -841,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Přihlásit" @@ -857,7 +869,7 @@ msgstr "Token vypršel" msgid "Success! Please return to your device" msgstr "Úspěch! Vraťte se prosím do zařízení" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Knihy" @@ -882,7 +894,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Nejlépe hodnocené knihy" @@ -891,7 +903,7 @@ msgid "Show Top Rated Books" msgstr "Zobrazit nejlépe hodnocené knihy" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Přečtené knihy" @@ -900,7 +912,7 @@ msgid "Show read and unread" msgstr "Zobrazit prečtené a nepřečtené" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Nepřečtené knihy" @@ -918,7 +930,7 @@ msgid "Show Random Books" msgstr "Zobrazit náhodné knihy" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Kategorie" @@ -928,7 +940,7 @@ msgstr "Zobrazit výběr kategorie" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Série" @@ -946,7 +958,7 @@ msgid "Show author selection" msgstr "Zobrazit výběr autora" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Vydavatelé" @@ -956,7 +968,7 @@ msgstr "Zobrazit výběr vydavatele" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Jazyky" @@ -980,7 +992,7 @@ msgstr "Formáty souborů" msgid "Show file formats selection" msgstr "Zobrazit výběr formátů" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Archivované knihy" @@ -988,7 +1000,7 @@ msgstr "Archivované knihy" msgid "Show archived books" msgstr "Zobrazit archivované knihy" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1060,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á" @@ -1127,177 +1144,177 @@ msgstr "Nová aktualizace k dispozici. Klepnutím na tlačítko níže aktualizu msgid "No release information available" msgstr "Nejsou k dispozici žádné informace o verzi" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Objevte (Náhodné knihy)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Žhavé knihy (Nejstahovanější)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Autoři: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Vydavatel: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Série: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Hodnocení: %(rating)s stars" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Soubor formátů: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Kategorie: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Jazyky: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Hledat" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Stáhnutí" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Seznam hodnocení" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Seznam formátů" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Úlohy" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Vydáno po " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Vydáno před " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Hodnocení <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Hodnocení >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Váš e-mail nemá povolení k registraci" -#: cps/web.py:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Nelze aktivovat ověření LDAP" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Nelze se přihlásit: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Špatné uživatelské jméno nebo heslo" -#: cps/web.py:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s profil" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil aktualizován" @@ -1334,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 "" @@ -1374,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" @@ -1541,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:141 +#: 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" @@ -1586,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" @@ -1749,7 +1765,7 @@ msgstr "Získat metadata" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Uložit" @@ -1772,7 +1788,7 @@ msgstr "Načítání..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Zavřít" @@ -2245,35 +2261,35 @@ msgstr "Regulární výraz pro řazení názvů" msgid "Default Settings for New Users" msgstr "Výchozí nastavení pro nového uživatele" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Uživatel admin" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Povolit stahování" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Povolit prohlížeč knih" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Povolit nahrávání" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Povolit úpravy" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Povolit mazání knih" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Povolit změnu hesla" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Povolit úpravy veřejných polic" @@ -2291,12 +2307,12 @@ msgstr "Zobrazit knihy s jazykem" msgid "Default Visibilities for New Users" msgstr "Výchozí zobrazení pro nové uživatele" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Zobrazit náhodné knihy v podrobném zobrazení" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Přidat povolené/zakázané štítky" @@ -2463,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 "" @@ -2573,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í" @@ -2724,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." @@ -2957,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" @@ -3081,19 +3093,23 @@ msgstr "Kobo Sync token" msgid "Create/View" msgstr "Vytvořit/Prohlížet" -#: cps/templates/user_edit.html:85 +#: 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 "Přidat povolené/zakázané hodnoty vlastních sloupců" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Odstranit tohoto uživatele" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Vygenerovat URL pro Kobo Auth" diff --git a/cps/translations/de/LC_MESSAGES/messages.mo b/cps/translations/de/LC_MESSAGES/messages.mo index 59794715..e5c6c151 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 192f10f5..8df5b2aa 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-04 10:53+0100\n" -"PO-Revision-Date: 2021-08-01 17:24+0200\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -192,280 +192,285 @@ msgstr "Möchten Sie wirklich die Synchronisation von Bücherregalen für die au msgid "Are you sure you want to change Calibre library location?" msgstr "Ort der Calibre Datenbank editieren?" -#: cps/admin.py:741 +#: 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 "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" msgstr "Tag nicht gefunden" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "Ungültige Aktion" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "{} Synchronisationseinträge gelöscht" + +#: 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:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Bitte einen LDAP Service Account eingeben" -#: cps/admin.py:1110 +#: 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:1112 +#: 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:1116 +#: 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:1118 +#: 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:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Datenbank ist nicht schreibbar" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 -#, fuzzy +#: cps/admin.py:1346 msgid "Database Settings updated" -msgstr "Einstellungen des E-Mail-Servers aktualisiert" +msgstr "Datenbankeinstellung aktualisiert" -#: cps/admin.py:1324 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "Datenbank-Konfiguration" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Bitte alle Felder ausfüllen!" -#: cps/admin.py:1348 +#: 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:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Neuen Benutzer hinzufügen" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Benutzer '%(user)s' angelegt" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Benutzer '%(nick)s' gelöscht" -#: cps/admin.py:1393 cps/admin.py:1394 +#: 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:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Benutzer %(nick)s bearbeiten" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Benutzer '%(nick)s' aktualisiert" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Gmail Account Verifikation erfolgreich" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Bitte zuerst E-Mail Adresse konfigurieren..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Einstellungen des E-Mail-Servers aktualisiert" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Logdatei Anzeige" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Frage Update an" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Lade Update herunter" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Entpacke Update" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Ersetze Dateien" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Schließe Datenbankverbindungen" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Stoppe Server" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 -#, 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:1702 +#: 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:1726 -#, 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Fehler: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Benutzer erfolgreich importiert" @@ -477,108 +482,112 @@ msgstr "Nicht konfiguriert" msgid "Execution permissions missing" msgstr "Ausführeberechtigung fehlt" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -591,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:1670 +#: 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" @@ -767,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:1546 +#: 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'" @@ -833,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Login" @@ -849,7 +858,7 @@ msgstr "Token ist abgelaufen" msgid "Success! Please return to your device" msgstr "Erfolg! Bitte zum Gerät zurückkehren" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Bücher" @@ -874,7 +883,7 @@ msgstr "Heruntergeladene Bücher" msgid "Show Downloaded Books" msgstr "Zeige heruntergeladene Bücher" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Best bewertete Bücher" @@ -883,7 +892,7 @@ msgid "Show Top Rated Books" msgstr "Bestbewertete Bücher anzeigen" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Gelesene Bücher" @@ -892,7 +901,7 @@ msgid "Show read and unread" msgstr "Zeige gelesene/ungelesene Bücher" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Ungelesene Bücher" @@ -910,7 +919,7 @@ msgid "Show Random Books" msgstr "Zeige zufällige Bücher" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Kategorien" @@ -920,7 +929,7 @@ msgstr "Zeige Kategorienauswahl" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Serien" @@ -938,7 +947,7 @@ msgid "Show author selection" msgstr "Zeige Autorenauswahl" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Verleger" @@ -948,7 +957,7 @@ msgstr "Zeige Verlegerauswahl" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Sprachen" @@ -972,7 +981,7 @@ msgstr "Dateiformate" msgid "Show file formats selection" msgstr "Zeige Dateiformatauswahl" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Archivierte Bücher" @@ -980,7 +989,7 @@ msgstr "Archivierte Bücher" msgid "Show archived books" msgstr "Zeige archivierte Bücher" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Bücherliste" @@ -1008,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 @@ -1032,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" @@ -1048,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" @@ -1117,177 +1131,177 @@ msgstr "Ein neues Update ist verfügbar. Klicke auf den Button unten, um auf Ver msgid "No release information available" msgstr "Keine Releaseinformationen verfügbar" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Entdecke (Zufällige Bücher)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Beliebte Bücher (am meisten Downloads)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Von %(user)s heruntergeladene Bücher" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Author: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Verleger: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Bewertung: %(rating)s Sterne" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Dateiformat: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Kategorie: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Sprache: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Suche" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Downloads" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Bewertungsliste" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Liste der Dateiformate" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Aufgaben" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Herausgegeben nach dem " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Herausgegeben vor dem " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Bewertung <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Bewertung >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Lesestatus = %(status)s" -#: cps/web.py:1361 +#: 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:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "LDAP-Authentifizierung kann nicht aktiviert werden" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Login nicht erfolgreich: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Falscher Benutzername oder Passwort" -#: cps/web.py:1571 +#: 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:1577 +#: 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:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Eingeloggt als: '%(nickname)s'" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's Profil" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil aktualisiert" @@ -1324,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" @@ -1364,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" @@ -1530,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:141 +#: 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" @@ -1575,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" @@ -1738,7 +1751,7 @@ msgstr "Metadaten laden" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Speichern" @@ -1747,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" @@ -1761,7 +1773,7 @@ msgstr "Lade..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Schließen" @@ -1857,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?" @@ -1947,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" @@ -1971,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" @@ -1979,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" @@ -2233,58 +2243,56 @@ msgstr "Regulärer Ausdruck für Titelsortierung" msgid "Default Settings for New Users" msgstr "Standard-Einstellungen für neue Benutzer" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Administrator" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Downloads erlauben" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Anzeige von Büchern erlauben" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Hochladen erlauben" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Bearbeiten erlauben" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Löschen von Büchern erlauben" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Ändern des Passworts erlauben" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 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" msgstr "Standard-Sichtbarkeiten für neue Benutzer" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Zeige zufällige Bücher in der Detailansicht" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Erlaubte/Verbotene Tags hinzufügen" @@ -2443,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" @@ -2560,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" @@ -2709,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." @@ -2937,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" @@ -3061,19 +3065,23 @@ msgstr "Kobo Sync Token" msgid "Create/View" msgstr "Erzeugen/Ansehen" -#: cps/templates/user_edit.html:85 +#: cps/templates/user_edit.html:70 +msgid "Force full kobo sync" +msgstr "Komplettsynchronisation Kobo erzwingen" + +#: cps/templates/user_edit.html:88 msgid "Add allowed/Denied Custom Column Values" msgstr "Erlaubte/Verbotene Calibre Spalten hinzufügen" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "Nur Bücher aus ausgewählten Bücherregalen mit Kobo synchronisieren" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Benutzer löschen" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Kobo Auth URL erzeugen" @@ -3138,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" @@ -3155,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 01b37b8c..492f7e35 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 cd9ee4b6..80041ada 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "Είσαι σίγουρος/η πως θέλεις να διαγράψεις αυτό το ράφι;" @@ -196,283 +196,291 @@ msgstr "Είσαι σίγουρος/η πως θέλεις να διαγράψε msgid "Are you sure you want to change Calibre library location?" msgstr "Είσαι σίγουρος/η πως θέλεις να κάνεις κλείσιμο;" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 Δεν Έχει Διαμορφωθεί Για Διαδικτυακή Εφαρμογή" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Το Φύλλο Καταγραφής Τοποθεσίας δεν είναι Έγκυρο, Παρακαλούμε Συμπλήρωσε Τη Σωστή Πορεία" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Η Πρόσβαση Φύλλου Καταγραφης Τοποθεσίας δεν είναι έγκυρη, Παρακαλούμε Συμπλήρωσε Τη Σωστή Πορεία" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Παρακαλούμε Συμπλήρωσε ένα Πάροχο LDAP, Θύρα, DN και Αντικείμενο Αναγνώρισης Χρήστη" -#: cps/admin.py:1102 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Παρακαλούμε συμπλήρωσε ένα έγκυρο όνομα χρήστη για επαναφορά του κωδικού" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "Το Αντικείμενο Φίλτρου Ομάδας LDAP Πρέπει να Έχει Μια \"%s\" Αναγνώριση Μορφής" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Το Αντικείμενο Φίλτρου Ομάδας LDAP Έχει Παρενθέσεις Που Δεν Ταιριάζουν" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "Το Αντικείμενο Φίλτρου Χρήστη LDAP πρέπει να Έχει Μια \"%s\" Αναγνώριση Μορφής" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Το Αντικείμενο Φίλτρου Χρήστη LDAP Έχει Παρενθέσεις Που Δεν Ταιριάζουν" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Η Τοποθεσία DB δεν είναι Έγκυρη, Παρακαλούμε Συμπληρώστε Τη Σωστή Πορεία" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Η DB δεν μπορεί να Γραφτεί" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Το Αρχειο Κλειδί Τοποθεσίας δεν είναι Έγκυρο, Παρακαλούμε Συμπληρώστε Τη Σωστή Πορεία" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Η Τοποθεσία Certfile δεν είναι Έγκυρη, Παρακαλούμε Συμπληρώστε Τη Σωστή Πορεία" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Ενημερώθηκαν οι ρυθμίσεις E-mail διακομιστή" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Διαμόρφωση Λειτουργίας" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Παρακαλούμε συμπλήρωσε όλα τα πεδία!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Το E-mail δεν είναι από έγκυρο domain" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Προσθήκη νέου χρήστη" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Χρήστης/ες '%(user)s' δημιουργήθηκαν" -#: cps/admin.py:1371 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Βρέθηκε ένας ήδη υπάρχον λογαριασμός για αυτή τη διεύθυνση e-mail ή όνομα χρήστη." -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Χρήστης/ες '%(nick)s' διαγράφηκαν" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Δεν έχει απομείνει χρήστης διαχειριστής, δεν μπορεί να διαγραφεί ο χρήστης" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Επεξεργασία χρήστη %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Χρήστης/ες '%(nick)s' ενημερώθηκαν" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Παρακαλούμε ρύθμισε πρώτα τη διεύθυνση e-mail σου..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Ενημερώθηκαν οι ρυθμίσεις E-mail διακομιστή" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Κωδικός για επαναφορά %(user) χρήστη/ών" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Παρακαλούμε διαμόρφωσε πρώτα τις ρυθμίσεις ταχυδρομείου SMTP..." -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Προβολέας αρχείου φύλλου καταγραφής" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Αίτημα πακέτου ενημέρωσης" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Κατεβάζει πακέτο ενημέρωσης" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Ανοίγει πακέτο ενημέρωσης" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Αντικατάσταση αρχείων" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Οι συνδέσεις βάσης δεδομένων είναι κλειστές" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Σταματάει το διακομιστή" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Η ενημέρωση τελειώσε, παρακαλούμε πιέστε το εντάξει και φορτώστε ξανά τη σελίδα" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Το Αρχείο Ενημέρωσης Δεν Μπόρεσε Να Αποθηκευτεί σε" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Αποτυχία Δημιουργίας Τουλάχιστον Ενός Χρήστη LDAP" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Αποτυχία Δημιουργίας Τουλάχιστον Ενός Χρήστη LDAP" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Σφάλμα: %(ldaperror)s" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Σφάλμα: Δεν επιστράφηκε χρήστης σε απάντηση του διακομιστή LDAP" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "Τουλάχιστον Ένας Χρήστης LDAP Δεν Βρέθηκε Στη Βάση Δεδομένων" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -484,108 +492,112 @@ msgstr "δεν διαμορφώθηκε" msgid "Execution permissions missing" msgstr "Λείπουν άδειες εκτέλεσης" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -598,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:1670 +#: 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" @@ -775,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:1546 +#: 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'" @@ -841,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Σύνδεση" @@ -857,7 +869,7 @@ msgstr "Η μάρκα έχει λήξει" msgid "Success! Please return to your device" msgstr "Επιτυχία! Παρακαλούμε επέστρεψε στη συσκευή σου" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Βιβλία" @@ -882,7 +894,7 @@ msgstr "Κατεβασμένα Βιβλία" msgid "Show Downloaded Books" msgstr "Προβολή Κατεβασμένων Βιβλίων" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Βιβλία με Κορυφαία Αξιολόγηση" @@ -891,7 +903,7 @@ msgid "Show Top Rated Books" msgstr "Προβολή Βιβλίων με Κορυφαία Αξιολόγηση" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Βιβλία που Διαβάστηκαν" @@ -900,7 +912,7 @@ msgid "Show read and unread" msgstr "Προβολή διαβασμένων και αδιάβαστων" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Βιβλία που δεν Διαβάστηκαν" @@ -918,7 +930,7 @@ msgid "Show Random Books" msgstr "Προβολή Τυχαίων Βιβλίων" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Κατηγορίες" @@ -928,7 +940,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Σειρές" @@ -946,7 +958,7 @@ msgid "Show author selection" msgstr "Προβολή επιλογών συγγραφέα" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Εκδότες" @@ -956,7 +968,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Γλώσσες" @@ -980,7 +992,7 @@ msgstr "Μορφές αρχείου" msgid "Show file formats selection" msgstr "Προβολή επιλογών μορφής αρχείου" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Αρχειοθετημένα Βιβλία" @@ -988,7 +1000,7 @@ msgstr "Αρχειοθετημένα Βιβλία" msgid "Show archived books" msgstr "Προβολή αρχειοθετημένων βιβλίων" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Λίστα Βιβλίων" @@ -1060,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 "Σφάλμα κατά το άνοιγμα του ραφιού. Το ράφι δεν υπάρχει ή δεν είναι προσβάσιμο" @@ -1127,177 +1144,177 @@ msgstr "Μια νέα ενημέρωση είναι διαθέσιμη. Κάνε msgid "No release information available" msgstr "Δεν υπάρχουν διαθέσιμες πληροφορίες αποδέσμευσης" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Ανακάλυψε (Τυχαία Βιβλία)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Βιβλία στη Μόδα (Με τα περισσότερα κατεβάσματα)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Κατεβασμένα βιβλία από %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Συγγραφέας: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Εκδότης: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Σειρές: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Αξιολόγηση: %(rating)s stars" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Μορφή αρχείου: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Κατηγορία: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Γλώσσα: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Αναζήτηση" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Κατεβασμένα" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Λίστα αξιολογήσεων" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Λίστα μορφών αρχείου" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Εργασίες" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Εκδόθηκε μετά" -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Εκδόθηκε πριν" -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Αξιολόγηση <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Αξιολόγηση >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Το βιβλίο έχει επιτυχώς μπει σε σειρά για αποστολή στο %(kindlemail)s" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Oυπς! Υπήρξε ένα σφάλμα κατά την αποστολή αυτού του βιβλίου: %(res)s" -#: cps/web.py:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Η διεύθυνση e-mail σου δεν επιτρέπεται να εγγραφεί" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Το e-mail επιβεβαίωσης έχει σταλεί στον e-mail λογαριασμό σου." -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Δεν μπόρεσε να ενεργοποιηθεί η επαλήθευση LDAP" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Δεν μπόρεσε να συνδεθεί: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Λανθασμένο Όνομα Χρήστη ή Κωδικός" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Ο Νέος Κωδικός έχει σταλεί στη διεύθυνση email σου" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Παρακαλούμε συμπλήρωσε ένα έγκυρο όνομα χρήστη για επαναφορά του κωδικού" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Έχεις συνδεθεί ως: '%(nickname)s'" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's προφίλ" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Το προφίλ ενημερώθηκε" @@ -1334,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" @@ -1374,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 "Κατέβασμα" @@ -1541,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:141 +#: 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 "Γίνεται ενημέρωση, παρακαλούμε μη φορτώσεις ξανά αυτή τη σελίδα" @@ -1586,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 "μείωση" @@ -1749,7 +1765,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Αποθήκευση" @@ -1772,7 +1788,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Κλείσιμο" @@ -2245,35 +2261,35 @@ msgstr "Συνήθης Έκφραση για Ταξινόμηση Τίτλου" msgid "Default Settings for New Users" msgstr "Προκαθορισμένες Ρυθμίσεις για Νέους Χρήστες" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Να Επιτρέπεται η Προβολή eBook Viewer" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Να Επιτρέπεται η Επεξεργασία Δημόσιων Ραφιών" @@ -2291,12 +2307,12 @@ msgstr "Γλώσσα Βιβλίων" msgid "Default Visibilities for New Users" msgstr "Προκαθορισμένες Ορατότηες για Νέους Χρήστες" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Προσθήκη ετικετών Επιτρέπεται/Απορρίπτεται" @@ -2463,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 "" @@ -2573,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 "Ρυθμίσεις" @@ -2724,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 "Επανάληψη ροής κειμένου όταν οι μπάρες στο πλάι είναι ανοιχτές." @@ -2957,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 "Κοινοποίηση με Όλους" @@ -3081,19 +3093,23 @@ msgstr "Kobo Μονάδα Συγχρονισμού" msgid "Create/View" msgstr "Δημιουγία/Προβολή" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Διαγραφή Χρήστη" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Δημιουργία Kobo Auth URL" diff --git a/cps/translations/es/LC_MESSAGES/messages.mo b/cps/translations/es/LC_MESSAGES/messages.mo index f3e46184..24ddd3a5 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 549d4dc4..95643652 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -200,283 +200,291 @@ msgstr "¿Realmente quieres cambiar el comportamiento de sincronización de esta msgid "Are you sure you want to change Calibre library location?" msgstr "¿Realmente quieres cambiar la ubicación de la biblioteca Calibre?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "Etiqueta no encontrada" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "Acción no válida" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 no está configurado para la aplicación web" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Por favor, introduce una cuenta de servicio LDAP" -#: cps/admin.py:1110 +#: 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:1112 +#: 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:1116 +#: 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:1118 +#: 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:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "La base de datos no es modificable" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Actualizados los ajustes del servidor de correo electrónico" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Configuración de la base de datos" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "¡Por favor, rellena todos los campos!" -#: cps/admin.py:1348 +#: 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:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Añadir un nuevo usuario" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Usuario '%(user)s' creado" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuario '%(nick)s' eliminado" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "No puedes borrar al Usuario Invitado" -#: cps/admin.py:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Editar Usuario %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuario '%(nick)s' actualizado" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Verificación de cuenta de Gmail exitosa" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Por favor, configure su correo electrónico primero..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Actualizados los ajustes del servidor de correo electrónico" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visor del fichero de log" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Solicitando paquete de actualización" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Descargando paquete de actualización" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Descomprimiendo paquete de actualización" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Remplazando archivos" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Los conexiones con la base datos están cerradas" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Parando el servidor" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Error: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Usuario importado con éxito" @@ -488,108 +496,112 @@ msgstr "no configurado" msgid "Execution permissions missing" msgstr "Faltan permisos de ejecución" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -602,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:1670 +#: 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" @@ -779,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:1546 +#: 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'" @@ -845,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Inicio de sesión" @@ -861,7 +873,7 @@ msgstr "El token ha expirado" msgid "Success! Please return to your device" msgstr "¡Correcto! Por favor regrese a su dispositivo" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Libros" @@ -886,7 +898,7 @@ msgstr "Libros Descargados" msgid "Show Downloaded Books" msgstr "Mostrar Libros Descargados" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Libros mejor valorados" @@ -895,7 +907,7 @@ msgid "Show Top Rated Books" msgstr "Mostrar libros mejor valorados" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Libros leídos" @@ -904,7 +916,7 @@ msgid "Show read and unread" msgstr "Mostrar leídos y no leídos" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Libros no leídos" @@ -922,7 +934,7 @@ msgid "Show Random Books" msgstr "Mostrar libros al azar" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Categorías" @@ -932,7 +944,7 @@ msgstr "Mostrar selección de categorías" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Series" @@ -950,7 +962,7 @@ msgid "Show author selection" msgstr "Mostrar selección de autores" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Editores" @@ -960,7 +972,7 @@ msgstr "Mostrar selección de editores" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Idiomas" @@ -984,7 +996,7 @@ msgstr "Formatos de archivo" msgid "Show file formats selection" msgstr "Mostrar selección de formatos de archivo" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Libros archivados" @@ -992,7 +1004,7 @@ msgstr "Libros archivados" msgid "Show archived books" msgstr "Mostrar libros archivados" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Lista de Libros" @@ -1064,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" @@ -1131,177 +1148,177 @@ msgstr "Hay una nueva actualización disponible. Haz clic en el botón de abajo msgid "No release information available" msgstr "No hay información del lanzamiento disponible" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Descubrir (Libros al azar)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Libros populares (los más descargados)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Libros descargados por %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Autor/es: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Editor/es: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Series: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Calificación: %(rating)s estrellas" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Formato del archivo: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Categoría : %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Idioma: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Buscar" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Descargas" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Lista de calificaciones" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Lista de formatos" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Tareas" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Publicado después de " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Publicado antes de " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Calificación <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Calificación >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Estado de lectura = $(status)s" -#: cps/web.py:1361 +#: 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:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "No se puede activar la autenticación LDAP" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "No se pudo entrar: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Usuario o contraseña inválido" -#: cps/web.py:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Perfil actualizado" @@ -1338,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" @@ -1378,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" @@ -1545,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:141 +#: 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" @@ -1590,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" @@ -1753,7 +1769,7 @@ msgstr "Obtener metadatos" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Guardar" @@ -1776,7 +1792,7 @@ msgstr "Cargando..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Cerrar" @@ -2249,35 +2265,35 @@ msgstr "Expresión regular para ordenar títulos" msgid "Default Settings for New Users" msgstr "Ajustes por defecto para nuevos usuarios" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Usuario administrador" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Permitir descargas" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Permitir visor de libros" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Permitir subidas de archivos" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Permitir editar" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Permitir borrar libros" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Permitir cambiar la contraseña" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Permitir editar estantes públicos" @@ -2295,12 +2311,12 @@ msgstr "Mostrar libros con idioma" msgid "Default Visibilities for New Users" msgstr "Visibilidad predeterminada para nuevos usuarios" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Mostrar libros aleatorios en la vista detallada" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Añadir etiquetas Permitidas/Denegados" @@ -2467,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" @@ -2577,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" @@ -2728,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." @@ -2961,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" @@ -3085,19 +3097,23 @@ msgstr "Token de sincronización de Kobo" msgid "Create/View" msgstr "Crear/Ver" -#: cps/templates/user_edit.html:85 +#: 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 "Añadir columnas de valores propios de Permitidos/Denegados" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "Sincronizar con Kobo solo los libros de las estanterías seleccionadas" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Borrar usuario" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Generar Auth URL de Kobo" diff --git a/cps/translations/fi/LC_MESSAGES/messages.mo b/cps/translations/fi/LC_MESSAGES/messages.mo index e0e7ec8b..5027393b 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 5d918873..68a9efb1 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -197,280 +197,288 @@ msgstr "Oletko varma, että haluat poistaa hyllyn?" msgid "Are you sure you want to change Calibre library location?" msgstr "Haluatko varmasti pysäyttää Calibre-Webin?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "" + +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Sähköpostipalvelimen tiedot päivitetty" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Ominaisuuksien asetukset" -#: cps/admin.py:1340 cps/web.py:1487 +#: 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:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Sähköpostiosoite ei ole toimivasta domainista" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Lisää uusi käyttäjä" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Käyttäjä '%(user)s' lisätty" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Käyttäjä '%(nick)s' poistettu" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: 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:1470 cps/admin.py:1595 +#: 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:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Käyttäjä '%(nick)s' päivitetty" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Sähköpostipalvelimen tiedot päivitetty" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Lokitiedoston katselin" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Haetaan päivitystiedostoa" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Ladataan päivitystiedostoa" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Puretaan päivitystiedostoa" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Korvataan tiedostoja" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Tietokantayhteydet on katkaistu" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Sammutetaan palvelin" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -482,108 +490,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -596,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:1670 +#: 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 "" @@ -773,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:1546 +#: 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\"" @@ -839,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Kirjaudu sisään" @@ -855,7 +867,7 @@ msgstr "Valtuutus vanhentunut" msgid "Success! Please return to your device" msgstr "Onnistui! Ole hyvä ja palaa laitteellesi" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Kirjat" @@ -880,7 +892,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Parhaiten arvioidut kirjat" @@ -889,7 +901,7 @@ msgid "Show Top Rated Books" msgstr "Näytä parhaiten arvioidut kirjat" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Luetut kirjat" @@ -898,7 +910,7 @@ msgid "Show read and unread" msgstr "Näytä luetut ja lukemattomat" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Lukemattomat kirjat" @@ -916,7 +928,7 @@ msgid "Show Random Books" msgstr "Näytä satunnausia kirjoja" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Kategoriat" @@ -926,7 +938,7 @@ msgstr "Näytä kategoriavalinta" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Sarjat" @@ -944,7 +956,7 @@ msgid "Show author selection" msgstr "Näytä kirjailijavalinta" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Julkaisijat" @@ -954,7 +966,7 @@ msgstr "Näytä julkaisijavalinta" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Kielet" @@ -978,7 +990,7 @@ msgstr "Tiedotomuodot" msgid "Show file formats selection" msgstr "Näytä tiedostomuotovalinta" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -986,7 +998,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1058,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" @@ -1125,177 +1142,177 @@ msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi ve msgid "No release information available" msgstr "Ei päivitystietoa saatavilla" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Löydä (satunnaiset kirjat)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Kuumat kirjat (ladatuimmat)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Kirjailija: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Julkaisija: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Sarja: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Arvostelu: %(rating)s tähteä" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Tiedostomuoto: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Kieli: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Hae" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "DLS" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Arvostelulistaus" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Tiedostomuotolistaus" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Tehtävät" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Julkaistu alkaen " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Julkaisut ennen " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Arvostelu <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Arvostelu >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "LDAP autnetikoinnin aktivointi ei onnistu" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1564 cps/web.py:1589 +#: 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:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "olet kirjautunut tunnuksella: '%(nickname)s'" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)sn profiili" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profiili päivitetty" @@ -1332,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 "" @@ -1372,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" @@ -1539,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:141 +#: 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" @@ -1584,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ä" @@ -1747,7 +1763,7 @@ msgstr "Hae metadata" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "" @@ -1770,7 +1786,7 @@ msgstr "Ladataan..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Sulje" @@ -2242,35 +2258,35 @@ msgstr "Regular expression nimikkeiden järjestämiseen" msgid "Default Settings for New Users" msgstr "Uuden käyttäjän oletusasetukset" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Pääkäyttäjä" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Salli kirjojen lataukset" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Salli kirjojen luku" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Salli lisäykset" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Salli muutokset" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: 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:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Salli sananan vaihto" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Salli julkisten hyllyjen editointi" @@ -2288,12 +2304,12 @@ msgstr "Näytä kirjat kielellä" msgid "Default Visibilities for New Users" msgstr "Oletusnäkymä uusille käyttäjille" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Näytä satunnaisia kirjoja näkymässä" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" @@ -2459,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 "" @@ -2569,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" @@ -2720,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." @@ -2953,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?" @@ -3077,19 +3089,23 @@ msgstr "" msgid "Create/View" msgstr "" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Poista tämä käyttäjä" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "" diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo index 7992b4fe..29820fa8 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 36b45299..75e834a0 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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" @@ -91,7 +91,7 @@ msgstr "Utilisateur admin" msgid "All" msgstr "Tout" -#: cps/admin.py:343 cps/admin.py:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 ?" @@ -212,283 +212,291 @@ msgstr "Voulez-vous vraiment supprimer l’étagère?" msgid "Are you sure you want to change Calibre library location?" msgstr "Voulez-vous vraiment arrêter Calibre-Web ?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "Étiquette introuvable" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "Action invalide" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 n'est pas configuré pour l'application Web" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Veuillez entrer un compte de service LDAP" -#: cps/admin.py:1110 +#: 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:1112 +#: 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:1116 +#: 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:1118 +#: 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:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "La base de données n'est pas accessible en écriture" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Les paramètres du serveur de courriels ont été mis à jour" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Configuration des options" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Veuillez compléter tous les champs !" -#: cps/admin.py:1348 +#: 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:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Ajouter un nouvel utilisateur" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Utilisateur '%(user)s' créé" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Utilisateur '%(nick)s' supprimé" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "Impossible de supprimer l’utilisateur Invité" -#: cps/admin.py:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Éditer l'utilisateur %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Utilisateur '%(nick)s' mis à jour" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "La vérification du compte Gmail réussie" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Veuillez d'abord configurer votre adresse de courriel..." -#: cps/admin.py:1565 +#: 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:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visualiseur de fichier journal" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Demande de mise à jour" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Téléchargement de la mise à jour" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Décompression de la mise à jour" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Remplacement des fichiers" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Les connexions à la base de données ont été fermées" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Arrêt du serveur" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Erreur : %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} utilisateur importé avec succès" @@ -500,108 +508,112 @@ msgstr "non configuré" msgid "Execution permissions missing" msgstr "Les permissions d'exécutions manquantes" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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 "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:1675 +#: 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" @@ -614,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:1670 +#: 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 "" -#: 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" @@ -791,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:1546 +#: 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'" @@ -857,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Connexion" @@ -873,7 +885,7 @@ msgstr "Jeton expiré" msgid "Success! Please return to your device" msgstr "Réussite! Merci de vous tourner vers votre appareil" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Livres" @@ -898,7 +910,7 @@ msgstr "Livres téléchargés" msgid "Show Downloaded Books" msgstr "Montrer les livres téléchargés" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Livres les mieux notés" @@ -907,7 +919,7 @@ msgid "Show Top Rated Books" msgstr "Montrer les livres les mieux notés" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Livres lus" @@ -916,7 +928,7 @@ msgid "Show read and unread" msgstr "Montrer lus et non-lus" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Livres non-lus" @@ -934,7 +946,7 @@ msgid "Show Random Books" msgstr "Montrer des livres au hasard" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Catégories" @@ -944,7 +956,7 @@ msgstr "Montrer la sélection par catégories" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Séries" @@ -962,7 +974,7 @@ msgid "Show author selection" msgstr "Montrer la sélection par auteur" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Éditeurs" @@ -972,7 +984,7 @@ msgstr "Montrer la sélection par éditeur" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Langues" @@ -996,7 +1008,7 @@ msgstr "Formats de fichier" msgid "Show file formats selection" msgstr "Afficher la sélection des formats de fichiers" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Livres archivés" @@ -1004,7 +1016,7 @@ msgstr "Livres archivés" msgid "Show archived books" msgstr "Afficher les livres archivés" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Liste des livres" @@ -1076,41 +1088,46 @@ msgstr "Modifier une étagère" 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 "É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" @@ -1143,177 +1160,177 @@ msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-desso msgid "No release information available" msgstr "Aucune information concernant cette version n’est disponible" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Découvrir (Livres au hasard)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Livres populaires (les plus téléchargés)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Livres téléchargés par %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Auteur : %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Éditeur : '%(name)s'" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Séries : %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Évaluation : %(rating)s étoiles" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Format de fichier : %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Catégorie : %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Langue : %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Chercher" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Téléchargements" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Liste des évaluations" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Liste de formats de fichiers" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Tâches" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Publié après le " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Publié avant le " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Évaluation <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Évaluation >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Status de lecture = %(status)s" -#: cps/web.py:1361 +#: 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:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Impossible d’activer l’authentification LDAP" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Impossible de se connecter: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: 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:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Profil de %(name)s" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil mis à jour" @@ -1350,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" @@ -1390,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" @@ -1557,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:141 +#: 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" @@ -1602,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" @@ -1765,7 +1781,7 @@ msgstr "Obtenir les métadonnées" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Sauvegarder" @@ -1788,7 +1804,7 @@ msgstr "Chargement..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Fermer" @@ -2261,35 +2277,35 @@ msgstr "Expression régulière à utiliser pour trier les titres" msgid "Default Settings for New Users" msgstr "Réglages par défaut pour les nouveaux utilisateurs" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Utilisateur admin" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Permettre les téléchargements" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Autoriser le visionneur de livres" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Permettre le téléversement de fichiers" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Permettre l'édition" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Permettre la suppression de livres" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Permettre le changement de mot de passe" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Autoriser la modification d’étagères publiques" @@ -2307,12 +2323,12 @@ msgstr "Montrer les livres dans la langue" msgid "Default Visibilities for New Users" msgstr "Mode de visualisation par défaut pour les nouveaux utilisateurs" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:84 #: cps/templates/user_table.html:154 msgid "Show Random Books in Detail View" msgstr "Montrer aléatoirement des livres dans la vue détaillée" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Ajouter les étiquettes autorisées/refusées" @@ -2479,12 +2495,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 "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" @@ -2589,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" @@ -2740,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." @@ -2973,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" @@ -3097,19 +3109,23 @@ msgstr "Jeton de synchro Kobo" msgid "Create/View" msgstr "Créer/visualiser" -#: cps/templates/user_edit.html:85 +#: 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 "Ajouter les valeurs de colonnes personnalisées autorisées/refusées" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "Synchroniser uniquement les livres dans les étagères sélectionnées avec Kobo" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Supprimer l'utilisateur" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Générer l'URL d'authentification Kobo" diff --git a/cps/translations/hu/LC_MESSAGES/messages.mo b/cps/translations/hu/LC_MESSAGES/messages.mo index dbec4a92..e55bd394 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 6343df50..9c651d2f 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -197,280 +197,288 @@ msgstr "Valóban törölni akarod a polcot?" msgid "Are you sure you want to change Calibre library location?" msgstr "Valóban le akarod állítani a Calibre-Web-et?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "" + +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Az e-mail kiszolgáló beállításai frissítve." -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Funkciók beállítása" -#: cps/admin.py:1340 cps/web.py:1487 +#: 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:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Az e-mail tartománya nem érvényes." -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Új felhasználó hozzáadása" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "A következő felhasználó létrehozva: %(user)s" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "A felhasználó törölve: %(nick)s" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1470 cps/admin.py:1595 +#: 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:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "A felhasználó frissítve: %(nick)s" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1565 +#: 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:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Frissítési csomag kérése" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Frissítési csomag letöltése" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Frissítési csomag kitömörítése" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Fájlok cserélése" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Adatbázis kapcsolatok lezárva" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Szerver leállítása" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -482,108 +490,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -596,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:1670 +#: 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 "" @@ -773,7 +785,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546 +#: 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" @@ -839,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Belépés" @@ -855,7 +867,7 @@ msgstr "A token érvényessége lejárt." msgid "Success! Please return to your device" msgstr "Sikerült! Újra használható az eszköz." -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "" @@ -880,7 +892,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Legjobb könyvek" @@ -889,7 +901,7 @@ msgid "Show Top Rated Books" msgstr "Legjobbra értékelt könyvek mutatása" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Olvasott könyvek" @@ -898,7 +910,7 @@ msgid "Show read and unread" msgstr "Mutassa az olvasva/olvasatlan állapotot" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Olvasatlan könyvek" @@ -916,7 +928,7 @@ msgid "Show Random Books" msgstr "Mutass könyveket találomra" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Címkék" @@ -926,7 +938,7 @@ msgstr "Címke választó mutatása" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Sorozatok" @@ -944,7 +956,7 @@ msgid "Show author selection" msgstr "Szerző választó mutatása" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Kiadók" @@ -954,7 +966,7 @@ msgstr "Kiadó választó mutatása" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Nyelvek" @@ -978,7 +990,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -986,7 +998,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1058,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ő." @@ -1125,177 +1142,177 @@ msgstr "Új frissítés érhető el. Kattints az alábbi gombra a frissítéshez msgid "No release information available" msgstr "Nincs információ a kiadásról." -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Felfedezés (könyvek találomra)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Kelendő könyvek (legtöbbet letöltöttek)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Kiadó: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Sorozat: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Címke: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Nyelv: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Keresés" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Letöltések" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Feladatok" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Kiadva ezután: " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Kiadva ezelőtt: " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Értékelés <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Értékelés <= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Rossz felhasználó név vagy jelszó!" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s profilja" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "A profil frissítve." @@ -1332,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 "" @@ -1372,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" @@ -1539,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:141 +#: 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" @@ -1584,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" @@ -1747,7 +1763,7 @@ msgstr "Metaadatok beszerzése" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "" @@ -1770,7 +1786,7 @@ msgstr "Betöltés..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Bezárás" @@ -2242,35 +2258,35 @@ msgstr "Reguláris kifejezés címek sorbarendezéséhez" msgid "Default Settings for New Users" msgstr "Új felhasználók alapértelmezett beállításai" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Rendszergazda felhasználó" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Letöltés engedélyezése" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: 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:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Feltöltés engedélyezése" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Szerkesztés engedélyezése" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: 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:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Jelszó változtatásának engedélyezése" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Nyilvános polcok szerkesztésének engedélyezése" @@ -2288,12 +2304,12 @@ msgstr "Mutasd a könyveket a következő nyelvvel" msgid "Default Visibilities for New Users" msgstr "Új felhasználók alapértelmezett látható elemei" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Mutasson könyveket találomra a részletes nézetben" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" @@ -2459,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 "" @@ -2569,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" @@ -2719,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" @@ -2949,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" @@ -3073,19 +3085,23 @@ msgstr "" msgid "Create/View" msgstr "" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "A felhasználó törlése" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "" diff --git a/cps/translations/it/LC_MESSAGES/messages.mo b/cps/translations/it/LC_MESSAGES/messages.mo index 83bc12dc..28e7e873 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 15bd2a43..bf727a8a 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -192,277 +192,285 @@ msgstr "Sei sicuro di voler modificare il comportamento di sincronizzazione dell msgid "Are you sure you want to change Calibre library location?" msgstr "Sei sicuro di voler modificare la posizione della libreria di Calibre?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "Etichetta non trovata" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "Azione non valida" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 non è configurato per Web Application" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Per favore indica un account di servizio LDAP" -#: cps/admin.py:1110 +#: 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:1112 +#: 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:1116 +#: 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:1118 +#: 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:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Il DB non è scrivibile" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 msgid "Database Settings updated" msgstr "Configurazione del Database aggiornata" -#: cps/admin.py:1324 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "Configurazione del Database" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Per favore compila tutti i campi!" -#: cps/admin.py:1348 +#: 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:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Aggiungi un nuovo utente" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "L'utente '%(user)s' è stato creato" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "L'utente '%(nick)s' è stato eliminato" -#: cps/admin.py:1393 cps/admin.py:1394 +#: 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:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Modifica l'utente %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "L'utente '%(nick)s' è stato aggiornato" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "L'account Gmail è stato verificato con successo" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: 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:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Configurazione del server e-mail aggiornata" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visualizzatore del Logfile" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Richiedo il pacchetto di aggiornamento" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Scarico il pacchetto di aggiornamento" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Decomprimo il pacchetto di aggiornamento" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Sostituisco i file" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Le connessioni al database sono chiuse" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Arresto il server" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: 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:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Errore: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} utente importato con successo" @@ -474,108 +482,112 @@ msgstr "non configurato" msgid "Execution permissions missing" msgstr "Mancano i permessi di esecuzione" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -588,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:1670 +#: 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" @@ -764,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:1546 +#: 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'" @@ -830,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Accesso" @@ -846,7 +858,7 @@ msgstr "Il token è scaduto" msgid "Success! Please return to your device" msgstr "Riuscito! Torna al tuo dispositivo" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Libri" @@ -871,7 +883,7 @@ msgstr "Libri scaricati" msgid "Show Downloaded Books" msgstr "Mostra l'opzione per la visualizzazione dei libri scaricati" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Libri meglio valutati" @@ -880,7 +892,7 @@ msgid "Show Top Rated Books" msgstr "Mostra l'opzione per la selezione dei libri meglio valutati" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Libri letti" @@ -889,7 +901,7 @@ msgid "Show read and unread" msgstr "Mostra l'opzione per la selezione letto e non letto" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Libri non letti" @@ -907,7 +919,7 @@ msgid "Show Random Books" msgstr "Mostra libri casualmente" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Categorie" @@ -917,7 +929,7 @@ msgstr "Mostra l'opzione per la selezione delle categorie" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Serie" @@ -935,7 +947,7 @@ msgid "Show author selection" msgstr "Mostra l'opzione per la selezione degli autori" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Editori" @@ -945,7 +957,7 @@ msgstr "Mostra l'opzione per la selezione degli editori" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Lingue" @@ -969,7 +981,7 @@ msgstr "Formati file" msgid "Show file formats selection" msgstr "Mostra l'opzione per la selezione del formato dei file" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Libri archiviati" @@ -977,7 +989,7 @@ msgstr "Libri archiviati" msgid "Show archived books" msgstr "Mostra l'opzione per la selezione dei libri archiviati" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Elenco libri" @@ -1048,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" @@ -1115,177 +1132,177 @@ msgstr "Nuovo aggiornamento disponibile. Clicca sul pulsante sottostante per agg msgid "No release information available" msgstr "Non sono disponibili informazioni sulla versione" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Scopri (libri casuali)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "I libri più richiesti" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "I libri scaricati da %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Autore: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Editore: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Serie: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Valutazione: %(rating)s stelle" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Formato del file: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Categoria: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Lingua: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Cerca" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Downloads" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Elenco delle valutazioni" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Elenco dei formati" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Compito" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Pubblicato dopo il " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Pubblicato prima del " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Valutazione <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Valutazione >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Stato di lettura = %(status)s" -#: cps/web.py:1361 +#: 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:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Non posso attivare l'autenticazione LDAP" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Non posso accedere: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Nome utente o password errati" -#: cps/web.py:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Profilo di %(name)s" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profilo aggiornato" @@ -1322,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" @@ -1362,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" @@ -1528,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:141 +#: 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." @@ -1573,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" @@ -1736,7 +1752,7 @@ msgstr "Ottieni metadati" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Salva" @@ -1758,7 +1774,7 @@ msgstr "Caricamento in corso..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Chiudi" @@ -2229,35 +2245,35 @@ msgstr "Espressione regolare per ordinare la visualizzazione dei titoli" msgid "Default Settings for New Users" msgstr "Impostazioni predefinite per i nuovi utenti" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Utente amministratore" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Permetti il download" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Permetti l'utilizzo del visualizzatore di libri" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Permetti l'upload" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Permetti la modifica" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Permetti l'eliminazione di libri" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Permetti la modifica della password" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Permetti la modifica degli scaffali pubblici" @@ -2273,12 +2289,12 @@ msgstr "Lingua predefinita di presentazione dei libri" msgid "Default Visibilities for New Users" msgstr "Visibilità predefinita per i nuovi utenti" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Mostra libri scelti aleatoriamente nella vista dettagliata" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Aggiungi categorie permesse/negate" @@ -2444,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" @@ -2554,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" @@ -2703,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." @@ -2931,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" @@ -3055,19 +3067,23 @@ msgstr "Token Kobo Sync" msgid "Create/View" msgstr "Crea/Visualizza" -#: cps/templates/user_edit.html:85 +#: 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 "Aggiungi valori personali permessi/negati nelle colonne" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "Sincronizza con Kobo unicamene i libri negli scaffali selezionati" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Elimina utente" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Genera un URL di autenticazione per Kobo" diff --git a/cps/translations/ja/LC_MESSAGES/messages.mo b/cps/translations/ja/LC_MESSAGES/messages.mo index b06a320d..c70ce689 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 db9458ff..2c944b2a 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "" @@ -192,280 +192,288 @@ msgstr "" msgid "Are you sure you want to change Calibre library location?" msgstr "" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "" + +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "メールサーバの設定を更新しました" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "機能設定" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "全ての項目を入力してください" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "このメールは有効なドメインからのものではありません" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "新規ユーザ追加" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "ユーザ '%(user)s' を作成しました" -#: cps/admin.py:1371 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "このメールアドレスかニックネームで登録されたアカウントが見つかりました" -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "ユーザ '%(nick)s' を削除しました" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "%(nick)s を編集" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "ユーザ '%(nick)s' を更新しました" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "テストメールを %(res)s に送信中にエラーが発生しました" -#: cps/admin.py:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "メールサーバの設定を更新しました" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "%(user)s 用のパスワードをリセット" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "初めにSMTPメールの設定をしてください" -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "更新データを要求中" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "更新データをダウンロード中" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "更新データを展開中" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "ファイルを置換中" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "データベースの接続を切断完了" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "サーバ停止中" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "アップデート完了、OKを押してページをリロードしてください" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -477,108 +485,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -591,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:1670 +#: 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 "" @@ -768,7 +780,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546 +#: 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 としてログイン中" @@ -834,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "ログイン" @@ -850,7 +862,7 @@ msgstr "トークンが無効です" msgid "Success! Please return to your device" msgstr "成功です!端末に戻ってください" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "" @@ -875,7 +887,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "" @@ -884,7 +896,7 @@ msgid "Show Top Rated Books" msgstr "" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "読んだ本" @@ -893,7 +905,7 @@ msgid "Show read and unread" msgstr "既読の本と未読の本を表示" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "未読の本" @@ -911,7 +923,7 @@ msgid "Show Random Books" msgstr "ランダムで本を表示" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "カテゴリ" @@ -921,7 +933,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "シリーズ" @@ -939,7 +951,7 @@ msgid "Show author selection" msgstr "著者選択を表示" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "出版社" @@ -949,7 +961,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "言語" @@ -973,7 +985,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -981,7 +993,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1053,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 "本棚を開けません。この本棚は存在しないかアクセスできません" @@ -1120,177 +1137,177 @@ msgstr "アップデートが利用可能です。下のボタンをクリック msgid "No release information available" msgstr "リリース情報がありません" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "本を見つける (ランダムで表示)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "出版社: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "シリーズ: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "カテゴリ: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "言語: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "検索" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "タスク" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "これ以降に出版 " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "これ以前に出版 " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "評価 <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "評価 >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "本の %(kindlemail)s への送信がキューに追加されました" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "%(res)s を送信中にエラーが発生しました" -#: cps/web.py:1463 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "初めにKindleのメールアドレスを設定してください" -#: cps/web.py:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "このメールアドレスは登録が許可されていません" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "確認メールがこのメールアドレスに送信されました。" -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "ユーザ名またはパスワードが違います" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s のプロフィール" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "プロフィールを更新しました" @@ -1327,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 "" @@ -1367,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 "ダウンロード" @@ -1534,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:141 +#: 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 +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 "減らす" @@ -1742,7 +1758,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "" @@ -1765,7 +1781,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "閉じる" @@ -2237,35 +2253,35 @@ msgstr "" msgid "Default Settings for New Users" msgstr "" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: 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:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "みんなの本棚の編集を許可" @@ -2282,12 +2298,12 @@ msgstr "" msgid "Default Visibilities for New Users" msgstr "" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" @@ -2453,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 "" @@ -2563,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 "設定" @@ -2713,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 "" @@ -2943,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 "" @@ -3067,19 +3079,23 @@ msgstr "" msgid "Create/View" msgstr "" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "" diff --git a/cps/translations/km/LC_MESSAGES/messages.mo b/cps/translations/km/LC_MESSAGES/messages.mo index b5af5537..9a28d5bd 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 365a89f7..37083fc2 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "តើអ្នកពិតជាចង់លុបធ្នើនេះមែនទេ?" @@ -198,279 +198,287 @@ msgstr "តើអ្នកពិតជាចង់លុបធ្នើនេះ msgid "Are you sure you want to change Calibre library location?" msgstr "តើអ្នកពិតជាចង់លុបធ្នើនេះមែនទេ?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "" + +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "ទំនាក់ទំនងទៅមូលដ្ឋានទិន្នន័យត្រូវបានផ្តាច់" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "ការកំណត់មុខងារ" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "សូមបំពេញចន្លោះទាំងអស់!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "បន្ថែមអ្នកប្រើប្រាស់ថ្មី" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "បានបង្កើតអ្នកប្រើប្រាស់ ‘%(user)s’" -#: cps/admin.py:1371 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "អ្នកប្រើប្រាស់ ‘%(nick)s’ ត្រូវបានលុប" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "កែប្រែអ្នកប្រើប្រាស់ %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "អ្នកប្រើប្រាស់ ‘%(nick)s’ ត្រូវបានកែប្រែ" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "សូមកំណត់អ៊ីមែល SMTP ជាមុនសិន" -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "កំពុងស្នើសុំឯកសារបច្ចុប្បន្នភាព" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "កំពុងទាញយកឯកសារបច្ចុប្បន្នភាព" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "កំពុងពន្លាឯកសារបច្ចុប្បន្នភាព" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "ទំនាក់ទំនងទៅមូលដ្ឋានទិន្នន័យត្រូវបានផ្តាច់" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "ការធ្វើបច្ចុប្បន្នភាពបានបញ្ចប់ សូមចុច okay រួចបើកទំព័រជាថ្មី" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -482,108 +490,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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 "" @@ -596,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:1670 +#: 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 "" @@ -772,7 +784,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546 +#: 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 +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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "ចូលប្រើប្រាស់" @@ -854,7 +866,7 @@ msgstr "វត្ថុតាងហួសពេលកំណត់" msgid "Success! Please return to your device" msgstr "ជោគជ័យ! សូមវិលមកឧបករណ៍អ្នកវិញ" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "" @@ -879,7 +891,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "សៀវភៅដែលមានការវាយតម្លៃល្អជាងគេ" @@ -888,7 +900,7 @@ msgid "Show Top Rated Books" msgstr "បង្ហាញសៀវភៅដែលមានការវាយតម្លៃល្អជាងគេ" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "សៀវភៅដែលបានអានរួច" @@ -897,7 +909,7 @@ msgid "Show read and unread" msgstr "បង្ហាញអានរួច និងមិនទាន់អាន" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "សៀវភៅដែលមិនទាន់បានអាន" @@ -915,7 +927,7 @@ msgid "Show Random Books" msgstr "បង្ហាញសៀវភៅចៃដន្យ" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "ប្រភេទនានា" @@ -925,7 +937,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "ស៊េរី" @@ -943,7 +955,7 @@ msgid "Show author selection" msgstr "បង្ហាញជម្រើសអ្នកនិពន្ធ" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "" @@ -953,7 +965,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "ភាសានានា" @@ -977,7 +989,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -985,7 +997,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1057,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 "មានបញ្ហាពេលបើកធ្នើ។ ពុំមានធ្នើ ឬមិនអាចបើកបាន" @@ -1124,177 +1140,177 @@ msgstr "" msgid "No release information available" msgstr "" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "ស្រាវជ្រាវ (សៀវភៅចៃដន្យ)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "សៀវភៅដែលត្រូវបានទាញយកច្រើនជាងគេ" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "ស៊េរី៖ %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "ប្រភេទ៖ %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "ភាសា៖ %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "ស្វែងរក" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "ឯកសារ DLS" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "កិច្ចការនានា" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "បានបោះពុម្ភក្រោយ " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "បានបោះពុម្ភមុន " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "ការវាយតម្លៃ <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "ការវាយតម្លៃ >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "សៀវភៅបានចូលជួរសម្រាប់ផ្ញើទៅ %(kindlemail)s ដោយជោគជ័យ" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "មានបញ្ហានៅពេលផ្ញើសៀវភៅនេះ៖ %(res)s" -#: cps/web.py:1463 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "ខុសឈ្មោះអ្នកប្រើប្រាស់ ឬលេខសម្ងាត់" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "ព័ត៌មានសង្ខេបរបស់ %(name)s" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "ព័ត៌មានសង្ខេបបានកែប្រែ" @@ -1331,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 "" @@ -1371,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 "ទាញយក" @@ -1538,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:141 +#: 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 "កំពុងធ្វើបច្ចុប្បន្នភាព សូមកុំបើកទំព័រជាថ្មី" @@ -1583,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 "" @@ -1746,7 +1761,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "" @@ -1769,7 +1784,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "បិទ" @@ -2240,35 +2255,35 @@ msgstr "Regular expression ដើម្បីរៀបចំណងជើងត msgid "Default Settings for New Users" msgstr "ការកំណត់មកស្រាប់សម្រាប់អ្នកប្រើប្រាស់ថ្មី" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: 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:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "អនុញ្ញាតឲកែប្រែធ្នើសាធារណៈ" @@ -2286,12 +2301,12 @@ msgstr "បង្ហាញសៀវភៅដែលមានភាសា" msgid "Default Visibilities for New Users" msgstr "ភាពមើលឃើញដែលមកស្រាប់សម្រាប់អ្នកប្រើប្រាស់ថ្មី" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" @@ -2457,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 "" @@ -2567,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 "ការកំណត់" @@ -2717,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 "សេរេអត្ថបទនៅពេលបើកផ្ទាំងចំហៀង។" @@ -2947,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 "តើធ្នើនេះគួរជាសាធារណៈទេ?" @@ -3071,19 +3082,23 @@ msgstr "" msgid "Create/View" msgstr "" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "លុបអ្នកប្រើប្រាស់នេះ" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" 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..fab76591 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..23a73726 --- /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-10 17:37+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 f28ef909..104e3132 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 7cc832e6..760b890a 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -198,282 +198,290 @@ msgstr "Weet je zeker dat je de synchronisatiegedrag van boekenplanken voor de g msgid "Are you sure you want to change Calibre library location?" msgstr "Weet je zeker dat je de locatie van de Calibre-bibliotheek wil veranderen?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "Tag niet gevonden" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "Ongeldige actie" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 is niet geconfigureerd voor webapplicatie" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Voer een LDAP Service Account in" -#: cps/admin.py:1110 +#: 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:1112 +#: 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:1116 +#: 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:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP Gebruiker Filter heeft een niet-gebalanceerd haakje" -#: cps/admin.py:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Kan niet schrijven naar database" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "E-mailserver-instellingen bijgewerkt" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Databaseconfiguratie" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Vul alle velden in!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "Het e-mailadres bevat geen geldige domeinnaam" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Gebruiker toevoegen" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Gebruiker '%(user)s' aangemaakt" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Gebruiker '%(nick)s' verwijderd" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "Kan Gast gebruiker niet verwijderen" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Kan laatste systeembeheerder niet verwijderen" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Gebruiker '%(nick)s' bewerken" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Gebruiker '%(nick)s' bijgewerkt" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Gmail Account succesvol geverifieerd" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Gelieve eerst je e-mail adres configureren..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "E-mailserver-instellingen bijgewerkt" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Wachtwoord voor gebruiker %(user)s is hersteld" -#: cps/admin.py:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Logbestand lezer" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Update opvragen" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Update downloaden" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Update uitpakken" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Update toepassen" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Databaseverbindingen zijn gesloten" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Bezig met stoppen van Calibre-Web" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Fout: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Gebruiker succesvol geïmporteerd" @@ -485,108 +493,112 @@ msgstr "niet geconfigureerd" msgid "Execution permissions missing" msgstr "Kan programma niet uitvoeren" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -599,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:1670 +#: 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" @@ -776,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:1546 +#: 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'" @@ -842,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Inloggen" @@ -858,7 +870,7 @@ msgstr "Toegangssleutel is verlopen" msgid "Success! Please return to your device" msgstr "Gelukt! Ga terug naar je apparaat" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Boeken" @@ -883,7 +895,7 @@ msgstr "Gedownloade boeken" msgid "Show Downloaded Books" msgstr "Gedownloade boeken tonen" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Best beoordeelde boeken" @@ -892,7 +904,7 @@ msgid "Show Top Rated Books" msgstr "Best beoordeelde boeken tonen" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Gelezen boeken" @@ -901,7 +913,7 @@ msgid "Show read and unread" msgstr "Gelezen/Ongelezen boeken tonen" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Ongelezen boeken" @@ -919,7 +931,7 @@ msgid "Show Random Books" msgstr "Willekeurige boeken tonen" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Categorieën" @@ -929,7 +941,7 @@ msgstr "Categoriekeuze tonen" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Boekenreeksen" @@ -947,7 +959,7 @@ msgid "Show author selection" msgstr "Auteurkeuze tonen" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Uitgevers" @@ -957,7 +969,7 @@ msgstr "Uitgeverskeuze tonen" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Talen" @@ -981,7 +993,7 @@ msgstr "Bestandsformaten" msgid "Show file formats selection" msgstr "Bestandsformaten tonen" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Gearchiveerde boeken" @@ -989,7 +1001,7 @@ msgstr "Gearchiveerde boeken" msgid "Show archived books" msgstr "Gearchiveerde boeken tonen" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Boekenlijst" @@ -1061,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" @@ -1128,177 +1145,177 @@ msgstr "Er is een update beschikbaar. Klik op de knop hieronder om te updaten na msgid "No release information available" msgstr "Geen update-informatie beschikbaar" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Verkennen (willekeurige boeken)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Populaire boeken (meest gedownload)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Gedownloade boeken door %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Auteur: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Uitgever: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Reeks: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Beoordeling: %(rating)s sterren" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Bestandsformaat: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Categorie: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Zoeken" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Downloads" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Beoordelingen" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Alle bestandsformaten" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Taken" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Gepubliceerd na " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Gepubliceerd vóór " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Beoordeling <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Beoordeling >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Lees Status = %(status)s" -#: cps/web.py:1361 +#: 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:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Kan de LDAP authenticatie niet activeren" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Inloggen mislukt: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Verkeerde gebruikersnaam of wachtwoord" -#: cps/web.py:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)ss profiel" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profiel bijgewerkt" @@ -1335,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" @@ -1375,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" @@ -1542,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:141 +#: 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" @@ -1587,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" @@ -1750,7 +1766,7 @@ msgstr "Metagegevens ophalen" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Opslaan" @@ -1773,7 +1789,7 @@ msgstr "Bezig met laden..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Sluiten" @@ -2246,35 +2262,35 @@ msgstr "Reguliere expressie voor het sorteren op titel" msgid "Default Settings for New Users" msgstr "Standaardinstellingen voor nieuwe gebruikers" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Systeembeheerder" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Downloads toestaan" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Boeken lezen toestaan" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Uploads toestaan" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Bewerken toestaan" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Verwijderen van boeken toestaan" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Wachtwoord wijzigen toestaan" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Bewerken van openbare boekenplanken toestaan" @@ -2292,12 +2308,12 @@ msgstr "Taal van boeken" msgid "Default Visibilities for New Users" msgstr "Standaard zichtbaar voor nieuwe gebruikers" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Willekeurige boeken tonen in gedetailleerde weergave" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Voeg toegestane/geweigerde tags toe" @@ -2464,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" @@ -2574,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" @@ -2725,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." @@ -2958,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" @@ -3082,19 +3094,23 @@ msgstr "Kobo Sync Token" msgid "Create/View" msgstr "Aanmaken/Bekijken" -#: cps/templates/user_edit.html:85 +#: 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 "Voeg toegestane/geweigerde aangepaste kolomwaarden toe" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "Synchroniseer alleen boeken op geselecteerde boekenplanken met Kobo" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Gebruiker verwijderen" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Genereer Kobo Auth URL" diff --git a/cps/translations/pl/LC_MESSAGES/messages.mo b/cps/translations/pl/LC_MESSAGES/messages.mo index 641be5ae..e8ac8faa 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 781fe840..ab447e29 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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ę?" @@ -197,284 +197,292 @@ msgstr "Czy na pewno chcesz zmienić zachowanie synchronizacji półek dla wybra msgid "Are you sure you want to change Calibre library location?" msgstr "Czy na pewno chcesz zmienić lokalizację biblioteki Calibre?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 #, fuzzy msgid "Tag not found" msgstr "Nie znaleziono znacznika" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "Nieprawidłowe działanie" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 nie został skonfigurowany dla aplikacji webowej" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "Proszę wprowadzić konto usługi LDAP" -#: cps/admin.py:1110 +#: 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:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Filtr obiektów grupy LDAP ma niedopasowany nawias" -#: cps/admin.py:1116 +#: 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:1118 +#: 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:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "Baza danych nie jest zapisywalna" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Zaktualizowano ustawienia serwera poczty e-mail" -#: cps/admin.py:1324 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "Konfiguracja bazy danych" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Proszę wypełnić wszystkie pola!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-mail nie pochodzi z prawidłowej domeny" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Dodaj nowego użytkownika" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Użytkownik '%(user)s' został utworzony" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Użytkownik '%(nick)s' został usunięty" -#: cps/admin.py:1393 cps/admin.py:1394 +#: 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:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Edytuj użytkownika %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Użytkownik '%(nick)s' został zaktualizowany" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "Weryfikacja konta Gmail przebiegła pomyślnie" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Najpierw skonfiguruj swój adres e-mail..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Zaktualizowano ustawienia serwera poczty e-mail" # ??? -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Zrestartowano hasło użytkownika %(user)s" -#: cps/admin.py:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Przeglądanie dziennika" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Żądanie o pakiet aktualizacji" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Pobieranie pakietu aktualizacji" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Rozpakowywanie pakietu aktualizacji" # ??? -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Zastępowanie plików" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Połączenia z bazą danych zostały zakończone" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Zatrzymywanie serwera" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Błąd: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Użytkownik pomyślnie zaimportowany" @@ -486,108 +494,112 @@ msgstr "nie skonfigurowane" msgid "Execution permissions missing" msgstr "Brak uprawnienia do wykonywania pliku" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -600,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:1670 +#: 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" @@ -779,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:1546 +#: 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'" @@ -845,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Zaloguj się" @@ -861,7 +873,7 @@ msgstr "Token wygasł" msgid "Success! Please return to your device" msgstr "Powodzenie! Wróć do swojego urządzenia" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Książki" @@ -886,7 +898,7 @@ msgstr "Pobrane książki" msgid "Show Downloaded Books" msgstr "Pokaż pobrane książki" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Najwyżej ocenione" @@ -895,7 +907,7 @@ msgid "Show Top Rated Books" msgstr "Pokaż menu najwyżej ocenionych książek" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Przeczytane" @@ -904,7 +916,7 @@ msgid "Show read and unread" msgstr "Pokaż menu przeczytane i nieprzeczytane" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Nieprzeczytane" @@ -922,7 +934,7 @@ msgid "Show Random Books" msgstr "Pokazuj losowe książki" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Kategorie" @@ -932,7 +944,7 @@ msgstr "Pokaż menu wyboru kategorii" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Cykle" @@ -950,7 +962,7 @@ msgid "Show author selection" msgstr "Pokaż menu wyboru autora" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Wydawcy" @@ -960,7 +972,7 @@ msgstr "Pokaż menu wyboru wydawcy" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Języki" @@ -984,7 +996,7 @@ msgstr "Formaty plików" msgid "Show file formats selection" msgstr "Pokaż menu formatu plików" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Zarchiwizowane książki" @@ -992,7 +1004,7 @@ msgstr "Zarchiwizowane książki" msgid "Show archived books" msgstr "Pokaż zarchiwizowane książki" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Lista książek" @@ -1064,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" @@ -1131,178 +1148,178 @@ msgstr "Dostępna jest nowa aktualizacja. Kliknij przycisk poniżej, aby zaktual msgid "No release information available" msgstr "Brak dostępnych informacji o wersji" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Odkrywaj (losowe książki)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Najpopularniejsze książki (najczęściej pobierane)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Książki pobrane przez %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Autor: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Wydawca: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Cykl: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Ocena: %(rating)s gwiazdek" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Format pliku: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Kategoria: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Język: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Szukaj" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "DLS" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Lista z ocenami" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Lista formatów" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Zadania" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Opublikowane po " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Opublikowane przed " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Ocena <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Ocena >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Status przeczytania = %(status)s" -#: cps/web.py:1361 +#: 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:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Nie można aktywować uwierzytelniania LDAP" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Nie można zalogować: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: 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:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Profil użytkownika %(name)s" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Zaktualizowano profil" @@ -1339,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" @@ -1381,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" @@ -1548,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:141 +#: 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" @@ -1593,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ń" @@ -1757,7 +1773,7 @@ msgstr "Uzyskaj metadane" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Zapisz" @@ -1780,7 +1796,7 @@ msgstr "Ładowanie..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Zamknij" @@ -2258,35 +2274,35 @@ msgstr "Wyrażenie regularne dla tytułu sortującego" msgid "Default Settings for New Users" msgstr "Domyślne ustawienia dla nowych użytkowników" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Użytkownik z uprawnieniami administratora" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Zezwalaj na pobieranie" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Zezwalaj na przeglądanie e-booków" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Zezwalaj na wysyłanie" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Zezwalaj na edycję" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Zezwalaj na usuwanie książek" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Zezwalaj na zmianę hasła" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Zezwalaj na edycję półek publicznych" @@ -2304,12 +2320,12 @@ msgstr "Pokaż książki w języku" msgid "Default Visibilities for New Users" msgstr "Domyślne ustawienia widoku dla nowych użytkowników" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Pokaz losowe książki w widoku szczegółowym" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Dodaj dozwolone/zabronione etykiety" @@ -2478,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" @@ -2589,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" @@ -2741,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." @@ -2973,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" @@ -3098,19 +3110,23 @@ msgstr "Token Kobo Sync" msgid "Create/View" msgstr "Utwórz/Przeglądaj" -#: cps/templates/user_edit.html:85 +#: 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 "Dodaj dozwolone/zabronione wartości własnych kolumn" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "Synchronizuj z Kobo tylko książki z wybranych półek" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Usuń tego użytkownika" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Generuj Kobo Auth URL" diff --git a/cps/translations/pt_BR/LC_MESSAGES/messages.mo b/cps/translations/pt_BR/LC_MESSAGES/messages.mo index 38214e1f..0dcfbf90 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 516ad4d6..0bb5879b 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -195,283 +195,291 @@ msgstr "Tem certeza que quer apagar essa estante?" msgid "Are you sure you want to change Calibre library location?" msgstr "Tens a certeza que queres fechar?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 não está configurado para aplicativo da web" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: 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:1112 +#: 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:1116 +#: 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:1118 +#: 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:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "DB não é gravável" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Atualização das configurações do servidor de e-mail" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Configuração das Características" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Por favor, preencha todos os campos!" -#: cps/admin.py:1348 +#: 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:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Adicionar novo usuário" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Usuário '%(user)s' criado" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Usuário '%(nick)s' excluído" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Editar usuário %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Usuário '%(nick)s' atualizado" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: 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:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Atualização das configurações do servidor de e-mail" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "visualizador de arquivo de registro" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Solicitação de pacote de atualização" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Download do pacote de atualização" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Descompactação de pacote de atualização" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Substituição de arquivos" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "As ligações à base de dados estão fechadas" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Parar servidor" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Erro: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} Usuário Importado com Sucesso" @@ -483,108 +491,112 @@ msgstr "não configurado" msgid "Execution permissions missing" msgstr "Faltam as permissões de execução" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -597,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:1670 +#: 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" @@ -774,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:1546 +#: 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'" @@ -840,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Login" @@ -856,7 +868,7 @@ msgstr "O Token expirou" msgid "Success! Please return to your device" msgstr "Sucesso! Por favor, volte ao seu aparelho" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Livros" @@ -881,7 +893,7 @@ msgstr "Livros descarregados" msgid "Show Downloaded Books" msgstr "Mostrar Livros Descarregados" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Livros Mais Bem Avaliados" @@ -890,7 +902,7 @@ msgid "Show Top Rated Books" msgstr "Mostrar os melhores livros avaliados" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Livros Lidos" @@ -899,7 +911,7 @@ msgid "Show read and unread" msgstr "Mostrar lido e não lido" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Livros Não Lidos" @@ -917,7 +929,7 @@ msgid "Show Random Books" msgstr "Mostrar Livros Aleatórios" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Categorias" @@ -927,7 +939,7 @@ msgstr "Mostrar seleção de categoria" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Série" @@ -945,7 +957,7 @@ msgid "Show author selection" msgstr "Mostrar selecção de autor" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Editores" @@ -955,7 +967,7 @@ msgstr "Mostrar selecção de editores" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Idiomas" @@ -979,7 +991,7 @@ msgstr "Formatos de arquivo" msgid "Show file formats selection" msgstr "Mostrar seleção de formatos de arquivo" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Livros Arquivados" @@ -987,7 +999,7 @@ msgstr "Livros Arquivados" msgid "Show archived books" msgstr "Mostrar livros arquivados" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Lista de Livros" @@ -1059,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" @@ -1126,177 +1143,177 @@ msgstr "Uma nova atualização está disponível. Clique no botão abaixo para a msgid "No release information available" msgstr "Não há informações de lançamento disponíveis" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Descobrir (Livros Aleatórios)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Hot Books (Os Mais Descarregados)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Livros baixados por %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Autor: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Editor: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Série: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Avaliação: %(rating)s estrelas" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Formato do arquivo: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Categoria: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Idioma: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Pesquisa" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Downloads" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Lista de classificações" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Lista de formatos de arquivo" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Tarefas" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Publicado depois de " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Publicado antes de " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Avaliação <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Avaliação >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Status de leitura = %(status)s" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Não é possível ativar a autenticação LDAP" -#: cps/web.py:1554 +#: 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:1560 +#: 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:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Nome de usuário ou senha incorretos" -#: cps/web.py:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Perfil de %(name)s's" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Perfil atualizado" @@ -1333,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" @@ -1373,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" @@ -1540,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:141 +#: 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" @@ -1585,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" @@ -1748,7 +1764,7 @@ msgstr "Buscar Metadados" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Salvar" @@ -1771,7 +1787,7 @@ msgstr "A carregar..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Fechar" @@ -2244,35 +2260,35 @@ msgstr "Expressão regular para classificação de títulos" msgid "Default Settings for New Users" msgstr "Configurações padrão para novos usuários" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Usuário Admin" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Permitir Downloads" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Permitir que o eBook Viewer" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Permitir Uploads" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Permitir Editar" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Permitir Livros Excluídos" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Permitir mudança de senha" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Permitir a Edição de Prateleiras Públicas" @@ -2290,12 +2306,12 @@ msgstr "Língua dos Livros" msgid "Default Visibilities for New Users" msgstr "Visibilidades por defeito para novos utilizadores" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Mostrar Livros Aleatórios em Vista de Detalhe" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Adicionar Etiquetas permitidas/negadas" @@ -2462,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" @@ -2572,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" @@ -2723,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." @@ -2956,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" @@ -3080,19 +3092,23 @@ msgstr "Kobo Sync Token" msgid "Create/View" msgstr "Criar/Ver" -#: cps/templates/user_edit.html:85 +#: 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 "Adicionar valores permitidos/definidos da coluna personalizada" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Eliminar Utilizador" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Gerar o Kobo Auth URL" diff --git a/cps/translations/ru/LC_MESSAGES/messages.mo b/cps/translations/ru/LC_MESSAGES/messages.mo index dad3b9e5..e2ba6948 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 62b48c02..bf307f79 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "Вы действительно хотите удалить эту книжную полку?" @@ -198,283 +198,291 @@ msgstr "Вы действительно хотите удалить эту кн msgid "Are you sure you want to change Calibre library location?" msgstr "Вы действительно хотите остановить Calibre-Web?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 не настроен для веб-приложения" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "Неправильное расположение файла журнала, пожалуйста, введите правильный путь." -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "Недопустимое расположение файла журнала доступа, пожалуйста, введите правильный путь" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Пожалуйста, введите провайдера LDAP, порт, DN и идентификатор объекта пользователя" -#: cps/admin.py:1102 +#: cps/admin.py:1123 #, fuzzy msgid "Please Enter a LDAP Service Account and Password" msgstr "Пожалуйста, введите действительное имя пользователя для сброса пароля" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "Фильтр объектов группы LDAP должен иметь один идентификатор формата \"%s\"" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "Фильтр объектов группы LDAP имеет незавершённые круглые скобки" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "Фильтр объектов пользователя LDAP должен иметь один идентификатор формата \"%s\"" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "Фильтр объектов пользователя LDAP имеет незавершенную круглую скобку" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Расположение Базы Данных неверно, пожалуйста, введите правильный путь." -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "Расположение ключевого файла неверно, пожалуйста, введите правильный путь" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "Расположение Certfile не является действительным, пожалуйста, введите правильный путь" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "Настройки E-mail сервера обновлены" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Дополнительный Настройки" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Пожалуйста, заполните все поля!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-mail не из существующей доменной зоны" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Добавить пользователя" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Пользователь '%(user)s' добавлен" -#: cps/admin.py:1371 +#: cps/admin.py:1401 #, fuzzy msgid "Found an existing account for this e-mail address or name." msgstr "Для этого адреса электронной почты или логина уже есть учётная запись." -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Пользователь '%(nick)s' удалён" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "Это последний администратор, невозможно удалить пользователя" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Изменить пользователя %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Пользователь '%(nick)s' обновлён" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Произошла ошибка при отправке тестового письма на: %(res)s" -#: cps/admin.py:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Пожалуйста, сначала настройте свой адрес электронной почты ..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "Настройки E-mail сервера обновлены" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "Пароль для пользователя %(user)s сброшен" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Пожалуйста, сперва настройте параметры SMTP....." -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Просмотр лога" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Проверка обновлений" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Загрузка обновлений" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Распаковка обновлений" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Замена файлов" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Соединения с базой данных закрыты" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Остановка сервера" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Обновления установлены, нажмите ок и перезагрузите страницу" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Не удалось сохранить файл обновления во временной папке." -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 #, fuzzy msgid "Failed to extract at least One LDAP User" msgstr "Не удалось создать хотя бы одного пользователя LDAP" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "Не удалось создать хотя бы одного пользователя LDAP" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Ошибка: %(ldaperror)s" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "Ошибка: ни одного пользователя не найдено в ответ на запрос сервер LDAP" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "По крайней мере, один пользователь LDAP не найден в базе данных" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -486,108 +494,112 @@ msgstr "не настроено" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -600,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:1670 +#: 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" @@ -777,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:1546 +#: 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'" @@ -843,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Логин" @@ -859,7 +871,7 @@ msgstr "Ключ просрочен" msgid "Success! Please return to your device" msgstr "Успешно! Пожалуйста, проверьте свое устройство" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Книги" @@ -884,7 +896,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Книги с наилучшим рейтингом" @@ -893,7 +905,7 @@ msgid "Show Top Rated Books" msgstr "Показывать книги с наивысшим рейтингом" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Прочитанные Книги" @@ -902,7 +914,7 @@ msgid "Show read and unread" msgstr "Показывать прочитанные и непрочитанные" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Непрочитанные Книги" @@ -920,7 +932,7 @@ msgid "Show Random Books" msgstr "Показывать Случайные Книги" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Категории" @@ -930,7 +942,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Серии" @@ -948,7 +960,7 @@ msgid "Show author selection" msgstr "Показывать выбор автора" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Издатели" @@ -958,7 +970,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Языки" @@ -982,7 +994,7 @@ msgstr "Форматы файлов" msgid "Show file formats selection" msgstr "Показать выбор форматов файлов" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -990,7 +1002,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1062,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 "Ошибка открытия Полки. Полка не существует или недоступна" @@ -1129,177 +1146,177 @@ msgstr "Новое обновление доступно. Нажмите на к msgid "No release information available" msgstr "Информация о выпуске недоступна" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Обзор (Случайные Книги)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Популярные книги (часто загружаемые)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Автор: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Издатель: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Серии: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Оценка: %(rating)s звезды(а)" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Формат файла: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Категория: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Язык: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Поиск" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Скачать" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Список рейтингов" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Список форматов файлов" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Задания" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Опубликовано после " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Опубликовано до " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Рейтинг <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Рейтинг >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Книга успешно поставлена в очередь для отправки на %(kindlemail)s" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "При отправке этой книги произошла ошибка: %(res)s" -#: cps/web.py:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "Ваш e-mail не подходит для регистрации" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Письмо с подтверждением отправлено вам на e-mail." -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Не удается активировать LDAP аутентификацию" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Не удалось войти: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Ошибка в имени пользователя или пароле" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Новый пароль был отправлен на ваш адрес электронной почты" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "Пожалуйста, введите действительное имя пользователя для сброса пароля" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Вы вошли как: '%(nickname)s'" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Профиль %(name)s's" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Профиль обновлён" @@ -1336,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 "" @@ -1376,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 "Скачать" @@ -1543,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:141 +#: 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 "Установка обновлений, пожалуйста, не обновляйте страницу" @@ -1588,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 "уменьшить" @@ -1751,7 +1767,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Сохранить" @@ -1774,7 +1790,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Закрыть" @@ -2247,35 +2263,35 @@ msgstr "Регулярное выражение для сортировки за msgid "Default Settings for New Users" msgstr "Настройки по умолчанию для новых пользователей" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: 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:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Разрешить редактирование публичных книжных полок" @@ -2293,12 +2309,12 @@ msgstr "Показать книги на языках" msgid "Default Visibilities for New Users" msgstr "Видимость для новых пользователей(по умолчанию)" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Добавить разрешенные / запрещенные теги" @@ -2465,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 "" @@ -2575,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 "Настройки" @@ -2726,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 "Обновить размещение текста при открытии боковой панели." @@ -2959,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 "Сделать книжную полку доступной для всех ?" @@ -3083,19 +3095,23 @@ msgstr "Kobo Sync Token" msgid "Create/View" msgstr "Создать/Просмотреть" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Удалить этого пользователя" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Создать Kobo Auth URL" diff --git a/cps/translations/sv/LC_MESSAGES/messages.mo b/cps/translations/sv/LC_MESSAGES/messages.mo index fbf3c9e5..b6a9485c 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 7e960eea..a96aeae5 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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?" @@ -195,283 +195,291 @@ msgstr "Är du säker på att du vill ändra den valda rollen för de valda anv msgid "Are you sure you want to change Calibre library location?" msgstr "Är du säker på att du vill stoppa Calibre-Web?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "Taggen hittades inte" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "Ogiltig åtgärd" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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 är inte konfigurerad för webbapplikation" -#: cps/admin.py:1060 +#: 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:1066 +#: 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:1096 +#: 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:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: 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:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP-gruppobjektfilter har omatchande parentes" -#: cps/admin.py:1116 +#: 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:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP-användarobjektfilter har omatchad parentes" -#: cps/admin.py:1125 +#: 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:1127 +#: 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:1134 +#: 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:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: 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:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "DB är inte skrivbar" -#: cps/admin.py:1205 +#: 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:1209 +#: 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:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "E-postserverinställningar uppdaterade" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Funktion konfiguration" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Fyll i alla fält!" -#: cps/admin.py:1348 +#: 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:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Lägg till ny användare" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Användaren '%(user)s' skapad" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Användaren '%(nick)s' borttagen" -#: cps/admin.py:1393 cps/admin.py:1394 +#: 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:1397 +#: 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:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Redigera användaren %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Användaren '%(nick)s' uppdaterad" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 #, fuzzy msgid "Gmail Account Verification Successful" msgstr "Verifiering av G-mail-kontot lyckades" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Vänligen konfigurera din e-postadress först..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "E-postserverinställningar uppdaterade" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Visaren för loggfil" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Begär uppdateringspaketet" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Hämtar uppdateringspaketet" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Packar upp uppdateringspaketet" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Ersätta filer" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Databasanslutningarna är stängda" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Stoppar server" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: 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:1771 +#: 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:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "Fel: %(ldaperror)s" -#: cps/admin.py:1788 +#: 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:1821 +#: 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:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} användare har importerats" @@ -483,108 +491,112 @@ msgstr "inte konfigurerad" msgid "Execution permissions missing" msgstr "Körningstillstånd saknas" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -597,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:1670 +#: 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" @@ -773,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:1546 +#: 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\"" @@ -839,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Logga in" @@ -855,7 +867,7 @@ msgstr "Token har löpt ut" msgid "Success! Please return to your device" msgstr "Lyckades! Vänligen återvänd till din enhet" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "Böcker" @@ -880,7 +892,7 @@ msgstr "Hämtade böcker" msgid "Show Downloaded Books" msgstr "Visa hämtade böcker" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Bäst rankade böcker" @@ -889,7 +901,7 @@ msgid "Show Top Rated Books" msgstr "Visa böcker med bästa betyg" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Lästa böcker" @@ -898,7 +910,7 @@ msgid "Show read and unread" msgstr "Visa lästa och olästa" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Olästa böcker" @@ -916,7 +928,7 @@ msgid "Show Random Books" msgstr "Visa slumpmässiga böcker" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Kategorier" @@ -926,7 +938,7 @@ msgstr "Visa kategorival" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Serier" @@ -944,7 +956,7 @@ msgid "Show author selection" msgstr "Visa författarval" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Förlag" @@ -954,7 +966,7 @@ msgstr "Visa urval av förlag" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Språk" @@ -978,7 +990,7 @@ msgstr "Filformat" msgid "Show file formats selection" msgstr "Visa val av filformat" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "Arkiverade böcker" @@ -986,7 +998,7 @@ msgstr "Arkiverade böcker" msgid "Show archived books" msgstr "Visa arkiverade böcker" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "Boklista" @@ -1058,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" @@ -1125,177 +1142,177 @@ msgstr "En ny uppdatering är tillgänglig. Klicka på knappen nedan för att up msgid "No release information available" msgstr "Ingen versionsinformation tillgänglig" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Upptäck (slumpmässiga böcker)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Heta böcker (mest hämtade)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "Hämtade böcker av %(user)s" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Författare: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Förlag: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Serier: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Betyg: %(rating)s stars" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Filformat: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Kategori: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Språk: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Sök" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "Hämtningar" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Betygslista" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Lista över filformat" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Uppgifter" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Publicerad efter " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Publicerad före " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Betyg <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Betyg >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "Lässtatus = %(status)s" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: 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:1461 +#: 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:1463 +#: 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:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: 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:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "Det går inte att aktivera LDAP-autentisering" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "Det gick inte att logga in: %(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Fel användarnamn eller lösenord" -#: cps/web.py:1571 +#: 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:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)ss profil" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profilen uppdaterad" @@ -1332,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" @@ -1372,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" @@ -1539,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:141 +#: 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" @@ -1584,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" @@ -1747,7 +1763,7 @@ msgstr "Hämta metadata" #: 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "Spara" @@ -1770,7 +1786,7 @@ msgstr "Läser in..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Stäng" @@ -2243,35 +2259,35 @@ msgstr "Reguljärt uttryck för titelsortering" msgid "Default Settings for New Users" msgstr "Standardinställningar för nya användare" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:96 msgid "Admin User" msgstr "Adminstratör användare" -#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "Tillåt Hämtningar" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:105 msgid "Allow eBook Viewer" msgstr "Tillåt bokvisare" -#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Tillåt Uppladdningar" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Tillåt Redigera" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:120 msgid "Allow Delete Books" msgstr "Tillåt borttagning av böcker" -#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Tillåt Ändra lösenord" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Tillåt Redigering av offentliga hyllor" @@ -2289,12 +2305,12 @@ msgstr "Visa böcker med språk" msgid "Default Visibilities for New Users" msgstr "Standardvisibiliteter för nya användare" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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 "Visa slumpmässiga böcker i detaljvyn" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "Lägg till tillåtna/avvisade taggar" @@ -2462,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" @@ -2572,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" @@ -2722,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." @@ -2954,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" @@ -3078,19 +3090,23 @@ msgstr "Kobo Sync Token" msgid "Create/View" msgstr "Skapa/Visa" -#: cps/templates/user_edit.html:85 +#: 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 "Lägg till tillåtna/avvisade anpassade kolumnvärden" -#: cps/templates/user_edit.html:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Ta bort den här användaren" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "Skapa Kobo Auth URL" diff --git a/cps/translations/tr/LC_MESSAGES/messages.mo b/cps/translations/tr/LC_MESSAGES/messages.mo index 1aa97504..2420db12 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 1595fd6d..513f8684 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "" @@ -192,282 +192,290 @@ msgstr "" msgid "Are you sure you want to change Calibre library location?" msgstr "" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "" + +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1102 +#: 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:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "E-posta sunucusu ayarları güncellendi" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Özellik Yapılandırması" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Lütfen tüm alanları doldurun!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "E-posta izin verilen bir servisten değil" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Yeni kullanıcı ekle" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "'%(user)s' kullanıcısı oluşturuldu" -#: cps/admin.py:1371 +#: 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:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Kullanıcı '%(nick)s' silindi" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: 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:1470 cps/admin.py:1595 +#: 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:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "'%(nick)s' kullanıcısı güncellendi" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "" -#: cps/admin.py:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: 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:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "Lütfen önce e-posta adresinizi ayarlayın..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "E-posta sunucusu ayarları güncellendi" -#: cps/admin.py:1607 +#: 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:1613 cps/web.py:1452 +#: 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:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "Log dosyası görüntüleyici" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Güncelleme paketi isteniyor" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Güncelleme paketi indiriliyor" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Güncelleme paketi ayıklanıyor" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "Dosyalar değiştiriliyor" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "Veritabanı bağlantıları kapalı" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "Sunucu durduruyor" -#: cps/admin.py:1696 +#: 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:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: 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:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -479,108 +487,112 @@ msgstr "ayarlanmadı" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -593,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:1670 +#: 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 "" @@ -770,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:1546 +#: 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'" @@ -836,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Giriş" @@ -852,7 +864,7 @@ msgstr "Token süresi doldu" msgid "Success! Please return to your device" msgstr "Başarılı! Lütfen cihazınıza dönün" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "eKitaplar" @@ -877,7 +889,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "" @@ -886,7 +898,7 @@ msgid "Show Top Rated Books" msgstr "" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Okunanlar" @@ -895,7 +907,7 @@ msgid "Show read and unread" msgstr "Okunan ve okunmayanları göster" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Okunmamışlar" @@ -913,7 +925,7 @@ msgid "Show Random Books" msgstr "Rastgele Kitap Göster" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Kategoriler" @@ -923,7 +935,7 @@ msgstr "Kategori seçimini göster" #: 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Seriler" @@ -941,7 +953,7 @@ msgid "Show author selection" msgstr "Yazar seçimini göster" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "Yayıncılar" @@ -951,7 +963,7 @@ msgstr "Yayıncı seçimini göster" #: 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Diller" @@ -975,7 +987,7 @@ msgstr "Biçimler" msgid "Show file formats selection" msgstr "Dosya biçimi seçimini göster" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -983,7 +995,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1055,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" @@ -1122,177 +1139,177 @@ msgstr "Yeni bir güncelleme mevcut. Son sürüme güncellemek için aşağıdak msgid "No release information available" msgstr "Sürüm bilgisi mevcut değil" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Keşfet (Rastgele)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "Yazar: %(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "Yayınevi: %(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Seri: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "Değerlendirme: %(rating)s yıldız" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "Biçim: %(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Kategori: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Dil: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Ara" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "Değerlendirme listesi" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "Biçim listesi" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "Görevler" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "Yayınlanma (sonra)" -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Yayınlanma (önce)" -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "Değerlendirme <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "Değerlendirme >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: 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:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:1463 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "E-posta adresinizle kaydolunmasına izin verilmiyor" -#: cps/web.py:1518 +#: 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:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "LDAP Kimlik Doğrulaması etkinleştirilemiyor" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Yanlış Kullanıcı adı ya da Şifre" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "Yeni şifre e-Posta adresinize gönderildi" -#: cps/web.py:1577 +#: 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:1584 +#: 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:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s Profili" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Profil güncellendi" @@ -1329,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 "" @@ -1369,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" @@ -1536,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:141 +#: 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 "" @@ -1581,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" @@ -1744,7 +1760,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "" @@ -1767,7 +1783,7 @@ msgstr "Yükleniyor..." #: 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Kapak" @@ -2239,35 +2255,35 @@ msgstr "" msgid "Default Settings for New Users" msgstr "" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: cps/templates/config_view_edit.html:92 cps/templates/user_edit.html:101 msgid "Allow Downloads" msgstr "İndirmeye İzin Ver" -#: cps/templates/config_view_edit.html:96 cps/templates/user_edit.html:102 +#: 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:107 +#: cps/templates/config_view_edit.html:101 cps/templates/user_edit.html:110 msgid "Allow Uploads" msgstr "Yüklemeye izin ver" -#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:112 +#: cps/templates/config_view_edit.html:106 cps/templates/user_edit.html:115 msgid "Allow Edit" msgstr "Düzenlemeye İzin ver" -#: cps/templates/config_view_edit.html:111 cps/templates/user_edit.html:117 +#: 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:123 +#: cps/templates/config_view_edit.html:116 cps/templates/user_edit.html:126 msgid "Allow Changing Password" msgstr "Şifre değiştirmeye izin ver" -#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Genel Kitaplıkları düzenlemeye izin ver" @@ -2284,12 +2300,12 @@ msgstr "" msgid "Default Visibilities for New Users" msgstr "" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" @@ -2456,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 "" @@ -2566,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" @@ -2717,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" @@ -2950,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 "" @@ -3074,19 +3086,23 @@ msgstr "" msgid "Create/View" msgstr "" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "" diff --git a/cps/translations/uk/LC_MESSAGES/messages.mo b/cps/translations/uk/LC_MESSAGES/messages.mo index 30a10969..ad6a4e0f 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 c9593fc3..e84a3137 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "Ви справді хочете видалити книжкову полицю?" @@ -196,279 +196,287 @@ msgstr "Ви справді хочете видалити книжкову по msgid "Are you sure you want to change Calibre library location?" msgstr "Ви справді хочете видалити книжкову полицю?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "" + +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "З'єднання з базою даних закрите" -#: cps/admin.py:1324 +#: cps/admin.py:1354 #, fuzzy msgid "Database Configuration" msgstr "Особливі налаштування" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "Будь-ласка, заповніть всі поля!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "Додати користувача" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "Користувач '%(user)s' додан" -#: cps/admin.py:1371 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "Користувача '%(nick)s' видалено" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "Змінити користувача %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "Користувача '%(nick)s' оновлено" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 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:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "Будь-ласка, спочатку сконфігуруйте параметри SMTP" -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "Перевірка оновлень" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "Завантаження оновлень" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "Розпакування оновлення" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "З'єднання з базою даних закрите" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "Оновлення встановлені, натисніть ok і перезавантажте сторінку" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -480,108 +488,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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 "" @@ -594,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:1670 +#: 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 "" @@ -770,7 +782,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546 +#: 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'" @@ -836,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "Ім'я користувача" @@ -852,7 +864,7 @@ msgstr "Час дії токено вичерпано" msgid "Success! Please return to your device" msgstr "Вдалося! Будь-ласка, поверніться до вашого пристрою" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "" @@ -877,7 +889,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "Книги з найкращим рейтингом" @@ -886,7 +898,7 @@ msgid "Show Top Rated Books" msgstr "Показувати книги з найвищим рейтингом" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "Прочитані книги" @@ -895,7 +907,7 @@ msgid "Show read and unread" msgstr "Показувати прочитані та непрочитані книги" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "Непрочитані книги" @@ -913,7 +925,7 @@ msgid "Show Random Books" msgstr "Показувати випадкові книги" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "Категорії" @@ -923,7 +935,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "Серії" @@ -941,7 +953,7 @@ msgid "Show author selection" msgstr "Показувати вибір автора" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "" @@ -951,7 +963,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "Мови" @@ -975,7 +987,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -983,7 +995,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1055,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 "Помилка при відкриванні полиці. Полиця не існує або до неї відсутній доступ" @@ -1122,177 +1138,177 @@ msgstr "" msgid "No release information available" msgstr "" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "Огляд (випадкові книги)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "Популярні книги (найбільш завантажувані)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "Серії: %(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "Категорія: %(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "Мова: %(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "Пошук" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "DLS" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "" -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "Опубліковано до" -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Помилка при відправці книги: %(res)s" -#: cps/web.py:1463 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "Помилка в імені користувача або паролі" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "Профіль %(name)s" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "Профіль оновлено" @@ -1329,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 "" @@ -1369,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 "Завантажити" @@ -1536,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:141 +#: 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 "Встановлення оновлень, будь-ласка, не оновлюйте сторінку" @@ -1581,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 "" @@ -1744,7 +1759,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "" @@ -1767,7 +1782,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "Закрити" @@ -2238,35 +2253,35 @@ msgstr "Regexp для сортування по назві" msgid "Default Settings for New Users" msgstr "Налаштування по замовчуванню для нових користувачів" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: 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:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "Дозволити редагування публічних книжкових полиць" @@ -2284,12 +2299,12 @@ msgstr "Показувати книги на мовах" msgid "Default Visibilities for New Users" msgstr "Можливості за замовчуванням для нових користувачів" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" @@ -2455,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 "" @@ -2565,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 "Налаштування" @@ -2715,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 "Переформатувати текст, коли відкриті бічні панелі." @@ -2945,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 "зробити книжкову полицю доступною для всіх?" @@ -3069,19 +3080,23 @@ msgstr "" msgid "Create/View" msgstr "" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "Видалити цього користувача" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "" diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index 2b44952e..e371acc6 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 c92be615..b8df4336 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "您确定要删除此书架吗?" @@ -192,279 +192,285 @@ msgstr "您确定要更改所选用户的书架同步行为吗?" msgid "Are you sure you want to change Calibre library location?" msgstr "您确定要更改 Calibre 库位置吗?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "标签未找到" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "无效的动作" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "日志文件路径无效,请输入正确的路径" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "访问日志路径无效,请输入正确的路径" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "请输入LDAP主机、端口、DN和用户对象标识符" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "请输入一个LDAP服务账号和密码 " -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "请输入一个LDAP服务账号" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP组对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP组对象过滤器的括号不匹配" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP用户对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP用户对象过滤器的括号不匹配" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP成员用户过滤器需要有一个“%s”格式标识符" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP成员用户过滤器中有不匹配的括号" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CA证书、证书或密钥位置无效,请输入正确的路径" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "数据库路径无效,请输入正确的路径" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "数据库不可写入" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "密钥文件路径无效,请输入正确的路径" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "证书文件路径无效,请输入正确的路径" -#: cps/admin.py:1316 -#, fuzzy +#: cps/admin.py:1346 msgid "Database Settings updated" -msgstr "邮件服务器设置已更新" +msgstr "数据库设置已更新" -#: cps/admin.py:1324 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "数据库配置" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "请填写所有字段!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "邮箱不在有效域中" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "添加新用户" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "用户“%(user)s”已创建" -#: cps/admin.py:1371 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "使用此邮箱或用户名的账号已经存在。" -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户“%(nick)s”已删除" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "无法删除游客用户" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "管理员账户不存在,无法删除用户" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "用户“%(nick)s”已更新" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "编辑邮件服务器设置" -#: cps/admin.py:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "G-Mail账号校验成功" -#: cps/admin.py:1558 +#: 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:1561 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "发送测试邮件时出错:%(res)s" -#: cps/admin.py:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "请先配置您的邮箱地址..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "邮件服务器设置已更新" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "用户 %(user)s 的密码已重置" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱设置..." -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "日志文件查看器" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "正在替换文件" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "正在停止服务器" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请点击确定并刷新页面" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 -#, fuzzy +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "更新文件无法保存在临时目录中" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" -msgstr "" +msgstr "更新期间无法替换文件" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "未能提取至少一个LDAP用户" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "未能创建至少一个LDAP用户" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "错误:%(ldaperror)s" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "错误:在LDAP服务器的响应中没有返回用户" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "数据库中没有找到至少一个LDAP用户" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} 用户被成功导入" @@ -476,108 +482,112 @@ msgstr "未配置" msgid "Execution permissions missing" msgstr "缺少执行权限" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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 -#, fuzzy, python-format +#: cps/editbooks.py:494 cps/editbooks.py:958 +#, python-format msgid "'%(langname)s' is not a valid language" -msgstr "%(langname)s 不是一种有效语言" +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:1675 +#: 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" @@ -590,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:1670 +#: 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 "" +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 设置" @@ -766,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:1546 +#: 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”身份登录" @@ -832,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "登录" @@ -848,7 +858,7 @@ msgstr "Token已过期" msgid "Success! Please return to your device" msgstr "成功!请返回您的设备" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "书籍" @@ -873,7 +883,7 @@ msgstr "下载历史" msgid "Show Downloaded Books" msgstr "显示下载过的书籍" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "最高评分书籍" @@ -882,7 +892,7 @@ msgid "Show Top Rated Books" msgstr "显示最高评分书籍" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "已读书籍" @@ -891,7 +901,7 @@ msgid "Show read and unread" msgstr "显示阅读状态" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "未读书籍" @@ -909,7 +919,7 @@ msgid "Show Random Books" msgstr "显示随机书籍" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "分类" @@ -919,7 +929,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "丛书" @@ -937,7 +947,7 @@ msgid "Show author selection" msgstr "显示作者选择" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "出版社" @@ -947,7 +957,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "语言" @@ -971,7 +981,7 @@ msgstr "文件格式" msgid "Show file formats selection" msgstr "显示文件格式选择" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "归档书籍" @@ -979,7 +989,7 @@ msgstr "归档书籍" msgid "Show archived books" msgstr "显示归档书籍" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "书籍列表" @@ -1007,7 +1017,7 @@ msgstr "此书籍已被添加到书架:%(sname)s" #: cps/shelf.py:126 msgid "You are not allowed to add a book to the shelf" -msgstr "" +msgstr "你没有向书架添加书籍的权限" #: cps/shelf.py:144 #, python-format @@ -1031,7 +1041,7 @@ msgstr "此书已从书架 %(sname)s 中删除" #: cps/shelf.py:218 msgid "Sorry you are not allowed to remove a book from this shelf" -msgstr "" +msgstr "抱歉,你没有从这个书架删除书籍的权限" #: cps/shelf.py:228 cps/templates/layout.html:140 msgid "Create a Shelf" @@ -1047,43 +1057,48 @@ msgstr "编辑书架" #: cps/shelf.py:249 msgid "Sorry you are not allowed to create a public shelf" -msgstr "" +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 "打开书架出错。书架不存在或不可访问" @@ -1116,177 +1131,177 @@ msgstr "有新的更新。单击下面的按钮以更新到版本: %(version)s" msgid "No release information available" msgstr "无可用发布信息" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "发现(随机书籍)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "热门书籍(最多下载)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "%(user)s 下载过的书籍" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "作者:%(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "出版社:%(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "丛书:%(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "评分:%(rating)s 星" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "文件格式:%(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "分类:%(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "语言:%(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "搜索" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "下载次数" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "评分列表" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "文件格式列表" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "任务列表" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "出版时间晚于 " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "出版时间早于 " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "评分 <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "评分 >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "阅读状态 = %(status)s" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "搜索自定义列时出错,请重启 Calibre-Web" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "书籍已经成功加入 %(kindlemail)s 的发送队列" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "糟糕!发送这本书籍的时候出现错误:%(res)s" -#: cps/web.py:1463 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "请先配置您的kindle邮箱。" -#: cps/web.py:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "您的电子邮件不允许注册" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "确认邮件已经发送到您的邮箱。" -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "无法激活LDAP认证" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "无法登录:%(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "用户名或密码错误" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "新密码已发送到您的邮箱" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "请输入有效的用户名进行密码重置" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”登录" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的用户配置" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "资料已更新" @@ -1323,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" @@ -1363,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 "下载书籍" @@ -1529,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:141 +#: 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 "正在更新,请不要刷新页面" @@ -1574,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 "减少" @@ -1737,7 +1751,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "保存" @@ -1746,7 +1760,6 @@ msgid "Keyword" msgstr "关键字" #: cps/templates/book_edit.html:233 -#, fuzzy msgid "Search keyword" msgstr " 搜索关键字 " @@ -1760,7 +1773,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "关闭" @@ -1856,21 +1869,19 @@ msgid "Enter Publishers" msgstr "输入出版社" #: cps/templates/book_table.html:73 -#, fuzzy msgid "Enter comments" -msgstr "输入域名" +msgstr "输入简介" #: cps/templates/book_table.html:73 msgid "Comments" -msgstr "" +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 -#, fuzzy msgid "Enter " -msgstr "书号" +msgstr "输入" #: cps/templates/book_table.html:110 cps/templates/modal_dialogs.html:46 msgid "Are you really sure?" @@ -1946,7 +1957,7 @@ msgstr "夜间版" #: cps/templates/config_edit.html:50 msgid "Trusted Hosts (Comma Separated)" -msgstr "" +msgstr "可信主机(用逗号分隔)" #: cps/templates/config_edit.html:61 msgid "Logfile Configuration" @@ -1970,7 +1981,7 @@ msgstr "功能配置" #: cps/templates/config_edit.html:104 msgid "Convert non-English characters in title and author while saving to disk" -msgstr "" +msgstr "保存到磁盘事转换标题和作者中的非英文字符" #: cps/templates/config_edit.html:108 msgid "Enable Uploads" @@ -1978,7 +1989,7 @@ msgstr "启用上传" #: cps/templates/config_edit.html:108 msgid "(Please ensure users having also upload rights)" -msgstr "" +msgstr "(请确保用户也有上传权限)" #: cps/templates/config_edit.html:112 msgid "Allowed Upload Fileformats" @@ -2232,58 +2243,56 @@ msgstr "按规则提取书名后排序(正则表达式)" msgid "Default Settings for New Users" msgstr "新用户默认权限设置" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: 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:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: 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 -#, fuzzy msgid "Default Language" -msgstr "排除语言" +msgstr "默认语言" #: cps/templates/config_view_edit.html:131 -#, fuzzy msgid "Default Visible Language of Books" -msgstr "按语言显示书籍" +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:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "添加显示或隐藏书籍的标签值" @@ -2442,19 +2451,19 @@ msgstr "登出账号" #: cps/templates/index.html:69 msgid "Sort ascending according to download count" -msgstr "" +msgstr "按下载数排序" #: cps/templates/index.html:70 msgid "Sort descending according to download count" -msgstr "" +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 +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 "设置" @@ -2708,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 "打开侧栏时重排文本。" @@ -2936,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 "书架将被公开" @@ -3060,19 +3065,23 @@ msgstr "Kobo 同步 Token" msgid "Create/View" msgstr "新建或查看" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "仅同步所选书架中的书籍到 Kobo" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "删除此用户" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "生成Kobo Auth 地址" diff --git a/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/cps/translations/zh_Hant_TW/LC_MESSAGES/messages.mo index ee2a2a2e..1a04e176 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 d4d34dde..438e670b 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "您確定要刪除此書架嗎?" @@ -192,279 +192,287 @@ msgstr "您確定要更改所選用戶的書架同步行為嗎?" msgid "Are you sure you want to change Calibre library location?" msgstr "您確定要更改 Calibre 庫位置嗎?" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "標籤未找到" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "無效的動作" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: 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:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "日誌文件路徑無效,請輸入正確的路徑" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "訪問日誌路徑無效,請輸入正確的路徑" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "請輸入LDAP主機、端口、DN和用戶對象標識符" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "請輸入一個LDAP服務賬號和密碼 " -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "請輸入一個LDAP服務賬號" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP群組對象過濾器需要一個具有“%s”格式標識符號" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP群組對象過濾器的括號不匹配" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP用戶對象過濾器需要一個具有“%s”格式標識符" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP用戶對象過濾器的括號不匹配" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP成員用戶過濾器需要有一個“%s”格式標識符號" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP成員用戶過濾器中有不匹配的括號" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CA證書、證書或密鑰位置無效,請輸入正確的路徑" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "數據庫路徑無效,請輸入正確的路徑" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "數據庫不可寫入" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "密鑰文件路徑無效,請輸入正確的路徑" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "證書文件路徑無效,請輸入正確的路徑" -#: cps/admin.py:1316 +#: cps/admin.py:1346 #, fuzzy msgid "Database Settings updated" msgstr "郵件服務器設置已更新" -#: cps/admin.py:1324 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "數據庫配置" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "請填寫所有欄位!" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "郵箱不在有效網域中" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "添加新用戶" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "用戶“%(user)s”已創建" -#: cps/admin.py:1371 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "使用此郵箱或用戶名的賬號已經存在。" -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "用戶“%(nick)s”已刪除" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "無法刪除訪客用戶" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "管理員賬戶不存在,無法刪除用戶" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "編輯用戶 %(nick)s" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "用戶“%(nick)s”已更新" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "編輯郵件服務器設置" -#: cps/admin.py:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "G-Mail賬號驗證成功" -#: cps/admin.py:1558 +#: 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:1561 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "發送測試郵件時出錯:%(res)s" -#: cps/admin.py:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "請先配置您的郵箱地址..." -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "郵件服務器設置已更新" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "用戶 %(user)s 的密碼已重置" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "請先配置SMTP郵箱設置..." -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "日誌文件查看器" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "正在請求更新包" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "正在下載更新包" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "正在解壓更新包" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "正在替換文件" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "數據庫連接已關閉" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "正在停止服務器" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "更新完成,請點擊確定並刷新頁面" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 #, fuzzy msgid "Update file could not be saved in temp dir" msgstr "更新文件無法保存在臨時目錄中" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "更新時檔案無法替換變更" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "未能提取至少一個LDAP用戶" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "未能創建至少一個LDAP用戶" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "錯誤:%(ldaperror)s" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "錯誤:在LDAP服務器的響應中沒有返回用戶" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "數據庫中沒有找到至少一個LDAP用戶" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "{} 用戶被成功導入" @@ -476,108 +484,112 @@ msgstr "未配置" msgid "Execution permissions missing" msgstr "缺少執行權限" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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" @@ -590,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:1670 +#: 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 設置" @@ -766,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:1546 +#: 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”身份登入" @@ -832,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "登入" @@ -848,7 +860,7 @@ msgstr "Token已過期" msgid "Success! Please return to your device" msgstr "成功!請返回您的設備" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "書籍" @@ -873,7 +885,7 @@ msgstr "已下載書籍" msgid "Show Downloaded Books" msgstr "顯示下載過的書籍" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "最高評分書籍" @@ -882,7 +894,7 @@ msgid "Show Top Rated Books" msgstr "顯示最高評分書籍" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "已讀書籍" @@ -891,7 +903,7 @@ msgid "Show read and unread" msgstr "顯示閱讀狀態" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "未讀書籍" @@ -909,7 +921,7 @@ msgid "Show Random Books" msgstr "隨機顯示書籍" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "分類" @@ -919,7 +931,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "叢書" @@ -937,7 +949,7 @@ msgid "Show author selection" msgstr "顯示作者選擇" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "出版社" @@ -947,7 +959,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "語言" @@ -971,7 +983,7 @@ msgstr "文件格式" msgid "Show file formats selection" msgstr "顯示文件格式選擇" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "歸檔書籍" @@ -979,7 +991,7 @@ msgstr "歸檔書籍" msgid "Show archived books" msgstr "顯示歸檔書籍" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "書籍列表" @@ -1049,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 "打開書架出錯。書架不存在或不可訪問" @@ -1116,177 +1133,177 @@ msgstr "有新的更新。單擊下面的按鈕以更新到版本: %(version)s" msgid "No release information available" msgstr "無可用發佈信息" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "發現(隨機書籍)" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "熱門書籍(最多下載)" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "%(user)s 下載過的書籍" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "作者:%(name)s" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "出版社:%(name)s" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "叢書:%(serie)s" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "評分:%(rating)s 星" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "文件格式:%(format)s" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "分類:%(name)s" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "語言:%(name)s" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "搜尋" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "下載次數" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "評分列表" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "文件格式列表" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "任務列表" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "出版時間晚於 " -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "出版時間早於 " -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "評分 <= %(rating)s" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "評分 >= %(rating)s" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "閱讀狀態 = %(status)s" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "搜詢自定義欄位時出錯,請重啟 Calibre-Web" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "書籍已經成功加入 %(kindlemail)s 的發送隊列" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "糟糕!發送這本書籍的時候出現錯誤:%(res)s" -#: cps/web.py:1463 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "請先設置您的kindle郵箱。" -#: cps/web.py:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "您的電子郵件不允許註冊" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "確認郵件已經發送到您的郵箱。" -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "無法激活LDAP認證" -#: cps/web.py:1554 +#: 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:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "無法登入:%(message)s" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "用戶名或密碼錯誤" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "新密碼已發送到您的郵箱" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "請輸入有效的用戶名進行密碼重置" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "您現在已以“%(nickname)s”登入" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的用戶配置" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "資料已更新" @@ -1323,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" @@ -1363,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 "下載書籍" @@ -1529,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:141 +#: 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 "正在更新,請不要刷新頁面" @@ -1574,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 "減少" @@ -1737,7 +1753,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "儲存" @@ -1760,7 +1776,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "關閉" @@ -2232,35 +2248,35 @@ msgstr "按規則提取書名後排序(正則表達式)" msgid "Default Settings for New Users" msgstr "新用戶默認權限設置" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: 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:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "允許編輯公共書架" @@ -2278,12 +2294,12 @@ msgstr "按預設語言顯示書籍" msgid "Default Visibilities for New Users" msgstr "新用戶默認顯示權限" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "添加顯示或隱藏書籍的標籤值" @@ -2449,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 "按作者逆字母順序排序" @@ -2559,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 "設置" @@ -2708,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 "打開側欄時重排文本。" @@ -2936,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 "書架將被公開" @@ -3060,19 +3072,23 @@ msgstr "Kobo 同步 Token" msgid "Create/View" msgstr "新建或查看" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "僅同步所選書架中的書籍到 Kobo" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "刪除此用戶" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "生成Kobo Auth 地址" diff --git a/cps/ub.py b/cps/ub.py index 6b3c27ca..1d5db58a 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -421,8 +421,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): diff --git a/cps/web.py b/cps/web.py index f203783b..e139848e 100644 --- a/cps/web.py +++ b/cps/web.py @@ -1055,7 +1055,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({}) @@ -1068,7 +1069,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="", @@ -1435,7 +1436,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 71c3f1ad..7abf396d 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-04 10:53+0100\n" +"POT-Creation-Date: 2022-01-10 17:37+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:1576 +#: 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:1454 +#: 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:1412 +#: 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:1293 +#: 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 "" @@ -191,277 +191,285 @@ msgstr "" msgid "Are you sure you want to change Calibre library location?" msgstr "" -#: cps/admin.py:741 +#: 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 "" + +#: cps/admin.py:743 msgid "Tag not found" msgstr "" -#: cps/admin.py:753 +#: cps/admin.py:755 msgid "Invalid Action" msgstr "" -#: cps/admin.py:858 cps/admin.py:864 cps/admin.py:874 cps/admin.py:884 +#: 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:860 cps/admin.py:866 cps/admin.py:876 cps/admin.py:886 +#: 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:1015 +#: cps/admin.py:913 +msgid "{} sync entries deleted" +msgstr "" + +#: cps/admin.py:1036 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1060 +#: cps/admin.py:1081 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1066 +#: cps/admin.py:1087 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1096 +#: cps/admin.py:1117 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1102 +#: cps/admin.py:1123 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1105 +#: cps/admin.py:1126 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1110 +#: cps/admin.py:1131 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1112 +#: cps/admin.py:1133 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1116 +#: cps/admin.py:1137 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1118 +#: cps/admin.py:1139 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1125 +#: cps/admin.py:1146 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1148 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1134 +#: cps/admin.py:1155 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1176 cps/admin.py:1278 cps/admin.py:1375 cps/admin.py:1482 -#: cps/admin.py:1551 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:1187 +#: cps/admin.py:1208 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1223 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1205 +#: cps/admin.py:1235 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1209 +#: cps/admin.py:1239 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1316 +#: cps/admin.py:1346 msgid "Database Settings updated" msgstr "" -#: cps/admin.py:1324 +#: cps/admin.py:1354 msgid "Database Configuration" msgstr "" -#: cps/admin.py:1340 cps/web.py:1487 +#: cps/admin.py:1370 cps/web.py:1479 msgid "Please fill out all fields!" msgstr "" -#: cps/admin.py:1348 +#: cps/admin.py:1378 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1354 cps/admin.py:1504 +#: cps/admin.py:1384 cps/admin.py:1543 msgid "Add new user" msgstr "" -#: cps/admin.py:1365 +#: cps/admin.py:1395 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/admin.py:1371 +#: cps/admin.py:1401 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1391 +#: cps/admin.py:1430 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/admin.py:1393 cps/admin.py:1394 +#: cps/admin.py:1432 cps/admin.py:1433 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1397 +#: cps/admin.py:1436 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1470 cps/admin.py:1595 +#: cps/admin.py:1509 cps/admin.py:1634 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/admin.py:1474 +#: cps/admin.py:1513 #, python-format msgid "User '%(nick)s' updated" msgstr "" -#: cps/admin.py:1478 cps/admin.py:1610 cps/web.py:1512 cps/web.py:1575 +#: 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:1513 cps/templates/admin.html:98 +#: cps/admin.py:1552 cps/templates/admin.html:98 msgid "Edit E-mail Server Settings" msgstr "" -#: cps/admin.py:1532 +#: cps/admin.py:1571 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1558 +#: 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:1561 +#: cps/admin.py:1600 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1563 +#: cps/admin.py:1602 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1565 +#: cps/admin.py:1604 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1607 +#: cps/admin.py:1646 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1613 cps/web.py:1452 +#: cps/admin.py:1652 cps/web.py:1444 msgid "Please configure the SMTP mail settings first..." msgstr "" -#: cps/admin.py:1624 +#: cps/admin.py:1663 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1690 +#: cps/admin.py:1729 msgid "Requesting update package" msgstr "" -#: cps/admin.py:1691 +#: cps/admin.py:1730 msgid "Downloading update package" msgstr "" -#: cps/admin.py:1692 +#: cps/admin.py:1731 msgid "Unzipping update package" msgstr "" -#: cps/admin.py:1693 +#: cps/admin.py:1732 msgid "Replacing files" msgstr "" -#: cps/admin.py:1694 +#: cps/admin.py:1733 msgid "Database connections are closed" msgstr "" -#: cps/admin.py:1695 +#: cps/admin.py:1734 msgid "Stopping server" msgstr "" -#: cps/admin.py:1696 +#: cps/admin.py:1735 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/admin.py:1697 cps/admin.py:1698 cps/admin.py:1699 cps/admin.py:1700 -#: cps/admin.py:1701 cps/admin.py:1702 +#: 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:1697 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:1698 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:1699 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:1700 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:1701 +#: cps/admin.py:1740 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1702 +#: cps/admin.py:1741 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1726 +#: cps/admin.py:1765 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1771 +#: cps/admin.py:1810 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1784 +#: cps/admin.py:1823 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1788 +#: cps/admin.py:1827 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1821 +#: cps/admin.py:1860 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1862 msgid "{} User Successfully Imported" msgstr "" @@ -473,108 +481,112 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:675 cps/web.py:1163 +#: 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:531 cps/web.py:1714 -#: cps/web.py:1755 cps/web.py:1822 +#: 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:1675 +#: 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 "" @@ -587,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:1670 +#: 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 "" @@ -763,7 +775,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1546 +#: 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 "" @@ -829,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:1595 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 msgid "Login" msgstr "" @@ -845,7 +857,7 @@ msgstr "" msgid "Success! Please return to your device" msgstr "" -#: cps/render_template.py:39 cps/web.py:424 +#: cps/render_template.py:39 cps/web.py:416 msgid "Books" msgstr "" @@ -870,7 +882,7 @@ msgstr "" msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:438 +#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 msgid "Top Rated Books" msgstr "" @@ -879,7 +891,7 @@ msgid "Show Top Rated Books" msgstr "" #: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:684 +#: cps/templates/index.xml:58 cps/web.py:676 msgid "Read Books" msgstr "" @@ -888,7 +900,7 @@ msgid "Show read and unread" msgstr "" #: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:687 +#: cps/templates/index.xml:65 cps/web.py:679 msgid "Unread Books" msgstr "" @@ -906,7 +918,7 @@ msgid "Show Random Books" msgstr "" #: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1050 +#: cps/templates/index.xml:83 cps/web.py:1041 msgid "Categories" msgstr "" @@ -916,7 +928,7 @@ 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:957 cps/web.py:968 +#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 msgid "Series" msgstr "" @@ -934,7 +946,7 @@ msgid "Show author selection" msgstr "" #: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:934 +#: cps/templates/index.xml:76 cps/web.py:925 msgid "Publishers" msgstr "" @@ -944,7 +956,7 @@ 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:1027 +#: cps/web.py:1018 msgid "Languages" msgstr "" @@ -968,7 +980,7 @@ msgstr "" msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:93 cps/web.py:711 +#: cps/render_template.py:93 cps/web.py:703 msgid "Archived Books" msgstr "" @@ -976,7 +988,7 @@ msgstr "" msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:788 +#: cps/render_template.py:97 cps/web.py:780 msgid "Books List" msgstr "" @@ -1046,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 "" @@ -1113,177 +1129,177 @@ msgstr "" msgid "No release information available" msgstr "" -#: cps/templates/index.html:5 cps/web.py:448 +#: cps/templates/index.html:5 cps/web.py:440 msgid "Discover (Random Books)" msgstr "" -#: cps/web.py:479 +#: cps/web.py:471 msgid "Hot Books (Most Downloaded)" msgstr "" -#: cps/web.py:515 +#: cps/web.py:507 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:547 +#: cps/web.py:539 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:562 +#: cps/web.py:554 #, python-format msgid "Publisher: %(name)s" msgstr "" -#: cps/web.py:577 +#: cps/web.py:569 #, python-format msgid "Series: %(serie)s" msgstr "" -#: cps/web.py:590 +#: cps/web.py:582 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:605 +#: cps/web.py:597 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:623 +#: cps/web.py:615 #, python-format msgid "Category: %(name)s" msgstr "" -#: cps/web.py:639 +#: cps/web.py:631 #, python-format msgid "Language: %(name)s" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:745 cps/web.py:1379 +#: 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:758 cps/web.py:1085 +#: cps/web.py:750 cps/web.py:1077 msgid "Search" msgstr "" -#: cps/templates/admin.html:16 cps/web.py:912 +#: cps/templates/admin.html:16 cps/web.py:903 msgid "Downloads" msgstr "" -#: cps/web.py:989 +#: cps/web.py:980 msgid "Ratings list" msgstr "" -#: cps/web.py:1010 +#: cps/web.py:1001 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1064 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 msgid "Tasks" msgstr "" -#: cps/web.py:1223 +#: cps/web.py:1215 msgid "Published after " msgstr "" -#: cps/web.py:1230 +#: cps/web.py:1222 msgid "Published before " msgstr "" -#: cps/web.py:1252 +#: cps/web.py:1244 #, python-format msgid "Rating <= %(rating)s" msgstr "" -#: cps/web.py:1254 +#: cps/web.py:1246 #, python-format msgid "Rating >= %(rating)s" msgstr "" -#: cps/web.py:1256 +#: cps/web.py:1248 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1361 +#: cps/web.py:1353 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1457 +#: cps/web.py:1449 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "" -#: cps/web.py:1461 +#: cps/web.py:1453 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:1463 +#: cps/web.py:1455 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1480 +#: 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:1481 -#: cps/web.py:1488 cps/web.py:1494 cps/web.py:1513 cps/web.py:1517 -#: cps/web.py:1523 +#: 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:1515 +#: cps/web.py:1507 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1518 +#: cps/web.py:1510 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1535 +#: cps/web.py:1524 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1554 +#: cps/web.py:1543 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1549 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1564 cps/web.py:1589 +#: cps/web.py:1553 cps/web.py:1578 msgid "Wrong Username or Password" msgstr "" -#: cps/web.py:1571 +#: cps/web.py:1560 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1577 +#: cps/web.py:1566 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1584 +#: cps/web.py:1573 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1650 cps/web.py:1699 +#: cps/web.py:1639 cps/web.py:1688 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:1666 +#: cps/web.py:1655 msgid "Profile updated" msgstr "" @@ -1320,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 "" @@ -1360,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 "" @@ -1526,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:141 +#: 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 "" @@ -1571,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 "" @@ -1734,7 +1749,7 @@ 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:139 +#: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" msgstr "" @@ -1756,7 +1771,7 @@ 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:160 +#: cps/templates/user_edit.html:163 msgid "Close" msgstr "" @@ -2226,35 +2241,35 @@ msgstr "" msgid "Default Settings for New Users" msgstr "" -#: cps/templates/config_view_edit.html:88 cps/templates/user_edit.html:93 +#: 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:98 +#: 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:102 +#: 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:107 +#: 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:112 +#: 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:117 +#: 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:123 +#: 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:127 +#: cps/templates/config_view_edit.html:120 cps/templates/user_edit.html:130 msgid "Allow Editing Public Shelves" msgstr "" @@ -2270,12 +2285,12 @@ msgstr "" msgid "Default Visibilities for New Users" msgstr "" -#: cps/templates/config_view_edit.html:163 cps/templates/user_edit.html:81 +#: 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:84 +#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" @@ -2441,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 "" @@ -2551,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 "" @@ -2700,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 "" @@ -2928,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 "" @@ -3052,19 +3063,23 @@ msgstr "" msgid "Create/View" msgstr "" -#: cps/templates/user_edit.html:85 +#: 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:134 +#: cps/templates/user_edit.html:137 msgid "Sync only books in selected shelves with Kobo" msgstr "" -#: cps/templates/user_edit.html:144 cps/templates/user_table.html:169 +#: cps/templates/user_edit.html:147 cps/templates/user_table.html:169 msgid "Delete User" msgstr "" -#: cps/templates/user_edit.html:156 +#: cps/templates/user_edit.html:159 msgid "Generate Kobo Auth URL" msgstr "" diff --git a/optional-requirements.txt b/optional-requirements.txt index 17c4b878..3fae7799 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -12,7 +12,7 @@ rsa>=3.4.2,<4.8.0 six>=1.10.0,<1.17.0 # Gdrive and Gmail integration -google-api-python-client>=1.7.11,<2.32.0 +google-api-python-client>=1.7.11,<2.34.0 # Gmail google-auth-oauthlib>=0.4.3,<0.5.0 @@ -22,7 +22,7 @@ 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 @@ -31,7 +31,7 @@ SQLAlchemy-Utils>=0.33.5,<0.38.0 # extracting metadata rarfile>=2.7 -scholarly>=1.2.0, <1.5 +scholarly>=1.2.0, <1.6 markdown2==2.4.2 html2text==2020.1.16 python-dateutil==2.8.2 @@ -41,4 +41,4 @@ natsort>=2.2.0,<8.1.0 comicapi>=2.2.0,<2.3.0 #Kobo integration -jsonschema>=3.2.0,<4.3.0 +jsonschema>=3.2.0,<4.4.0 diff --git a/setup.cfg b/setup.cfg index 3f1b1f8d..52f1d813 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,14 +37,14 @@ console_scripts = [options] include_package_data = True install_requires = - Babel>=1.3, <3.0 + 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.4 + PyPDF3>=1.0.0,<1.0.6 pytz>=2016.10 requests>=2.11.1,<2.25.0 SQLAlchemy>=1.3.0,<1.5.0 @@ -52,42 +52,42 @@ install_requires = 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,<0.16.0 + flask-wtf>=0.14.2,<1.1.0 [options.extras_require] gdrive = - google-api-python-client>=1.7.11,<2.1.0 + google-api-python-client>=1.7.11,<2.34.0 gevent>20.6.0,<22.0.0 greenlet>=0.4.17,<1.2.0 - httplib2>=0.9.2,<0.20.0 + httplib2>=0.9.2,<0.21.0 oauth2client>=4.0.0,<4.1.4 - uritemplate>=3.0.0,<3.1.0 + 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.9.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.1.0 + google-api-python-client>=1.7.11,<2.34.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 + python-ldap>=3.0.0,<3.5.0 Flask-SimpleLDAP>=1.4.0,<1.5.0 oauth = - Flask-Dance>=2.0.0,<5.1.0 + 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.3 + scholarly>=1.2.0,<1.6 comics = - natsort>=2.2.0,<7.2.0 + natsort>=2.2.0,<8.1.0 comicapi>= 2.2.0,<2.3.0 kobo = - jsonschema>=3.2.0,<3.3.0 + jsonschema>=3.2.0,<4.4.0 diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index 3c54e88b..f1ddb0e5 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
-

Start Time: 2021-12-05 19:18:28

+

Start Time: 2022-01-09 18:09:05

-

Stop Time: 2021-12-05 22:58:48

+

Stop Time: 2022-01-10 10:00:36

-

Duration: 3h 0 min

+

Duration: 15h 11 min

@@ -413,13 +413,13 @@ TestEbookConvertCalibre - 14 - 14 + 15 + 15 0 0 0 - Detail + Detail @@ -427,7 +427,7 @@ -
TestEbookConvertCalibre - test_convert_deactivate
+
TestEbookConvertCalibre - test_calibre_log
PASS @@ -436,7 +436,7 @@ -
TestEbookConvertCalibre - test_convert_email
+
TestEbookConvertCalibre - test_convert_deactivate
PASS @@ -445,7 +445,7 @@ -
TestEbookConvertCalibre - test_convert_failed_and_email
+
TestEbookConvertCalibre - test_convert_email
PASS @@ -454,7 +454,7 @@ -
TestEbookConvertCalibre - test_convert_only
+
TestEbookConvertCalibre - test_convert_failed_and_email
PASS @@ -463,7 +463,7 @@ -
TestEbookConvertCalibre - test_convert_options
+
TestEbookConvertCalibre - test_convert_only
PASS @@ -472,7 +472,7 @@ -
TestEbookConvertCalibre - test_convert_parameter
+
TestEbookConvertCalibre - test_convert_options
PASS @@ -481,7 +481,7 @@ -
TestEbookConvertCalibre - test_convert_wrong_excecutable
+
TestEbookConvertCalibre - test_convert_parameter
PASS @@ -490,7 +490,7 @@ -
TestEbookConvertCalibre - test_convert_xss
+
TestEbookConvertCalibre - test_convert_wrong_excecutable
PASS @@ -499,7 +499,7 @@ -
TestEbookConvertCalibre - test_email_failed
+
TestEbookConvertCalibre - test_convert_xss
PASS @@ -508,7 +508,7 @@ -
TestEbookConvertCalibre - test_email_only
+
TestEbookConvertCalibre - test_email_failed
PASS @@ -517,7 +517,7 @@ -
TestEbookConvertCalibre - test_kindle_send_not_configured
+
TestEbookConvertCalibre - test_email_only
PASS @@ -526,7 +526,7 @@ -
TestEbookConvertCalibre - test_ssl_smtp_setup_error
+
TestEbookConvertCalibre - test_kindle_send_not_configured
PASS @@ -535,7 +535,7 @@ -
TestEbookConvertCalibre - test_starttls_smtp_setup_error
+
TestEbookConvertCalibre - test_ssl_smtp_setup_error
PASS @@ -543,6 +543,15 @@ + +
TestEbookConvertCalibre - test_starttls_smtp_setup_error
+ + PASS + + + + +
TestEbookConvertCalibre - test_user_convert_xss
@@ -705,12 +714,12 @@ - + TestEditAdditionalBooks 16 - 14 - 0 + 9 0 + 5 2 Detail @@ -782,38 +791,164 @@ - +
TestEditAdditionalBooks - test_title_sort
- PASS + +
+ ERROR +
+ + + + - +
TestEditAdditionalBooks - test_upload_edit_role
- PASS + +
+ ERROR +
+ + + + - +
TestEditAdditionalBooks - test_upload_metadata_cbr
- PASS + +
+ ERROR +
+ + + + - +
TestEditAdditionalBooks - test_upload_metadata_cbt
- PASS + +
+ ERROR +
+ + + + @@ -844,11 +979,45 @@ - +
TestEditAdditionalBooks - test_writeonly_path
- PASS + +
+ ERROR +
+ + + + @@ -881,6 +1050,60 @@ + + _ErrorHolder + 1 + 0 + 0 + 1 + 0 + + Detail + + + + + + + +
tearDownClass (test_edit_additional_books)
+ + +
+ ERROR +
+ + + + + + + + + TestEditBooks 35 @@ -889,13 +1112,13 @@ 0 1 - Detail + Detail - +
TestEditBooks - test_download_book
@@ -904,7 +1127,7 @@ - +
TestEditBooks - test_edit_author
@@ -913,7 +1136,7 @@ - +
TestEditBooks - test_edit_category
@@ -922,7 +1145,7 @@ - +
TestEditBooks - test_edit_comments
@@ -931,7 +1154,7 @@ - +
TestEditBooks - test_edit_custom_bool
@@ -940,7 +1163,7 @@ - +
TestEditBooks - test_edit_custom_categories
@@ -949,7 +1172,7 @@ - +
TestEditBooks - test_edit_custom_comment
@@ -958,7 +1181,7 @@ - +
TestEditBooks - test_edit_custom_date
@@ -967,7 +1190,7 @@ - +
TestEditBooks - test_edit_custom_float
@@ -976,7 +1199,7 @@ - +
TestEditBooks - test_edit_custom_int
@@ -985,7 +1208,7 @@ - +
TestEditBooks - test_edit_custom_rating
@@ -994,7 +1217,7 @@ - +
TestEditBooks - test_edit_custom_single_select
@@ -1003,7 +1226,7 @@ - +
TestEditBooks - test_edit_custom_text
@@ -1012,7 +1235,7 @@ - +
TestEditBooks - test_edit_language
@@ -1021,7 +1244,7 @@ - +
TestEditBooks - test_edit_publisher
@@ -1030,7 +1253,7 @@ - +
TestEditBooks - test_edit_publishing_date
@@ -1039,7 +1262,7 @@ - +
TestEditBooks - test_edit_rating
@@ -1048,7 +1271,7 @@ - +
TestEditBooks - test_edit_series
@@ -1057,7 +1280,7 @@ - +
TestEditBooks - test_edit_title
@@ -1066,19 +1289,19 @@ - +
TestEditBooks - test_rename_uppercase_lowercase
- SKIP + SKIP
-