From b81d8f46bcd89cc5d71bb534f789a77f5e58f32e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 23 Apr 2023 12:44:52 +0530 Subject: [PATCH] Nicer presentation of folder links in book details --- src/calibre/ebooks/metadata/book/render.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index 5a576ed744..f50d3da0b6 100644 --- a/src/calibre/ebooks/metadata/book/render.py +++ b/src/calibre/ebooks/metadata/book/render.py @@ -20,7 +20,7 @@ from calibre.library.comments import comments_to_html, markdown from calibre.utils.date import format_date, is_date_undefined from calibre.utils.formatter import EvalFormatter from calibre.utils.icu import sort_key -from calibre.utils.localization import calibre_langcode_to_name +from calibre.utils.localization import calibre_langcode_to_name, ngettext from calibre.utils.serialize import json_dumps from polyglot.binary import as_hex_unicode @@ -213,15 +213,22 @@ def mi_to_html( extra = '
%s'%( prepare_string_for_xml(durl)) if show_links: - link = '{}{}'.format(action(scheme, book_id=book_id, loc=loc), - prepare_string_for_xml(path, True), _('Book files'), extra) - if not isdevice: + has_data_files = False + if isdevice: + text = _('Click to open') + else: data_path = os.path.join(path, DATA_DIR_NAME) with suppress(OSError): if os.listdir(data_path): - link += ', {}'.format( - action('data-path', book_id=book_id, loc=book_id), - prepare_string_for_xml(data_path, True), _('Data files')) + has_data_files = True + text = _('Book files') + name = ngettext('Folder:', 'Folders:', 2 if has_data_files else 1) + link = '{}{}'.format(action(scheme, book_id=book_id, loc=loc), + prepare_string_for_xml(path, True), text, extra) + if has_data_files: + link += ', {}'.format( + action('data-path', book_id=book_id, loc=book_id), + prepare_string_for_xml(data_path, True), _('Data files')) else: link = prepare_string_for_xml(path, True)