Update Language translation table (now including the locale language)
Fix #602 Fix for #593
This commit is contained in:
parent
79ee07ea54
commit
bb7d2c6273
File diff suppressed because it is too large
Load Diff
50
cps/web.py
50
cps/web.py
|
@ -1044,8 +1044,12 @@ def get_languages_json():
|
||||||
query = request.args.get('q').lower()
|
query = request.args.get('q').lower()
|
||||||
# languages = speaking_language()
|
# languages = speaking_language()
|
||||||
languages = language_table[get_locale()]
|
languages = language_table[get_locale()]
|
||||||
entries = [s for key,s in languages.items() if query in s.lower()]
|
entries_start = [s for key, s in languages.items() if s.lower().startswith(query.lower())]
|
||||||
json_dumps = json.dumps([dict(name=r) for r in entries])
|
if len(entries_start) < 5:
|
||||||
|
entries = [s for key,s in languages.items() if query in s.lower()]
|
||||||
|
entries_start.extend(entries[0:(5-len(entries_start))])
|
||||||
|
entries_start = list(set(entries_start))
|
||||||
|
json_dumps = json.dumps([dict(name=r) for r in entries_start[0:5]])
|
||||||
return json_dumps
|
return json_dumps
|
||||||
|
|
||||||
|
|
||||||
|
@ -3247,11 +3251,7 @@ def edit_book(book_id):
|
||||||
return redirect(url_for("index"))
|
return redirect(url_for("index"))
|
||||||
|
|
||||||
for indx in range(0, len(book.languages)):
|
for indx in range(0, len(book.languages)):
|
||||||
try:
|
book.languages[indx].language_name = language_table[get_locale()][book.languages[indx].lang_code]
|
||||||
book.languages[indx].language_name = LC.parse(book.languages[indx].lang_code).get_language_name(
|
|
||||||
get_locale())
|
|
||||||
except UnknownLocaleError:
|
|
||||||
book.languages[indx].language_name = _(isoLanguages.get(part3=book.languages[indx].lang_code).name)
|
|
||||||
for authr in book.authors:
|
for authr in book.authors:
|
||||||
author_names.append(authr.name.replace('|', ','))
|
author_names.append(authr.name.replace('|', ','))
|
||||||
|
|
||||||
|
@ -3276,10 +3276,6 @@ def edit_book(book_id):
|
||||||
return render_title_template('book_edit.html', book=book, authors=author_names, cc=cc,
|
return render_title_template('book_edit.html', book=book, authors=author_names, cc=cc,
|
||||||
title=_(u"edit metadata"), page="editbook", display_convertbtn=display_convertbtn,
|
title=_(u"edit metadata"), page="editbook", display_convertbtn=display_convertbtn,
|
||||||
conversion_formats=allowed_conversion_formats)
|
conversion_formats=allowed_conversion_formats)
|
||||||
|
|
||||||
# Update book
|
|
||||||
edited_books_id = set()
|
|
||||||
|
|
||||||
# Check and handle Uploaded file
|
# Check and handle Uploaded file
|
||||||
if 'btn-upload-format' in request.files:
|
if 'btn-upload-format' in request.files:
|
||||||
requested_file = request.files['btn-upload-format']
|
requested_file = request.files['btn-upload-format']
|
||||||
|
@ -3334,7 +3330,6 @@ def edit_book(book_id):
|
||||||
# check for empty request
|
# check for empty request
|
||||||
if requested_file.filename != '':
|
if requested_file.filename != '':
|
||||||
file_ext = requested_file.filename.rsplit('.', 1)[-1].lower()
|
file_ext = requested_file.filename.rsplit('.', 1)[-1].lower()
|
||||||
# file_name = book.path.rsplit('/', 1)[-1]
|
|
||||||
filepath = os.path.normpath(os.path.join(config.config_calibre_dir, book.path))
|
filepath = os.path.normpath(os.path.join(config.config_calibre_dir, book.path))
|
||||||
saved_filename = os.path.join(filepath, 'cover.' + file_ext)
|
saved_filename = os.path.join(filepath, 'cover.' + file_ext)
|
||||||
|
|
||||||
|
@ -3358,10 +3353,14 @@ def edit_book(book_id):
|
||||||
to_save = request.form.to_dict()
|
to_save = request.form.to_dict()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
# Update book
|
||||||
|
edited_books_id = set()
|
||||||
|
#handle book title
|
||||||
if book.title != to_save["book_title"]:
|
if book.title != to_save["book_title"]:
|
||||||
book.title = to_save["book_title"]
|
book.title = to_save["book_title"]
|
||||||
edited_books_id.add(book.id)
|
edited_books_id.add(book.id)
|
||||||
|
|
||||||
|
# handle author(s)
|
||||||
input_authors = to_save["author_name"].split('&')
|
input_authors = to_save["author_name"].split('&')
|
||||||
input_authors = list(map(lambda it: it.strip().replace(',', '|'), input_authors))
|
input_authors = list(map(lambda it: it.strip().replace(',', '|'), input_authors))
|
||||||
# we have all author names now
|
# we have all author names now
|
||||||
|
@ -3397,22 +3396,22 @@ def edit_book(book_id):
|
||||||
if book.series_index != to_save["series_index"]:
|
if book.series_index != to_save["series_index"]:
|
||||||
book.series_index = to_save["series_index"]
|
book.series_index = to_save["series_index"]
|
||||||
|
|
||||||
|
# Handle book comments/description
|
||||||
if len(book.comments):
|
if len(book.comments):
|
||||||
book.comments[0].text = to_save["description"]
|
book.comments[0].text = to_save["description"]
|
||||||
else:
|
else:
|
||||||
book.comments.append(db.Comments(text=to_save["description"], book=book.id))
|
book.comments.append(db.Comments(text=to_save["description"], book=book.id))
|
||||||
|
|
||||||
|
# Handle book tags
|
||||||
input_tags = to_save["tags"].split(',')
|
input_tags = to_save["tags"].split(',')
|
||||||
input_tags = list(map(lambda it: it.strip(), input_tags))
|
input_tags = list(map(lambda it: it.strip(), input_tags))
|
||||||
modify_database_object(input_tags, book.tags, db.Tags, db.session, 'tags')
|
modify_database_object(input_tags, book.tags, db.Tags, db.session, 'tags')
|
||||||
|
|
||||||
|
# Handle book series
|
||||||
input_series = [to_save["series"].strip()]
|
input_series = [to_save["series"].strip()]
|
||||||
input_series = [x for x in input_series if x != '']
|
input_series = [x for x in input_series if x != '']
|
||||||
modify_database_object(input_series, book.series, db.Series, db.session, 'series')
|
modify_database_object(input_series, book.series, db.Series, db.session, 'series')
|
||||||
|
|
||||||
input_languages = to_save["languages"].split(',')
|
|
||||||
input_languages = list(map(lambda it: it.strip().lower(), input_languages))
|
|
||||||
|
|
||||||
if to_save["pubdate"]:
|
if to_save["pubdate"]:
|
||||||
try:
|
try:
|
||||||
book.pubdate = datetime.datetime.strptime(to_save["pubdate"], "%Y-%m-%d")
|
book.pubdate = datetime.datetime.strptime(to_save["pubdate"], "%Y-%m-%d")
|
||||||
|
@ -3420,24 +3419,25 @@ def edit_book(book_id):
|
||||||
book.pubdate = db.Books.DEFAULT_PUBDATE
|
book.pubdate = db.Books.DEFAULT_PUBDATE
|
||||||
else:
|
else:
|
||||||
book.pubdate = db.Books.DEFAULT_PUBDATE
|
book.pubdate = db.Books.DEFAULT_PUBDATE
|
||||||
|
|
||||||
'''if len(book.publishers):
|
'''if len(book.publishers):
|
||||||
if to_save["publisher"] != book.publishers[0].name:
|
if to_save["publisher"] != book.publishers[0].name:
|
||||||
modify_database_object(to_save["publisher"], book.publishers, db.Publishers, db.session, 'series')
|
modify_database_object(to_save["publisher"], book.publishers, db.Publishers, db.session, 'series')
|
||||||
else:
|
else:
|
||||||
modify_database_object(to_save["publisher"], book.publishers, db.Publishers, db.session, 'series')'''
|
modify_database_object(to_save["publisher"], book.publishers, db.Publishers, db.session, 'series')'''
|
||||||
|
|
||||||
# retranslate displayed text to language codes
|
# handle book languages
|
||||||
languages = db.session.query(db.Languages).all()
|
input_languages = to_save["languages"].split(',')
|
||||||
|
# input_languages = list(map(lambda it: it.strip().lower(), input_languages))
|
||||||
|
input_languages = [x.strip().lower() for x in input_languages if x != '']
|
||||||
input_l = []
|
input_l = []
|
||||||
for lang in languages:
|
invers_lang_table = [x.lower() for x in language_table[get_locale()].values()]
|
||||||
|
for lang in input_languages:
|
||||||
try:
|
try:
|
||||||
lang.name = LC.parse(lang.lang_code).get_language_name(get_locale()).lower()
|
res = list(language_table[get_locale()].keys())[invers_lang_table.index(lang)]
|
||||||
except UnknownLocaleError:
|
input_l.append(res)
|
||||||
lang.name = _(isoLanguages.get(part3=lang.lang_code).name).lower()
|
except ValueError:
|
||||||
for inp_lang in input_languages:
|
app.logger.error('%s is not a valid language' % lang)
|
||||||
if inp_lang == lang.name:
|
flash(_(u"%(langname)s is not a valid language", langname=lang), category="error")
|
||||||
input_l.append(lang.lang_code)
|
|
||||||
modify_database_object(input_l, book.languages, db.Languages, db.session, 'languages')
|
modify_database_object(input_l, book.languages, db.Languages, db.session, 'languages')
|
||||||
|
|
||||||
if to_save["rating"].strip():
|
if to_save["rating"].strip():
|
||||||
|
|
Loading…
Reference in New Issue
Block a user