Updated french and chinese language. Thanks to @idalin and Olivier
Fixed bug some translations are not shown
This commit is contained in:
+8
-9
@@ -73,7 +73,7 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format,
|
|||||||
# read settings and append converter task to queue
|
# read settings and append converter task to queue
|
||||||
if kindle_mail:
|
if kindle_mail:
|
||||||
settings = ub.get_mail_settings()
|
settings = ub.get_mail_settings()
|
||||||
text = _(u"Convert: %s" % book.title)
|
text = _(u"Convert: %(book)s" , book=book.title)
|
||||||
else:
|
else:
|
||||||
settings = dict()
|
settings = dict()
|
||||||
text = _(u"Convert to %(format)s: %(book)s", format=new_book_format, book=book.title)
|
text = _(u"Convert to %(format)s: %(book)s", format=new_book_format, book=book.title)
|
||||||
@@ -105,7 +105,7 @@ def send_registration_mail(e_mail, user_name, default_password, resend=False):
|
|||||||
text += "Sincerely\r\n\r\n"
|
text += "Sincerely\r\n\r\n"
|
||||||
text += "Your Calibre-Web team"
|
text += "Your Calibre-Web team"
|
||||||
global_WorkerThread.add_email(_(u'Get Started with Calibre-Web'),None, None, ub.get_mail_settings(),
|
global_WorkerThread.add_email(_(u'Get Started with Calibre-Web'),None, None, ub.get_mail_settings(),
|
||||||
e_mail, user_name, _(u"Registration e-mail for user: %s" % user_name),text)
|
e_mail, user_name, _(u"Registration e-mail for user: %(name)s", name=user_name),text)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ def send_mail(book_id, kindle_mail, calibrepath, user_id):
|
|||||||
return _(u"Could not find any formats suitable for sending by e-mail")
|
return _(u"Could not find any formats suitable for sending by e-mail")
|
||||||
if result:
|
if result:
|
||||||
global_WorkerThread.add_email(_(u"Send to Kindle"), book.path, result, ub.get_mail_settings(),
|
global_WorkerThread.add_email(_(u"Send to Kindle"), book.path, result, ub.get_mail_settings(),
|
||||||
kindle_mail, user_id, _(u"E-Mail: %s" % book.title))
|
kindle_mail, user_id, _(u"E-mail: %(book)s", book=book.title))
|
||||||
else:
|
else:
|
||||||
return _(u"The requested file could not be read. Maybe wrong permissions?")
|
return _(u"The requested file could not be read. Maybe wrong permissions?")
|
||||||
|
|
||||||
@@ -238,7 +238,7 @@ def update_dir_structure_file(book_id, calibrepath):
|
|||||||
except OSError as ex:
|
except OSError as ex:
|
||||||
web.app.logger.error("Rename title from: " + path + " to " + new_title_path)
|
web.app.logger.error("Rename title from: " + path + " to " + new_title_path)
|
||||||
web.app.logger.error(ex, exc_info=True)
|
web.app.logger.error(ex, exc_info=True)
|
||||||
return _('Rename title from: "%s" to "%s" failed with error: %s' % (path, new_title_path, str(ex)))
|
return _('Rename title from: "%(src)s" to "%(dest)s" failed with error: %(error)s', src=path, dest=new_title_path, error=str(ex))
|
||||||
if authordir != new_authordir:
|
if authordir != new_authordir:
|
||||||
try:
|
try:
|
||||||
new_author_path = os.path.join(os.path.join(calibrepath, new_authordir), os.path.basename(path))
|
new_author_path = os.path.join(os.path.join(calibrepath, new_authordir), os.path.basename(path))
|
||||||
@@ -247,7 +247,7 @@ def update_dir_structure_file(book_id, calibrepath):
|
|||||||
except OSError as ex:
|
except OSError as ex:
|
||||||
web.app.logger.error("Rename author from: " + path + " to " + new_author_path)
|
web.app.logger.error("Rename author from: " + path + " to " + new_author_path)
|
||||||
web.app.logger.error(ex, exc_info=True)
|
web.app.logger.error(ex, exc_info=True)
|
||||||
return _('Rename author from: "%s" to "%s" failed with error: %s' % (path, new_title_path, str(ex)))
|
return _('Rename author from: "%(src)s" to "%(dest)s" failed with error: %(error)s', src=path, dest=new_title_path, error=str(ex))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@@ -261,7 +261,6 @@ def update_dir_structure_gdrive(book_id):
|
|||||||
new_titledir = get_valid_filename(book.title) + " (" + str(book_id) + ")"
|
new_titledir = get_valid_filename(book.title) + " (" + str(book_id) + ")"
|
||||||
|
|
||||||
if titledir != new_titledir:
|
if titledir != new_titledir:
|
||||||
# print (titledir)
|
|
||||||
gFile = gd.getFileFromEbooksFolder(os.path.dirname(book.path), titledir)
|
gFile = gd.getFileFromEbooksFolder(os.path.dirname(book.path), titledir)
|
||||||
if gFile:
|
if gFile:
|
||||||
gFile['title'] = new_titledir
|
gFile['title'] = new_titledir
|
||||||
@@ -270,7 +269,7 @@ def update_dir_structure_gdrive(book_id):
|
|||||||
book.path = book.path.split('/')[0] + '/' + new_titledir
|
book.path = book.path.split('/')[0] + '/' + new_titledir
|
||||||
gd.updateDatabaseOnEdit(gFile['id'], book.path) # only child folder affected
|
gd.updateDatabaseOnEdit(gFile['id'], book.path) # only child folder affected
|
||||||
else:
|
else:
|
||||||
error = _(u'File %s not found on Google Drive' % book.path) # file not found
|
error = _(u'File %(file)s not found on Google Drive', file= book.path) # file not found
|
||||||
|
|
||||||
if authordir != new_authordir:
|
if authordir != new_authordir:
|
||||||
gFile = gd.getFileFromEbooksFolder(os.path.dirname(book.path), titledir)
|
gFile = gd.getFileFromEbooksFolder(os.path.dirname(book.path), titledir)
|
||||||
@@ -279,7 +278,7 @@ def update_dir_structure_gdrive(book_id):
|
|||||||
book.path = new_authordir + '/' + book.path.split('/')[1]
|
book.path = new_authordir + '/' + book.path.split('/')[1]
|
||||||
gd.updateDatabaseOnEdit(gFile['id'], book.path)
|
gd.updateDatabaseOnEdit(gFile['id'], book.path)
|
||||||
else:
|
else:
|
||||||
error = _(u'File %s not found on Google Drive' % authordir) # file not found
|
error = _(u'File %(file)s not found on Google Drive', file=authordir) # file not found
|
||||||
return error
|
return error
|
||||||
|
|
||||||
|
|
||||||
@@ -297,7 +296,7 @@ def delete_book_gdrive(book, book_format):
|
|||||||
gd.deleteDatabaseEntry(gFile['id'])
|
gd.deleteDatabaseEntry(gFile['id'])
|
||||||
gFile.Trash()
|
gFile.Trash()
|
||||||
else:
|
else:
|
||||||
error =_(u'Book path %s not found on Google Drive' % book.path) # file not found
|
error =_(u'Book path %(path)s not found on Google Drive', path=book.path) # file not found
|
||||||
return error
|
return error
|
||||||
|
|
||||||
def generate_random_password():
|
def generate_random_password():
|
||||||
|
|||||||
Binary file not shown.
+204
-31023
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+198
-30993
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+450
-31208
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+198
-23646
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+200
-30995
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+211
-31006
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+204
-30991
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+203
-30990
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+197
-30992
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
+20
-20
@@ -1824,7 +1824,7 @@ def advanced_search():
|
|||||||
cc_present = False
|
cc_present = False
|
||||||
for c in cc:
|
for c in cc:
|
||||||
if request.args.get('custom_column_' + str(c.id)):
|
if request.args.get('custom_column_' + str(c.id)):
|
||||||
searchterm.extend([_(u"%s: %s" % (c.name, request.args.get('custom_column_' + str(c.id))))])
|
searchterm.extend([(u"%s: %s" % (c.name, request.args.get('custom_column_' + str(c.id))))])
|
||||||
cc_present = True
|
cc_present = True
|
||||||
|
|
||||||
if include_tag_inputs or exclude_tag_inputs or include_series_inputs or exclude_series_inputs or \
|
if include_tag_inputs or exclude_tag_inputs or include_series_inputs or exclude_series_inputs or \
|
||||||
@@ -1834,9 +1834,9 @@ def advanced_search():
|
|||||||
searchterm.extend((author_name.replace('|',','), book_title, publisher))
|
searchterm.extend((author_name.replace('|',','), book_title, publisher))
|
||||||
if pub_start:
|
if pub_start:
|
||||||
try:
|
try:
|
||||||
searchterm.extend([_(u"Published after %s" %
|
searchterm.extend([_(u"Published after ") +
|
||||||
format_date(datetime.datetime.strptime(pub_start,"%Y-%m-%d"),
|
format_date(datetime.datetime.strptime(pub_start,"%Y-%m-%d"),
|
||||||
format='medium', locale=get_locale()))])
|
format='medium', locale=get_locale())])
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pub_start = u""
|
pub_start = u""
|
||||||
if pub_end:
|
if pub_end:
|
||||||
@@ -1855,13 +1855,13 @@ def advanced_search():
|
|||||||
language_names = speaking_language(language_names)
|
language_names = speaking_language(language_names)
|
||||||
searchterm.extend(language.name for language in language_names)
|
searchterm.extend(language.name for language in language_names)
|
||||||
if rating_high:
|
if rating_high:
|
||||||
searchterm.extend([_(u"Rating <= %s" % rating_high)])
|
searchterm.extend([_(u"Rating <= %(rating)s", rating=rating_high)])
|
||||||
if rating_low:
|
if rating_low:
|
||||||
searchterm.extend([_(u"Rating >= %s" % rating_low)])
|
searchterm.extend([_(u"Rating >= %(rating)s", rating=rating_low)])
|
||||||
# handle custom columns
|
# handle custom columns
|
||||||
for c in cc:
|
for c in cc:
|
||||||
if request.args.get('custom_column_' + str(c.id)):
|
if request.args.get('custom_column_' + str(c.id)):
|
||||||
searchterm.extend([_(u"%s: %s" % (c.name, request.args.get('custom_column_' + str(c.id))))])
|
searchterm.extend([(u"%s: %s" % (c.name, request.args.get('custom_column_' + str(c.id))))])
|
||||||
searchterm = " + ".join(filter(None, searchterm))
|
searchterm = " + ".join(filter(None, searchterm))
|
||||||
q = q.filter()
|
q = q.filter()
|
||||||
if author_name:
|
if author_name:
|
||||||
@@ -2352,7 +2352,7 @@ def search_to_shelf(shelf_id):
|
|||||||
|
|
||||||
if not shelf.is_public and not shelf.user_id == int(current_user.id):
|
if not shelf.is_public and not shelf.user_id == int(current_user.id):
|
||||||
app.logger.info("You are not allowed to add a book to the the shelf: %s" % shelf.name)
|
app.logger.info("You are not allowed to add a book to the the shelf: %s" % shelf.name)
|
||||||
flash(_(u"You are not allowed to add a book to the the shelf: %s" % shelf.name), category="error")
|
flash(_(u"You are not allowed to add a book to the the shelf: %(name)s", name=shelf.name), category="error")
|
||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
|
|
||||||
if shelf.is_public and not current_user.role_edit_shelfs():
|
if shelf.is_public and not current_user.role_edit_shelfs():
|
||||||
@@ -2375,7 +2375,7 @@ def search_to_shelf(shelf_id):
|
|||||||
|
|
||||||
if not books_for_shelf:
|
if not books_for_shelf:
|
||||||
app.logger.info("Books are already part of the shelf: %s" % shelf.name)
|
app.logger.info("Books are already part of the shelf: %s" % shelf.name)
|
||||||
flash(_(u"Books are already part of the shelf: %s" % shelf.name), category="error")
|
flash(_(u"Books are already part of the shelf: %(name)s", name=shelf.name), category="error")
|
||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
|
|
||||||
maxOrder = ub.session.query(func.max(ub.BookShelf.order)).filter(ub.BookShelf.shelf == shelf_id).first()
|
maxOrder = ub.session.query(func.max(ub.BookShelf.order)).filter(ub.BookShelf.shelf == shelf_id).first()
|
||||||
@@ -3216,7 +3216,7 @@ def reset_password(user_id):
|
|||||||
try:
|
try:
|
||||||
ub.session.commit()
|
ub.session.commit()
|
||||||
helper.send_registration_mail(existing_user.email, existing_user.nickname, password, True)
|
helper.send_registration_mail(existing_user.email, existing_user.nickname, password, True)
|
||||||
flash(_(u"Password for user %s reset" % existing_user.nickname), category="success")
|
flash(_(u"Password for user %(user)s reset", user=existing_user.nickname), category="success")
|
||||||
except Exception:
|
except Exception:
|
||||||
ub.session.rollback()
|
ub.session.rollback()
|
||||||
flash(_(u"An unknown error occurred. Please try again later."), category="error")
|
flash(_(u"An unknown error occurred. Please try again later."), category="error")
|
||||||
@@ -3297,12 +3297,12 @@ def edit_book(book_id):
|
|||||||
try:
|
try:
|
||||||
os.makedirs(filepath)
|
os.makedirs(filepath)
|
||||||
except OSError:
|
except OSError:
|
||||||
flash(_(u"Failed to create path %s (Permission denied)." % filepath), category="error")
|
flash(_(u"Failed to create path %(path)s (Permission denied).", path=filepath), category="error")
|
||||||
return redirect(url_for('show_book', book_id=book.id))
|
return redirect(url_for('show_book', book_id=book.id))
|
||||||
try:
|
try:
|
||||||
requested_file.save(saved_filename)
|
requested_file.save(saved_filename)
|
||||||
except OSError:
|
except OSError:
|
||||||
flash(_(u"Failed to store file %s." % saved_filename), category="error")
|
flash(_(u"Failed to store file %(file)s.", file=saved_filename), category="error")
|
||||||
return redirect(url_for('show_book', book_id=book.id))
|
return redirect(url_for('show_book', book_id=book.id))
|
||||||
|
|
||||||
file_size = os.path.getsize(saved_filename)
|
file_size = os.path.getsize(saved_filename)
|
||||||
@@ -3318,7 +3318,7 @@ def edit_book(book_id):
|
|||||||
db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort)
|
db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort)
|
||||||
|
|
||||||
# Queue uploader info
|
# Queue uploader info
|
||||||
uploadText=_(u"File format %s added to %s" % (file_ext.upper(), book.title))
|
uploadText=_(u"File format %(ext)s added to %(book)s", ext=file_ext.upper(), book=book.title)
|
||||||
helper.global_WorkerThread.add_upload(current_user.nickname,
|
helper.global_WorkerThread.add_upload(current_user.nickname,
|
||||||
"<a href=\"" + url_for('show_book', book_id=book.id) + "\">" + uploadText + "</a>")
|
"<a href=\"" + url_for('show_book', book_id=book.id) + "\">" + uploadText + "</a>")
|
||||||
|
|
||||||
@@ -3336,14 +3336,14 @@ def edit_book(book_id):
|
|||||||
try:
|
try:
|
||||||
os.makedirs(filepath)
|
os.makedirs(filepath)
|
||||||
except OSError:
|
except OSError:
|
||||||
flash(_(u"Failed to create path for cover %s (Permission denied)." % filepath), category="error")
|
flash(_(u"Failed to create path for cover %(path)s (Permission denied).", cover=filepath), category="error")
|
||||||
return redirect(url_for('show_book', book_id=book.id))
|
return redirect(url_for('show_book', book_id=book.id))
|
||||||
try:
|
try:
|
||||||
requested_file.save(saved_filename)
|
requested_file.save(saved_filename)
|
||||||
# im=Image.open(saved_filename)
|
# im=Image.open(saved_filename)
|
||||||
book.has_cover = 1
|
book.has_cover = 1
|
||||||
except OSError:
|
except OSError:
|
||||||
flash(_(u"Failed to store cover-file %s." % saved_filename), category="error")
|
flash(_(u"Failed to store cover-file %(cover)s.", cover=saved_filename), category="error")
|
||||||
return redirect(url_for('show_book', book_id=book.id))
|
return redirect(url_for('show_book', book_id=book.id))
|
||||||
except IOError:
|
except IOError:
|
||||||
flash(_(u"Cover-file is not a valid image file" % saved_filename), category="error")
|
flash(_(u"Cover-file is not a valid image file" % saved_filename), category="error")
|
||||||
@@ -3573,8 +3573,8 @@ def upload():
|
|||||||
file_ext = requested_file.filename.rsplit('.', 1)[-1].lower()
|
file_ext = requested_file.filename.rsplit('.', 1)[-1].lower()
|
||||||
if file_ext not in ALLOWED_EXTENSIONS:
|
if file_ext not in ALLOWED_EXTENSIONS:
|
||||||
flash(
|
flash(
|
||||||
_('File extension "%s" is not allowed to be uploaded to this server' %
|
_('File extension "%(ext)s" is not allowed to be uploaded to this server',
|
||||||
file_ext), category="error")
|
ext=file_ext), category="error")
|
||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
else:
|
else:
|
||||||
flash(_('File to be uploaded must have an extension'), category="error")
|
flash(_('File to be uploaded must have an extension'), category="error")
|
||||||
@@ -3597,17 +3597,17 @@ def upload():
|
|||||||
try:
|
try:
|
||||||
os.makedirs(filepath)
|
os.makedirs(filepath)
|
||||||
except OSError:
|
except OSError:
|
||||||
flash(_(u"Failed to create path %s (Permission denied)." % filepath), category="error")
|
flash(_(u"Failed to create path %(path)s (Permission denied).", path=filepath), category="error")
|
||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
try:
|
try:
|
||||||
copyfile(meta.file_path, saved_filename)
|
copyfile(meta.file_path, saved_filename)
|
||||||
except OSError:
|
except OSError:
|
||||||
flash(_(u"Failed to store file %s (Permission denied)." % saved_filename), category="error")
|
flash(_(u"Failed to store file %(file)s (Permission denied).", file=saved_filename), category="error")
|
||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
try:
|
try:
|
||||||
os.unlink(meta.file_path)
|
os.unlink(meta.file_path)
|
||||||
except OSError:
|
except OSError:
|
||||||
flash(_(u"Failed to delete file %s (Permission denied)." % meta.file_path), category="warning")
|
flash(_(u"Failed to delete file %(file)s (Permission denied).", file= meta.file_path), category="warning")
|
||||||
|
|
||||||
if meta.cover is None:
|
if meta.cover is None:
|
||||||
has_cover = 0
|
has_cover = 0
|
||||||
@@ -3689,7 +3689,7 @@ def upload():
|
|||||||
gdriveutils.updateGdriveCalibreFromLocal()
|
gdriveutils.updateGdriveCalibreFromLocal()
|
||||||
if error:
|
if error:
|
||||||
flash(error, category="error")
|
flash(error, category="error")
|
||||||
uploadText=_(u"File %s uploaded" % book.title)
|
uploadText=_(u"File %(file)s uploaded", file=book.title)
|
||||||
helper.global_WorkerThread.add_upload(current_user.nickname,
|
helper.global_WorkerThread.add_upload(current_user.nickname,
|
||||||
"<a href=\"" + url_for('show_book', book_id=book.id) + "\">" + uploadText + "</a>")
|
"<a href=\"" + url_for('show_book', book_id=book.id) + "\">" + uploadText + "</a>")
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -223,7 +223,7 @@ class WorkerThread(threading.Thread):
|
|||||||
if curr_task == TASK_CONVERT:
|
if curr_task == TASK_CONVERT:
|
||||||
self.add_email(_(u'Send to Kindle'), self.queue[self.current]['path'], filename,
|
self.add_email(_(u'Send to Kindle'), self.queue[self.current]['path'], filename,
|
||||||
self.queue[self.current]['settings'], self.queue[self.current]['kindle'],
|
self.queue[self.current]['settings'], self.queue[self.current]['kindle'],
|
||||||
self.UIqueue[self.current]['user'], _(u"E-mail: %s" % self.queue[self.current]['title']))
|
self.UIqueue[self.current]['user'], _(u"E-mail: %(book)s", book=self.queue[self.current]['title']))
|
||||||
|
|
||||||
|
|
||||||
def convert_ebook_format(self):
|
def convert_ebook_format(self):
|
||||||
@@ -269,7 +269,7 @@ class WorkerThread(threading.Thread):
|
|||||||
|
|
||||||
p = subprocess.Popen(command, stdout=subprocess.PIPE, universal_newlines=True)
|
p = subprocess.Popen(command, stdout=subprocess.PIPE, universal_newlines=True)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
self._handleError(_(u"Ebook-converter failed: %s" % e))
|
self._handleError(_(u"Ebook-converter failed: %(error)s", error=e))
|
||||||
return
|
return
|
||||||
|
|
||||||
if web.ub.config.config_ebookconverter == 1:
|
if web.ub.config.config_ebookconverter == 1:
|
||||||
|
|||||||
+164
-170
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2018-09-03 19:09+0200\n"
|
"POT-Creation-Date: 2018-09-08 12:22+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -38,71 +38,71 @@ msgstr ""
|
|||||||
|
|
||||||
#: cps/helper.py:76
|
#: cps/helper.py:76
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Convert: %s"
|
msgid "Convert: %(book)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:78
|
#: cps/helper.py:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Convert to %(format)s: %(book)s"
|
msgid "Convert to %(format)s: %(book)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:85
|
#: cps/helper.py:86
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(format)s not found: %(fn)s"
|
msgid "%(format)s not found: %(fn)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:90
|
#: cps/helper.py:91
|
||||||
msgid "Calibre-Web test e-mail"
|
msgid "Calibre-Web test e-mail"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:91
|
#: cps/helper.py:92
|
||||||
msgid "Test e-mail"
|
msgid "Test e-mail"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:106
|
#: cps/helper.py:107
|
||||||
msgid "Get Started with Calibre-Web"
|
msgid "Get Started with Calibre-Web"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:107
|
#: cps/helper.py:108
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Registration e-mail for user: %s"
|
msgid "Registration e-mail for user: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:130 cps/helper.py:140
|
#: cps/helper.py:131 cps/helper.py:141
|
||||||
msgid "Could not find any formats suitable for sending by e-mail"
|
msgid "Could not find any formats suitable for sending by e-mail"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:142 cps/templates/detail.html:44 cps/worker.py:224
|
#: cps/helper.py:143 cps/templates/detail.html:44 cps/worker.py:224
|
||||||
msgid "Send to Kindle"
|
msgid "Send to Kindle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:143
|
#: cps/helper.py:144 cps/worker.py:226
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "E-Mail: %s"
|
msgid "E-mail: %(book)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:145
|
#: cps/helper.py:146
|
||||||
msgid "The requested file could not be read. Maybe wrong permissions?"
|
msgid "The requested file could not be read. Maybe wrong permissions?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:240
|
#: cps/helper.py:241
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rename title from: \"%s\" to \"%s\" failed with error: %s"
|
msgid "Rename title from: \"%(src)s\" to \"%(dest)s\" failed with error: %(error)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:249
|
#: cps/helper.py:250
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rename author from: \"%s\" to \"%s\" failed with error: %s"
|
msgid "Rename author from: \"%(src)s\" to \"%(dest)s\" failed with error: %(error)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:272 cps/helper.py:281
|
#: cps/helper.py:272 cps/helper.py:281
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File %s not found on Google Drive"
|
msgid "File %(file)s not found on Google Drive"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:299
|
#: cps/helper.py:299
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book path %s not found on Google Drive"
|
msgid "Book path %(path)s not found on Google Drive"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/helper.py:544
|
#: cps/helper.py:544
|
||||||
@@ -113,529 +113,528 @@ msgstr ""
|
|||||||
msgid "Unrar binary file not found"
|
msgid "Unrar binary file not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1120
|
#: cps/web.py:1114
|
||||||
msgid "Requesting update package"
|
msgid "Requesting update package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1121
|
#: cps/web.py:1115
|
||||||
msgid "Downloading update package"
|
msgid "Downloading update package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1122
|
#: cps/web.py:1116
|
||||||
msgid "Unzipping update package"
|
msgid "Unzipping update package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1123
|
#: cps/web.py:1117
|
||||||
msgid "Files are replaced"
|
msgid "Files are replaced"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1124
|
#: cps/web.py:1118
|
||||||
msgid "Database connections are closed"
|
msgid "Database connections are closed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1125
|
#: cps/web.py:1119
|
||||||
msgid "Server is stopped"
|
msgid "Server is stopped"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1126
|
#: cps/web.py:1120
|
||||||
msgid "Update finished, please press okay and reload page"
|
msgid "Update finished, please press okay and reload page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1146
|
#: cps/web.py:1140
|
||||||
msgid "Recently Added Books"
|
msgid "Recently Added Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1156
|
#: cps/web.py:1150
|
||||||
msgid "Newest Books"
|
msgid "Newest Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1168
|
#: cps/web.py:1162
|
||||||
msgid "Oldest Books"
|
msgid "Oldest Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1180
|
#: cps/web.py:1174
|
||||||
msgid "Books (A-Z)"
|
msgid "Books (A-Z)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1191
|
#: cps/web.py:1185
|
||||||
msgid "Books (Z-A)"
|
msgid "Books (Z-A)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1220
|
#: cps/web.py:1214
|
||||||
msgid "Hot Books (most downloaded)"
|
msgid "Hot Books (most downloaded)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1233
|
#: cps/web.py:1227
|
||||||
msgid "Best rated books"
|
msgid "Best rated books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:36 cps/web.py:1245
|
#: cps/templates/index.xml:36 cps/web.py:1239
|
||||||
msgid "Random Books"
|
msgid "Random Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1260
|
#: cps/web.py:1254
|
||||||
msgid "Author list"
|
msgid "Author list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1272 cps/web.py:1335 cps/web.py:1490 cps/web.py:2042
|
#: cps/web.py:1266 cps/web.py:1329 cps/web.py:1484 cps/web.py:2036
|
||||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:73 cps/web.py:1319
|
#: cps/templates/index.xml:73 cps/web.py:1313
|
||||||
msgid "Series list"
|
msgid "Series list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1333
|
#: cps/web.py:1327
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Series: %(serie)s"
|
msgid "Series: %(serie)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1360
|
#: cps/web.py:1354
|
||||||
msgid "Available languages"
|
msgid "Available languages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1377
|
#: cps/web.py:1371
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Language: %(name)s"
|
msgid "Language: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:66 cps/web.py:1388
|
#: cps/templates/index.xml:66 cps/web.py:1382
|
||||||
msgid "Category list"
|
msgid "Category list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1402
|
#: cps/web.py:1396
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Category: %(name)s"
|
msgid "Category: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/layout.html:71 cps/web.py:1541
|
#: cps/templates/layout.html:71 cps/web.py:1535
|
||||||
msgid "Tasks"
|
msgid "Tasks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1571
|
#: cps/web.py:1565
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1676
|
#: cps/web.py:1670
|
||||||
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
|
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1752
|
#: cps/web.py:1746
|
||||||
msgid "Server restarted, please reload page"
|
msgid "Server restarted, please reload page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1755
|
#: cps/web.py:1749
|
||||||
msgid "Performing shutdown of server, please close window"
|
msgid "Performing shutdown of server, please close window"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1773
|
#: cps/web.py:1767
|
||||||
msgid "Update done"
|
msgid "Update done"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1833 cps/web.py:1870
|
#: cps/web.py:1837
|
||||||
#, python-format
|
msgid "Published after "
|
||||||
msgid "%s: %s"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1845
|
#: cps/web.py:1844
|
||||||
#, python-format
|
|
||||||
msgid "Published after %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: cps/web.py:1850
|
|
||||||
msgid "Published before "
|
msgid "Published before "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1864
|
#: cps/web.py:1858
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rating <= %s"
|
msgid "Rating <= %(rating)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1866
|
#: cps/web.py:1860
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rating >= %s"
|
msgid "Rating >= %(rating)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1925 cps/web.py:1934
|
#: cps/web.py:1919 cps/web.py:1928
|
||||||
msgid "search"
|
msgid "search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:44 cps/templates/index.xml:48
|
#: cps/templates/index.xml:44 cps/templates/index.xml:48
|
||||||
#: cps/templates/layout.html:146 cps/web.py:2001
|
#: cps/templates/layout.html:146 cps/web.py:1995
|
||||||
msgid "Read Books"
|
msgid "Read Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:52 cps/templates/index.xml:56
|
#: cps/templates/index.xml:52 cps/templates/index.xml:56
|
||||||
#: cps/templates/layout.html:148 cps/web.py:2004
|
#: cps/templates/layout.html:148 cps/web.py:1998
|
||||||
msgid "Unread Books"
|
msgid "Unread Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2052 cps/web.py:2054 cps/web.py:2056 cps/web.py:2068
|
#: cps/web.py:2046 cps/web.py:2048 cps/web.py:2050 cps/web.py:2062
|
||||||
msgid "Read a Book"
|
msgid "Read a Book"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2134 cps/web.py:3011
|
#: cps/web.py:2128 cps/web.py:3006
|
||||||
msgid "Please fill out all fields!"
|
msgid "Please fill out all fields!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2135 cps/web.py:2156 cps/web.py:2160 cps/web.py:2165
|
#: cps/web.py:2129 cps/web.py:2150 cps/web.py:2154 cps/web.py:2159
|
||||||
#: cps/web.py:2167
|
#: cps/web.py:2161
|
||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2155 cps/web.py:3227
|
#: cps/web.py:2149 cps/web.py:3222
|
||||||
msgid "An unknown error occurred. Please try again later."
|
msgid "An unknown error occurred. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2158
|
#: cps/web.py:2152
|
||||||
msgid "Your e-mail is not allowed to register"
|
msgid "Your e-mail is not allowed to register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2161
|
#: cps/web.py:2155
|
||||||
msgid "Confirmation e-mail was send to your e-mail account."
|
msgid "Confirmation e-mail was send to your e-mail account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2164
|
#: cps/web.py:2158
|
||||||
msgid "This username or e-mail address is already in use."
|
msgid "This username or e-mail address is already in use."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2181 cps/web.py:2277
|
#: cps/web.py:2175 cps/web.py:2271
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "you are now logged in as: '%(nickname)s'"
|
msgid "you are now logged in as: '%(nickname)s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2186
|
#: cps/web.py:2180
|
||||||
msgid "Wrong Username or Password"
|
msgid "Wrong Username or Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2192 cps/web.py:2213
|
#: cps/web.py:2186 cps/web.py:2207
|
||||||
msgid "login"
|
msgid "login"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2225 cps/web.py:2256
|
#: cps/web.py:2219 cps/web.py:2250
|
||||||
msgid "Token not found"
|
msgid "Token not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2233 cps/web.py:2264
|
#: cps/web.py:2227 cps/web.py:2258
|
||||||
msgid "Token has expired"
|
msgid "Token has expired"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2241
|
#: cps/web.py:2235
|
||||||
msgid "Success! Please return to your device"
|
msgid "Success! Please return to your device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2291
|
#: cps/web.py:2285
|
||||||
msgid "Please configure the SMTP mail settings first..."
|
msgid "Please configure the SMTP mail settings first..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2295
|
#: cps/web.py:2289
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book successfully queued for sending to %(kindlemail)s"
|
msgid "Book successfully queued for sending to %(kindlemail)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2299
|
#: cps/web.py:2293
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error sending this book: %(res)s"
|
msgid "There was an error sending this book: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2301 cps/web.py:3065
|
#: cps/web.py:2295 cps/web.py:3060
|
||||||
msgid "Please configure your kindle e-mail address first..."
|
msgid "Please configure your kindle e-mail address first..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2345
|
#: cps/web.py:2339
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book has been added to shelf: %(sname)s"
|
msgid "Book has been added to shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2356
|
#: cps/web.py:2350
|
||||||
msgid "Invalid shelf specified"
|
msgid "Invalid shelf specified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2361
|
#: cps/web.py:2355
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You are not allowed to add a book to the the shelf: %s"
|
msgid "You are not allowed to add a book to the the shelf: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2366
|
#: cps/web.py:2360
|
||||||
msgid "User is not allowed to edit public shelves"
|
msgid "User is not allowed to edit public shelves"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2384
|
#: cps/web.py:2378
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Books are already part of the shelf: %s"
|
msgid "Books are already part of the shelf: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2398
|
#: cps/web.py:2392
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Books have been added to shelf: %(sname)s"
|
msgid "Books have been added to shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2400
|
#: cps/web.py:2394
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Could not add books to shelf: %(sname)s"
|
msgid "Could not add books to shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2437
|
#: cps/web.py:2431
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book has been removed from shelf: %(sname)s"
|
msgid "Book has been removed from shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2443
|
#: cps/web.py:2437
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
|
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2463 cps/web.py:2487
|
#: cps/web.py:2457 cps/web.py:2481
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "A shelf with the name '%(title)s' already exists."
|
msgid "A shelf with the name '%(title)s' already exists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2468
|
#: cps/web.py:2462
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Shelf %(title)s created"
|
msgid "Shelf %(title)s created"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2470 cps/web.py:2498
|
#: cps/web.py:2464 cps/web.py:2492
|
||||||
msgid "There was an error"
|
msgid "There was an error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2471 cps/web.py:2473
|
#: cps/web.py:2465 cps/web.py:2467
|
||||||
msgid "create a shelf"
|
msgid "create a shelf"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2496
|
#: cps/web.py:2490
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Shelf %(title)s changed"
|
msgid "Shelf %(title)s changed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2499 cps/web.py:2501
|
#: cps/web.py:2493 cps/web.py:2495
|
||||||
msgid "Edit a shelf"
|
msgid "Edit a shelf"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2522
|
#: cps/web.py:2516
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "successfully deleted shelf %(name)s"
|
msgid "successfully deleted shelf %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2544
|
#: cps/web.py:2538
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Shelf: '%(name)s'"
|
msgid "Shelf: '%(name)s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2547
|
#: cps/web.py:2541
|
||||||
msgid "Error opening shelf. Shelf does not exist or is not accessible"
|
msgid "Error opening shelf. Shelf does not exist or is not accessible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2578
|
#: cps/web.py:2572
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Change order of Shelf: '%(name)s'"
|
msgid "Change order of Shelf: '%(name)s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2607 cps/web.py:3017
|
#: cps/web.py:2601 cps/web.py:3012
|
||||||
msgid "E-mail is not from valid domain"
|
msgid "E-mail is not from valid domain"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2609 cps/web.py:2650 cps/web.py:2653
|
#: cps/web.py:2603 cps/web.py:2644 cps/web.py:2647
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s's profile"
|
msgid "%(name)s's profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2648
|
#: cps/web.py:2642
|
||||||
msgid "Found an existing account for this e-mail address."
|
msgid "Found an existing account for this e-mail address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2651
|
#: cps/web.py:2645
|
||||||
msgid "Profile updated"
|
msgid "Profile updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2663
|
#: cps/web.py:2657
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2677
|
#: cps/web.py:2671
|
||||||
msgid "Admin page"
|
msgid "Admin page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2755 cps/web.py:2927
|
#: cps/web.py:2749 cps/web.py:2922
|
||||||
msgid "Calibre-Web configuration updated"
|
msgid "Calibre-Web configuration updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/admin.html:91 cps/web.py:2768
|
#: cps/templates/admin.html:91 cps/web.py:2762
|
||||||
msgid "UI Configuration"
|
msgid "UI Configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2785
|
#: cps/web.py:2780
|
||||||
msgid "Import of optional Google Drive requirements missing"
|
msgid "Import of optional Google Drive requirements missing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2788
|
#: cps/web.py:2783
|
||||||
msgid "client_secrets.json is missing or not readable"
|
msgid "client_secrets.json is missing or not readable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2793 cps/web.py:2820
|
#: cps/web.py:2788 cps/web.py:2815
|
||||||
msgid "client_secrets.json is not configured for web application"
|
msgid "client_secrets.json is not configured for web application"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/admin.html:90 cps/web.py:2823 cps/web.py:2849 cps/web.py:2861
|
#: cps/templates/admin.html:90 cps/web.py:2818 cps/web.py:2844 cps/web.py:2856
|
||||||
#: cps/web.py:2903 cps/web.py:2918 cps/web.py:2935 cps/web.py:2942
|
#: cps/web.py:2898 cps/web.py:2913 cps/web.py:2930 cps/web.py:2937
|
||||||
#: cps/web.py:2959
|
#: cps/web.py:2954
|
||||||
msgid "Basic Configuration"
|
msgid "Basic Configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2846
|
#: cps/web.py:2841
|
||||||
msgid "Keyfile location is not valid, please enter correct path"
|
msgid "Keyfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2858
|
#: cps/web.py:2853
|
||||||
msgid "Certfile location is not valid, please enter correct path"
|
msgid "Certfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2900
|
#: cps/web.py:2895
|
||||||
msgid "Logfile location is not valid, please enter correct path"
|
msgid "Logfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2939
|
#: cps/web.py:2934
|
||||||
msgid "DB location is not valid, please enter correct path"
|
msgid "DB location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/admin.html:31 cps/web.py:3013 cps/web.py:3019 cps/web.py:3035
|
#: cps/templates/admin.html:31 cps/web.py:3008 cps/web.py:3014 cps/web.py:3030
|
||||||
msgid "Add new user"
|
msgid "Add new user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3025
|
#: cps/web.py:3020
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(user)s' created"
|
msgid "User '%(user)s' created"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3029
|
#: cps/web.py:3024
|
||||||
msgid "Found an existing account for this e-mail address or nickname."
|
msgid "Found an existing account for this e-mail address or nickname."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3053 cps/web.py:3067
|
#: cps/web.py:3048 cps/web.py:3062
|
||||||
msgid "E-mail server settings updated"
|
msgid "E-mail server settings updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3060
|
#: cps/web.py:3055
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Test e-mail successfully send to %(kindlemail)s"
|
msgid "Test e-mail successfully send to %(kindlemail)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3063
|
#: cps/web.py:3058
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error sending the Test e-mail: %(res)s"
|
msgid "There was an error sending the Test e-mail: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3068
|
#: cps/web.py:3063
|
||||||
msgid "Edit e-mail server settings"
|
msgid "Edit e-mail server settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3093
|
#: cps/web.py:3088
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(nick)s' deleted"
|
msgid "User '%(nick)s' deleted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3202
|
#: cps/web.py:3197
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(nick)s' updated"
|
msgid "User '%(nick)s' updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3205
|
#: cps/web.py:3200
|
||||||
msgid "An unknown error occured."
|
msgid "An unknown error occured."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3207
|
#: cps/web.py:3202
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Edit User %(nick)s"
|
msgid "Edit User %(nick)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3224
|
#: cps/web.py:3219
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Password for user %s reset"
|
msgid "Password for user %(user)s reset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3244
|
#: cps/web.py:3239
|
||||||
msgid "Error opening eBook. File does not exist or file is not accessible"
|
msgid "Error opening eBook. File does not exist or file is not accessible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3275 cps/web.py:3551 cps/web.py:3556 cps/web.py:3711
|
#: cps/web.py:3270 cps/web.py:3546 cps/web.py:3551 cps/web.py:3706
|
||||||
msgid "edit metadata"
|
msgid "edit metadata"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3289 cps/web.py:3581
|
#: cps/web.py:3284
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File extension \"%s\" is not allowed to be uploaded to this server"
|
msgid "File extension \"%s\" is not allowed to be uploaded to this server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3293 cps/web.py:3585
|
#: cps/web.py:3288 cps/web.py:3580
|
||||||
msgid "File to be uploaded must have an extension"
|
msgid "File to be uploaded must have an extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3305 cps/web.py:3605
|
#: cps/web.py:3300 cps/web.py:3600
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to create path %s (Permission denied)."
|
msgid "Failed to create path %(path)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3310
|
#: cps/web.py:3305
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store file %s."
|
msgid "Failed to store file %(file)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3326
|
#: cps/web.py:3321
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File format %s added to %s"
|
msgid "File format %(ext)s added to %(book)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3344
|
#: cps/web.py:3339
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to create path for cover %s (Permission denied)."
|
msgid "Failed to create path for cover %(path)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3351
|
#: cps/web.py:3346
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store cover-file %s."
|
msgid "Failed to store cover-file %(cover)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3354
|
#: cps/web.py:3349
|
||||||
msgid "Cover-file is not a valid image file"
|
msgid "Cover-file is not a valid image file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3367 cps/web.py:3371
|
#: cps/web.py:3362 cps/web.py:3366
|
||||||
msgid "unknown"
|
msgid "unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3393
|
#: cps/web.py:3388
|
||||||
msgid "Cover is not a jpg file, can't save"
|
msgid "Cover is not a jpg file, can't save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3560
|
#: cps/web.py:3555
|
||||||
msgid "Error editing book, please check logfile for details"
|
msgid "Error editing book, please check logfile for details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: cps/web.py:3576
|
||||||
|
#, python-format
|
||||||
|
msgid "File extension \"%(ext)s\" is not allowed to be uploaded to this server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cps/web.py:3605
|
||||||
|
#, python-format
|
||||||
|
msgid "Failed to store file %(file)s (Permission denied)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3610
|
#: cps/web.py:3610
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store file %s (Permission denied)."
|
msgid "Failed to delete file %(file)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3615
|
#: cps/web.py:3692
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to delete file %s (Permission denied)."
|
msgid "File %(file)s uploaded"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3697
|
#: cps/web.py:3722
|
||||||
#, python-format
|
|
||||||
msgid "File %s uploaded"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: cps/web.py:3727
|
|
||||||
msgid "Source or destination format for conversion missing"
|
msgid "Source or destination format for conversion missing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3737
|
#: cps/web.py:3732
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book successfully queued for converting to %(book_format)s"
|
msgid "Book successfully queued for converting to %(book_format)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3741
|
#: cps/web.py:3736
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error converting this book: %(res)s"
|
msgid "There was an error converting this book: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -644,11 +643,6 @@ msgstr ""
|
|||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:226
|
|
||||||
#, python-format
|
|
||||||
msgid "E-mail: %stitle"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: cps/worker.py:237
|
#: cps/worker.py:237
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Convertertool %(converter)s not found"
|
msgid "Convertertool %(converter)s not found"
|
||||||
@@ -656,7 +650,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: cps/worker.py:272
|
#: cps/worker.py:272
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ebook-converter failed: %s"
|
msgid "Ebook-converter failed: %(error)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:283
|
#: cps/worker.py:283
|
||||||
|
|||||||
Reference in New Issue
Block a user