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
|
||||
if kindle_mail:
|
||||
settings = ub.get_mail_settings()
|
||||
text = _(u"Convert: %s" % book.title)
|
||||
text = _(u"Convert: %(book)s" , book=book.title)
|
||||
else:
|
||||
settings = dict()
|
||||
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 += "Your Calibre-Web team"
|
||||
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
|
||||
|
||||
|
||||
@@ -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")
|
||||
if result:
|
||||
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:
|
||||
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:
|
||||
web.app.logger.error("Rename title from: " + path + " to " + new_title_path)
|
||||
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:
|
||||
try:
|
||||
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:
|
||||
web.app.logger.error("Rename author from: " + path + " to " + new_author_path)
|
||||
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
|
||||
|
||||
|
||||
@@ -261,7 +261,6 @@ def update_dir_structure_gdrive(book_id):
|
||||
new_titledir = get_valid_filename(book.title) + " (" + str(book_id) + ")"
|
||||
|
||||
if titledir != new_titledir:
|
||||
# print (titledir)
|
||||
gFile = gd.getFileFromEbooksFolder(os.path.dirname(book.path), titledir)
|
||||
if gFile:
|
||||
gFile['title'] = new_titledir
|
||||
@@ -270,7 +269,7 @@ def update_dir_structure_gdrive(book_id):
|
||||
book.path = book.path.split('/')[0] + '/' + new_titledir
|
||||
gd.updateDatabaseOnEdit(gFile['id'], book.path) # only child folder affected
|
||||
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:
|
||||
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]
|
||||
gd.updateDatabaseOnEdit(gFile['id'], book.path)
|
||||
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
|
||||
|
||||
|
||||
@@ -297,7 +296,7 @@ def delete_book_gdrive(book, book_format):
|
||||
gd.deleteDatabaseEntry(gFile['id'])
|
||||
gFile.Trash()
|
||||
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
|
||||
|
||||
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
|
||||
for c in cc:
|
||||
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
|
||||
|
||||
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))
|
||||
if pub_start:
|
||||
try:
|
||||
searchterm.extend([_(u"Published after %s" %
|
||||
searchterm.extend([_(u"Published after ") +
|
||||
format_date(datetime.datetime.strptime(pub_start,"%Y-%m-%d"),
|
||||
format='medium', locale=get_locale()))])
|
||||
format='medium', locale=get_locale())])
|
||||
except ValueError:
|
||||
pub_start = u""
|
||||
if pub_end:
|
||||
@@ -1855,13 +1855,13 @@ def advanced_search():
|
||||
language_names = speaking_language(language_names)
|
||||
searchterm.extend(language.name for language in language_names)
|
||||
if rating_high:
|
||||
searchterm.extend([_(u"Rating <= %s" % rating_high)])
|
||||
searchterm.extend([_(u"Rating <= %(rating)s", rating=rating_high)])
|
||||
if rating_low:
|
||||
searchterm.extend([_(u"Rating >= %s" % rating_low)])
|
||||
searchterm.extend([_(u"Rating >= %(rating)s", rating=rating_low)])
|
||||
# handle custom columns
|
||||
for c in cc:
|
||||
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))
|
||||
q = q.filter()
|
||||
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):
|
||||
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'))
|
||||
|
||||
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:
|
||||
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'))
|
||||
|
||||
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:
|
||||
ub.session.commit()
|
||||
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:
|
||||
ub.session.rollback()
|
||||
flash(_(u"An unknown error occurred. Please try again later."), category="error")
|
||||
@@ -3297,12 +3297,12 @@ def edit_book(book_id):
|
||||
try:
|
||||
os.makedirs(filepath)
|
||||
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))
|
||||
try:
|
||||
requested_file.save(saved_filename)
|
||||
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))
|
||||
|
||||
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)
|
||||
|
||||
# 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,
|
||||
"<a href=\"" + url_for('show_book', book_id=book.id) + "\">" + uploadText + "</a>")
|
||||
|
||||
@@ -3336,14 +3336,14 @@ def edit_book(book_id):
|
||||
try:
|
||||
os.makedirs(filepath)
|
||||
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))
|
||||
try:
|
||||
requested_file.save(saved_filename)
|
||||
# im=Image.open(saved_filename)
|
||||
book.has_cover = 1
|
||||
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))
|
||||
except IOError:
|
||||
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()
|
||||
if file_ext not in ALLOWED_EXTENSIONS:
|
||||
flash(
|
||||
_('File extension "%s" is not allowed to be uploaded to this server' %
|
||||
file_ext), category="error")
|
||||
_('File extension "%(ext)s" is not allowed to be uploaded to this server',
|
||||
ext=file_ext), category="error")
|
||||
return redirect(url_for('index'))
|
||||
else:
|
||||
flash(_('File to be uploaded must have an extension'), category="error")
|
||||
@@ -3597,17 +3597,17 @@ def upload():
|
||||
try:
|
||||
os.makedirs(filepath)
|
||||
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'))
|
||||
try:
|
||||
copyfile(meta.file_path, saved_filename)
|
||||
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'))
|
||||
try:
|
||||
os.unlink(meta.file_path)
|
||||
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:
|
||||
has_cover = 0
|
||||
@@ -3689,7 +3689,7 @@ def upload():
|
||||
gdriveutils.updateGdriveCalibreFromLocal()
|
||||
if 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,
|
||||
"<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:
|
||||
self.add_email(_(u'Send to Kindle'), self.queue[self.current]['path'], filename,
|
||||
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):
|
||||
@@ -269,7 +269,7 @@ class WorkerThread(threading.Thread):
|
||||
|
||||
p = subprocess.Popen(command, stdout=subprocess.PIPE, universal_newlines=True)
|
||||
except OSError as e:
|
||||
self._handleError(_(u"Ebook-converter failed: %s" % e))
|
||||
self._handleError(_(u"Ebook-converter failed: %(error)s", error=e))
|
||||
return
|
||||
|
||||
if web.ub.config.config_ebookconverter == 1:
|
||||
|
||||
Reference in New Issue
Block a user