Commit bc52f90e authored by cbartondock's avatar cbartondock

Merge remote-tracking branch 'upstream/master'

parents 0978be58 0771546d
......@@ -12,7 +12,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 czech, dutch, english, finnish, french, german, hungarian, italian, japanese, khmer, polish, russian, simplified chinese, spanish, swedish, turkish, ukrainian
- User Interface in czech, dutch, english, finnish, french, german, greek, hungarian, italian, japanese, khmer, polish, russian, simplified 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)
......
......@@ -1029,7 +1029,8 @@ def send_logfile(logtype):
@admi.route("/get_update_status", methods=['GET'])
@login_required_if_no_ano
@login_required
@admin_required
def get_update_status():
log.info(u"Update status requested")
return updater_thread.get_available_updates(request.method, locale=get_locale())
......
......@@ -19,7 +19,6 @@
from __future__ import division, print_function, unicode_literals
import os
import json
import sys
from sqlalchemy import exc, Column, String, Integer, SmallInteger, Boolean, BLOB, JSON
......
......@@ -19,7 +19,6 @@
from __future__ import division, print_function, unicode_literals
import os
import re
import sys
from flask_babel import gettext as _
from . import config, logger
......
......@@ -147,7 +147,7 @@ class Identifiers(Base):
elif format_type == "kobo":
return u"https://www.kobo.com/ebook/{0}".format(self.val)
elif format_type == "lubimyczytac":
return u" https://lubimyczytac.pl/ksiazka/{0}/ksiazka".format(self.val)
return u"https://lubimyczytac.pl/ksiazka/{0}/ksiazka".format(self.val)
elif format_type == "litres":
return u"https://www.litres.ru/{0}".format(self.val)
elif format_type == "issn":
......
......@@ -27,7 +27,6 @@ import json
from shutil import copyfile
from uuid import uuid4
from babel import Locale as LC
from flask import Blueprint, request, flash, redirect, url_for, abort, Markup, Response
from flask_babel import gettext as _
from flask_login import current_user, login_required
......@@ -930,6 +929,7 @@ def convert_bookformat(book_id):
@editbook.route("/ajax/editbooks/<param>", methods=['POST'])
@login_required_if_no_ano
@edit_required
def edit_list_book(param):
vals = request.form.to_dict()
# calibre_db.update_title_sort(config)
......@@ -989,6 +989,7 @@ def get_sorted_entry(field, bookid):
@editbook.route("/ajax/simulatemerge", methods=['POST'])
@login_required
@edit_required
def simulate_merge_list_book():
vals = request.get_json().get('Merge_books')
if vals:
......@@ -1004,6 +1005,7 @@ def simulate_merge_list_book():
@editbook.route("/ajax/mergebooks", methods=['POST'])
@login_required
@edit_required
def merge_list_book():
vals = request.get_json().get('Merge_books')
to_file = list()
......
......@@ -123,38 +123,36 @@ def revoke_watch_gdrive():
@gdrive.route("/gdrive/watch/callback", methods=['GET', 'POST'])
def on_received_watch_confirmation():
if request.headers.get('X-Goog-Channel-Token') != gdrive_watch_callback_token \
or request.headers.get('X-Goog-Resource-State') != 'change' \
or not request.data:
return redirect(url_for('admin.configuration'))
log.debug('%r', request.headers)
if request.headers.get('X-Goog-Channel-Token') == gdrive_watch_callback_token \
and request.headers.get('X-Goog-Resource-State') == 'change' \
and request.data:
data = request.data
def updateMetaData():
log.info('Change received from gdrive')
log.debug('%r', data)
try:
j = json.loads(data)
log.info('Getting change details')
response = gdriveutils.getChangeById(gdriveutils.Gdrive.Instance().drive, j['id'])
log.debug('%r', response)
if response:
if sys.version_info < (3, 0):
dbpath = os.path.join(config.config_calibre_dir, "metadata.db")
else:
dbpath = os.path.join(config.config_calibre_dir, "metadata.db").encode()
if not response['deleted'] and response['file']['title'] == 'metadata.db' \
and response['file']['md5Checksum'] != hashlib.md5(dbpath):
tmpDir = tempfile.gettempdir()
log.info('Database file updated')
copyfile(dbpath, os.path.join(tmpDir, "metadata.db_" + str(current_milli_time())))
log.info('Backing up existing and downloading updated metadata.db')
gdriveutils.downloadFile(None, "metadata.db", os.path.join(tmpDir, "tmp_metadata.db"))
log.info('Setting up new DB')
# prevent error on windows, as os.rename does on exisiting files
move(os.path.join(tmpDir, "tmp_metadata.db"), dbpath)
calibre_db.reconnect_db(config, ub.app_DB_path)
except Exception as e:
log.exception(e)
updateMetaData()
log.debug('%r', request.data)
log.info('Change received from gdrive')
try:
j = json.loads(request.data)
log.info('Getting change details')
response = gdriveutils.getChangeById(gdriveutils.Gdrive.Instance().drive, j['id'])
log.debug('%r', response)
if response:
if sys.version_info < (3, 0):
dbpath = os.path.join(config.config_calibre_dir, "metadata.db")
else:
dbpath = os.path.join(config.config_calibre_dir, "metadata.db").encode()
if not response['deleted'] and response['file']['title'] == 'metadata.db' \
and response['file']['md5Checksum'] != hashlib.md5(dbpath):
tmpDir = tempfile.gettempdir()
log.info('Database file updated')
copyfile(dbpath, os.path.join(tmpDir, "metadata.db_" + str(current_milli_time())))
log.info('Backing up existing and downloading updated metadata.db')
gdriveutils.downloadFile(None, "metadata.db", os.path.join(tmpDir, "tmp_metadata.db"))
log.info('Setting up new DB')
# prevent error on windows, as os.rename does on exisiting files
move(os.path.join(tmpDir, "tmp_metadata.db"), dbpath)
calibre_db.reconnect_db(config, ub.app_DB_path)
except Exception as e:
log.exception(e)
return ''
......@@ -35,7 +35,7 @@ from babel.units import format_unit
from flask import send_from_directory, make_response, redirect, abort, url_for
from flask_babel import gettext as _
from flask_login import current_user
from sqlalchemy.sql.expression import true, false, and_, text, func
from sqlalchemy.sql.expression import true, false, and_, text
from werkzeug.datastructures import Headers
from werkzeug.security import generate_password_hash
from . import calibre_db
......@@ -373,21 +373,24 @@ def update_dir_structure_file(book_id, calibrepath, first_author, orignal_filepa
new_name = get_valid_filename(localbook.title) + ' - ' + get_valid_filename(new_authordir)
try:
if orignal_filepath:
os.renames(os.path.normcase(path),
os.path.normcase(os.path.join(new_path, db_filename)))
if not os.path.isdir(new_path):
os.makedirs(new_path)
shutil.move(os.path.normcase(path), os.path.normcase(os.path.join(new_path, db_filename)))
log.debug("Moving title: %s to %s/%s", path, new_path, new_name)
# Check new path is not valid path
elif not os.path.exists(new_path):
# move original path to new path
os.renames(os.path.normcase(path), os.path.normcase(new_path))
log.debug("Moving title: %s to %s", path, new_path)
else: # path is valid copy only files to new location (merge)
log.info("Moving title: %s into existing: %s", path, new_path)
# Take all files and subfolder from old path (strange command)
for dir_name, __, file_list in os.walk(path):
for file in file_list:
os.renames(os.path.normcase(os.path.join(dir_name, file)),
os.path.normcase(os.path.join(new_path + dir_name[len(path):], file)))
# Check new path is not valid path
else:
if not os.path.exists(new_path):
# move original path to new path
log.debug("Moving title: %s to %s", path, new_path)
shutil.move(os.path.normcase(path), os.path.normcase(new_path))
else: # path is valid copy only files to new location (merge)
log.info("Moving title: %s into existing: %s", path, new_path)
# Take all files and subfolder from old path (strange command)
for dir_name, __, file_list in os.walk(path):
for file in file_list:
shutil.move(os.path.normcase(os.path.join(dir_name, file)),
os.path.normcase(os.path.join(new_path + dir_name[len(path):], file)))
# os.unlink(os.path.normcase(os.path.join(dir_name, file)))
# change location in database to new author/title path
localbook.path = os.path.join(new_authordir, new_titledir).replace('\\','/')
except OSError as ex:
......@@ -399,10 +402,12 @@ def update_dir_structure_file(book_id, calibrepath, first_author, orignal_filepa
# Rename all files from old names to new names
try:
for file_format in localbook.data:
os.renames(os.path.normcase(
shutil.move(os.path.normcase(
os.path.join(new_path, file_format.name + '.' + file_format.format.lower())),
os.path.normcase(os.path.join(new_path, new_name + '.' + file_format.format.lower())))
os.path.normcase(os.path.join(new_path, new_name + '.' + file_format.format.lower())))
file_format.name = new_name
if not orignal_filepath and len(os.listdir(os.path.dirname(path))) == 0:
shutil.rmtree(os.path.dirname(path))
except OSError as ex:
log.error("Rename file in path %s to %s: %s", new_path, new_name, ex)
log.debug(ex, exc_info=True)
......
This diff is collapsed.
......@@ -25,7 +25,6 @@
from __future__ import division, print_function, unicode_literals
import datetime
import mimetypes
import re
from babel.dates import format_date
from flask import Blueprint, request, url_for
......
......@@ -39,7 +39,7 @@ from flask import (
redirect,
abort
)
from flask_login import current_user, login_required
from flask_login import current_user
from werkzeug.datastructures import Headers
from sqlalchemy import func
from sqlalchemy.sql.expression import and_, or_
......
!function(a){a.fn.datepicker.dates.el={days:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],daysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],daysMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μάι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],today:"Σήμερα",clear:"Καθαρισμός",weekStart:1,format:"d/m/yyyy"}}(jQuery);
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
......@@ -8,7 +8,7 @@ from shutil import copyfile
from sqlalchemy.exc import SQLAlchemyError
from cps.services.worker import CalibreTask, STAT_FINISH_SUCCESS
from cps.services.worker import CalibreTask
from cps import calibre_db, db
from cps import logger, config
from cps.subproc_wrapper import process_open
......
......@@ -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: 2020-10-20 17:11+0200\n"
"POT-Creation-Date: 2020-10-31 19:17+0100\n"
"PO-Revision-Date: 2020-06-09 21:11+0100\n"
"Last-Translator: Lukas Heroudek <lukas.heroudek@gmail.com>\n"
"Language: cs_CZ\n"
......@@ -478,75 +478,75 @@ msgstr "Mazání knihy selhalo %(id)s failed: %(message)s"
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr "Mazání knihy %(id)s, cesta ke knize není platná %(path)s"
#: cps/helper.py:397
#: cps/helper.py:400
#, 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:410
#: cps/helper.py:415
#, 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:435 cps/helper.py:445 cps/helper.py:453
#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Soubor %(file)s nenalezen na Google Drive"
#: cps/helper.py:474
#: cps/helper.py:479
#, 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:583
#: cps/helper.py:588
msgid "Error Downloading Cover"
msgstr "Chyba stahování obalu"
#: cps/helper.py:586
#: cps/helper.py:591
msgid "Cover Format Error"
msgstr "Chyba formátu obalu"
#: cps/helper.py:601
#: cps/helper.py:606
msgid "Failed to create path for cover"
msgstr "Vytvoření cesty obalu selhalo"
#: cps/helper.py:606
#: cps/helper.py:611
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:617
#: cps/helper.py:622
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr "Pouze jpg/jpeg/png/webp jsou podporované soubory pro obal"
#: cps/helper.py:631
#: cps/helper.py:636
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr "Pouze jpg/jpeg jsou podporované soubory pro obal"
#: cps/helper.py:679
#: cps/helper.py:684
msgid "Unrar binary file not found"
msgstr "Unrar binární soubor nenalezen"
#: cps/helper.py:693
#: cps/helper.py:698
msgid "Error excecuting UnRar"
msgstr "Chyba provádění UnRar"
#: cps/helper.py:742
#: cps/helper.py:747
msgid "Waiting"
msgstr "Čekám"
#: cps/helper.py:744
#: cps/helper.py:749
msgid "Failed"
msgstr "Selhalo"
#: cps/helper.py:746
#: cps/helper.py:751
msgid "Started"
msgstr "Spuštěno"
#: cps/helper.py:748
#: cps/helper.py:753
msgid "Finished"
msgstr "Dokončeno"
#: cps/helper.py:750
#: cps/helper.py:755
msgid "Unknown Status"
msgstr "Neznámý stav"
......
......@@ -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: 2020-10-20 17:11+0200\n"
"POT-Creation-Date: 2020-10-31 19:17+0100\n"
"PO-Revision-Date: 2020-09-26 16:18+0200\n"
"Last-Translator: Ozzie Isaacs\n"
"Language: de\n"
......@@ -479,75 +479,75 @@ msgstr "Löschen von Buch %(id)s fehlgeschlagen: %(message)s"
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr "Lösche Buch %(id)s, Pfad zum Buch nicht gültig: %(path)s"
#: cps/helper.py:397
#: cps/helper.py:400
#, 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:410
#: cps/helper.py:415
#, 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:435 cps/helper.py:445 cps/helper.py:453
#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden"
#: cps/helper.py:474
#: cps/helper.py:479
#, 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:583
#: cps/helper.py:588
msgid "Error Downloading Cover"
msgstr "Fehler beim Herunterladen des Covers"
#: cps/helper.py:586
#: cps/helper.py:591
msgid "Cover Format Error"
msgstr "Coverdatei fehlerhaft"
#: cps/helper.py:601
#: cps/helper.py:606
msgid "Failed to create path for cover"
msgstr "Fehler beim Erzeugen des Ordners für die Coverdatei"
#: cps/helper.py:606
#: cps/helper.py:611
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:617
#: cps/helper.py:622
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr "Es werden nur jpg/jpeg/png/webp Dateien als Cover untertützt"
#: cps/helper.py:631
#: cps/helper.py:636
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr "Es werden nur jpg/jpeg Dateien als Cover untertützt"
#: cps/helper.py:679
#: cps/helper.py:684
msgid "Unrar binary file not found"
msgstr "UnRar Programm nicht gefunden"
#: cps/helper.py:693
#: cps/helper.py:698
msgid "Error excecuting UnRar"
msgstr "Fehler beim ausführen von UnRar"
#: cps/helper.py:742
#: cps/helper.py:747
msgid "Waiting"
msgstr "Wartend"
#: cps/helper.py:744
#: cps/helper.py:749
msgid "Failed"
msgstr "Fehlgeschlagen"
#: cps/helper.py:746
#: cps/helper.py:751
msgid "Started"
msgstr "Gestartet"
#: cps/helper.py:748
#: cps/helper.py:753
msgid "Finished"
msgstr "Beendet"
#: cps/helper.py:750
#: cps/helper.py:755
msgid "Unknown Status"
msgstr "Unbekannter Status"
......
This diff is collapsed.
......@@ -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: 2020-10-20 17:11+0200\n"
"POT-Creation-Date: 2020-10-31 19:17+0100\n"
"PO-Revision-Date: 2020-05-25 17:22+0200\n"
"Last-Translator: minakmostoles <xxx@xxx.com>\n"
"Language: es\n"
......@@ -482,75 +482,75 @@ msgstr "El borrado del libro %(id)s falló: %(message)s"
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr "Borrando el libro %(id)s, la ruta del libro es inválida: %(path)s"
#: cps/helper.py:397
#: cps/helper.py:400
#, 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:410
#: cps/helper.py:415
#, 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:435 cps/helper.py:445 cps/helper.py:453
#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Fichero %(file)s no encontrado en Google Drive"
#: cps/helper.py:474
#: cps/helper.py:479
#, 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:583
#: cps/helper.py:588
msgid "Error Downloading Cover"
msgstr "Error al descargar la cubierta"
#: cps/helper.py:586
#: cps/helper.py:591
msgid "Cover Format Error"
msgstr "Error en el formato de la cubierta"
#: cps/helper.py:601
#: cps/helper.py:606
msgid "Failed to create path for cover"
msgstr "Error al crear una ruta para la cubierta"
#: cps/helper.py:606
#: cps/helper.py:611
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:617
#: cps/helper.py:622
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr "Las cubiertas deben estar en formato jpg/jpeg/png/webp"
#: cps/helper.py:631
#: cps/helper.py:636
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr "Siki kis archivos jpg/jpeg están soportados como cubierta"
#: cps/helper.py:679
#: cps/helper.py:684
msgid "Unrar binary file not found"
msgstr "No se ha encontrado el binario del comando UnRar"
#: cps/helper.py:693
#: cps/helper.py:698
msgid "Error excecuting UnRar"
msgstr "Error ejecutando UnRar"
#: cps/helper.py:742
#: cps/helper.py:747
msgid "Waiting"
msgstr "Esperando"
#: cps/helper.py:744
#: cps/helper.py:749
msgid "Failed"
msgstr "Fallido"
#: cps/helper.py:746
#: cps/helper.py:751
msgid "Started"
msgstr "Comenzado"
#: cps/helper.py:748
#: cps/helper.py:753
msgid "Finished"
msgstr "Finalizado"
#: cps/helper.py:750
#: cps/helper.py:755
msgid "Unknown Status"
msgstr "Estado desconocido"
......
......@@ -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: 2020-10-20 17:11+0200\n"
"POT-Creation-Date: 2020-10-31 19:17+0100\n"
"PO-Revision-Date: 2020-01-12 13:56+0100\n"
"Last-Translator: Samuli Valavuo <svalavuo@gmail.com>\n"
"Language: fi\n"
......@@ -479,75 +479,75 @@ msgstr ""
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr ""
#: cps/helper.py:397
#: cps/helper.py:400
#, 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:410
#: cps/helper.py:415
#, 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:435 cps/helper.py:445 cps/helper.py:453
#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Tiedostoa %(file)s ei löytynyt Google Drivesta"
#: cps/helper.py:474
#: cps/helper.py:479
#, 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:583
#: cps/helper.py:588
msgid "Error Downloading Cover"
msgstr ""
#: cps/helper.py:586
#: cps/helper.py:591
msgid "Cover Format Error"
msgstr ""
#: cps/helper.py:601
#: cps/helper.py:606
msgid "Failed to create path for cover"
msgstr ""
#: cps/helper.py:606
#: cps/helper.py:611
msgid "Cover-file is not a valid image file, or could not be stored"
msgstr ""
#: cps/helper.py:617
#: cps/helper.py:622
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr ""
#: cps/helper.py:631
#: cps/helper.py:636
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr ""
#: cps/helper.py:679
#: cps/helper.py:684
msgid "Unrar binary file not found"
msgstr ""
#: cps/helper.py:693
#: cps/helper.py:698
msgid "Error excecuting UnRar"
msgstr ""
#: cps/helper.py:742
#: cps/helper.py:747
msgid "Waiting"
msgstr "Odottaa"
#: cps/helper.py:744
#: cps/helper.py:749
msgid "Failed"
msgstr "Epäonnistui"
#: cps/helper.py:746
#: cps/helper.py:751
msgid "Started"
msgstr "Aloitettu"
#: cps/helper.py:748
#: cps/helper.py:753
msgid "Finished"
msgstr "Valmistui"
#: cps/helper.py:750
#: cps/helper.py:755
msgid "Unknown Status"
msgstr "Tuntematon tila"
......
......@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2020-10-20 17:11+0200\n"
"POT-Creation-Date: 2020-10-31 19:17+0100\n"
"PO-Revision-Date: 2020-06-07 06:47+0200\n"
"Last-Translator: Dekani <dekani1500@gmail.com>\n"
"Language: fr\n"
......@@ -493,75 +493,75 @@ msgstr "La suppression du livre %(id)s a échoué: %(message)s"
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr "Suppression du livre %(id)s, le chemin du livre est invalide : %(path)s"
#: cps/helper.py:397
#: cps/helper.py:400
#, 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:410
#: cps/helper.py:415
#, 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:435 cps/helper.py:445 cps/helper.py:453
#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458
#, 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:474
#: cps/helper.py:479
#, 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:583
#: cps/helper.py:588
msgid "Error Downloading Cover"
msgstr "Erreur lors du téléchargement de la couverture"
#: cps/helper.py:586
#: cps/helper.py:591
msgid "Cover Format Error"
msgstr "Erreur de format de couverture"
#: cps/helper.py:601
#: cps/helper.py:606
msgid "Failed to create path for cover"
msgstr "Impossible de créer le chemin pour la couverture"
#: cps/helper.py:606
#: cps/helper.py:611
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:617
#: cps/helper.py:622
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr "Seuls les fichiers jpg/jpeg/png/webp sont supportés comme fichier de couverture"
#: cps/helper.py:631
#: cps/helper.py:636
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:679
#: cps/helper.py:684
msgid "Unrar binary file not found"
msgstr "Fichier binaire Unrar non trouvé"
#: cps/helper.py:693
#: cps/helper.py:698
msgid "Error excecuting UnRar"
msgstr "Une erreur est survenue lors de l'exécution d'UnRar"
#: cps/helper.py:742
#: cps/helper.py:747
msgid "Waiting"
msgstr "En attente"
#: cps/helper.py:744
#: cps/helper.py:749
msgid "Failed"
msgstr "Echoué"
#: cps/helper.py:746
#: cps/helper.py:751
msgid "Started"
msgstr "Débuté"
#: cps/helper.py:748
#: cps/helper.py:753
msgid "Finished"
msgstr "Terminé"
#: cps/helper.py:750
#: cps/helper.py:755
msgid "Unknown Status"
msgstr "Statut inconnu"
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2020-10-20 17:11+0200\n"
"POT-Creation-Date: 2020-10-31 19:17+0100\n"
"PO-Revision-Date: 2019-04-06 23:36+0200\n"
"Last-Translator: \n"
"Language: hu\n"
......@@ -479,75 +479,75 @@ msgstr ""
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr ""
#: cps/helper.py:397
#: cps/helper.py:400
#, 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:410
#: cps/helper.py:415
#, 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:435 cps/helper.py:445 cps/helper.py:453
#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458
#, 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:474
#: cps/helper.py:479
#, 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:583
#: cps/helper.py:588
msgid "Error Downloading Cover"
msgstr ""
#: cps/helper.py:586
#: cps/helper.py:591
msgid "Cover Format Error"
msgstr ""
#: cps/helper.py:601
#: cps/helper.py:606
msgid "Failed to create path for cover"
msgstr ""
#: cps/helper.py:606
#: cps/helper.py:611
msgid "Cover-file is not a valid image file, or could not be stored"
msgstr ""
#: cps/helper.py:617
#: cps/helper.py:622
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr ""
#: cps/helper.py:631
#: cps/helper.py:636
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr ""
#: cps/helper.py:679
#: cps/helper.py:684
msgid "Unrar binary file not found"
msgstr ""
#: cps/helper.py:693
#: cps/helper.py:698
msgid "Error excecuting UnRar"
msgstr ""
#: cps/helper.py:742
#: cps/helper.py:747
msgid "Waiting"
msgstr "Várakozás"
#: cps/helper.py:744
#: cps/helper.py:749
msgid "Failed"
msgstr "Nem sikerült"
#: cps/helper.py:746
#: cps/helper.py:751
msgid "Started"
msgstr "Elindítva"
#: cps/helper.py:748
#: cps/helper.py:753
msgid "Finished"
msgstr "Végrehajtva"
#: cps/helper.py:750
#: cps/helper.py:755
msgid "Unknown Status"
msgstr "Ismeretlen állapot"
......
This diff is collapsed.
......@@ -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: 2020-10-20 17:11+0200\n"
"POT-Creation-Date: 2020-10-31 19:17+0100\n"
"PO-Revision-Date: 2018-02-07 02:20-0500\n"
"Last-Translator: white <space_white@yahoo.com>\n"
"Language: ja\n"
......@@ -479,75 +479,75 @@ msgstr ""
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr ""
#: cps/helper.py:397
#: cps/helper.py:400
#, 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:410
#: cps/helper.py:415
#, 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:435 cps/helper.py:445 cps/helper.py:453
#: cps/helper.py:440 cps/helper.py:450 cps/helper.py:458
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "ファイル %(file)s はGoogleドライブ上にありません"
#: cps/helper.py:474
#: cps/helper.py:479
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "本のパス %(path)s はGoogleドライブ上にありません"
#: cps/helper.py:583
#: cps/helper.py:588
msgid "Error Downloading Cover"
msgstr ""
#: cps/helper.py:586
#: cps/helper.py:591
msgid "Cover Format Error"
msgstr ""
#: cps/helper.py:601
#: cps/helper.py:606
msgid "Failed to create path for cover"
msgstr ""
#: cps/helper.py:606
#: cps/helper.py:611
msgid "Cover-file is not a valid image file, or could not be stored"
msgstr ""
#: cps/helper.py:617
#: cps/helper.py:622
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr ""
#: cps/helper.py:631
#: cps/helper.py:636
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr ""
#: cps/helper.py:679
#: cps/helper.py:684
msgid "Unrar binary file not found"
msgstr ""
#: cps/helper.py:693
#: cps/helper.py:698
msgid "Error excecuting UnRar"
msgstr ""
#: cps/helper.py:742
#: cps/helper.py:747
msgid "Waiting"
msgstr "待機中"
#: cps/helper.py:744
#: cps/helper.py:749
msgid "Failed"
msgstr "失敗"
#: cps/helper.py:746
#: cps/helper.py:751
msgid "Started"
msgstr "開始"
#: cps/helper.py:748
#: cps/helper.py:753
msgid "Finished"
msgstr "終了"
#: cps/helper.py:750
#: cps/helper.py:755
msgid "Unknown Status"
msgstr "不明"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment