Commit 9d0f583d authored by OzzieIsaacs's avatar OzzieIsaacs

Updated french and chinese language. Thanks to @idalin and Olivier

Fixed bug some translations are not shown
parent 2f1fe60c
...@@ -73,7 +73,7 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format, ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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():
......
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.
...@@ -1824,7 +1824,7 @@ def advanced_search(): ...@@ -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(): ...@@ -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(): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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(): ...@@ -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(): ...@@ -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(): ...@@ -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>")
......
...@@ -223,7 +223,7 @@ class WorkerThread(threading.Thread): ...@@ -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): ...@@ -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:
......
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