diff --git a/src/calibre/gui2/viewer/web_view.py b/src/calibre/gui2/viewer/web_view.py index 83851b60c6..3c9066b5fb 100644 --- a/src/calibre/gui2/viewer/web_view.py +++ b/src/calibre/gui2/viewer/web_view.py @@ -21,6 +21,7 @@ from calibre import as_unicode, prints from calibre.constants import ( FAKE_HOST, FAKE_PROTOCOL, __version__, is_running_from_develop ) +from calibre.ebooks.metadata.book.base import field_metadata from calibre.ebooks.oeb.polish.utils import guess_type from calibre.gui2 import error_dialog, open_url from calibre.gui2.webengine import ( @@ -389,7 +390,7 @@ class WebView(RestartingWebEngineView): return self._page.bridge def on_bridge_ready(self): - self.bridge.create_view(vprefs['session_data'], QFontDatabase().families()) + self.bridge.create_view(vprefs['session_data'], QFontDatabase().families(), field_metadata.all_metadata()) for func, args in iteritems(self.pending_bridge_ready_actions): getattr(self.bridge, func)(*args) diff --git a/src/pyj/book_list/book_details.pyj b/src/pyj/book_list/book_details.pyj index 7ac3acc62c..0c690c7015 100644 --- a/src/pyj/book_list/book_details.pyj +++ b/src/pyj/book_list/book_details.pyj @@ -248,7 +248,10 @@ def render_metadata(mi, table, book_id): # {{{ table.appendChild(E.tr(E.td(name + ':'), E.td())) td = table.lastChild.lastChild for k in val: - lang = mi.lang_names[k] or k + if mi.lang_names: + lang = mi.lang_names[k] or k + else: + lang = k td.appendChild(E.a(lang, title=_('Click to see books with language: {}').format(lang), href=href_for_search(field, k) diff --git a/src/pyj/viewer-main.pyj b/src/pyj/viewer-main.pyj index 846720ebae..8b9a1a876b 100644 --- a/src/pyj/viewer-main.pyj +++ b/src/pyj/viewer-main.pyj @@ -10,6 +10,7 @@ import initialize # noqa: unused-import from ajax import ajax from book_list.globals import set_session_data from book_list.theme import get_color, get_font_family +from book_list.library_data import library_data from dom import get_widget_css, set_css from modals import create_modal_container, error_dialog from qt import from_python, to_python @@ -176,9 +177,10 @@ def create_session_data(prefs): @from_python -def create_view(prefs, all_font_families): +def create_view(prefs, all_font_families, field_metadata): nonlocal view runtime.all_font_families = all_font_families + library_data.field_metadata = field_metadata if view is None: create_session_data(prefs) view = View(document.getElementById('view'))