mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
Book details panel: Display data in right-to-left format when the calibre interface language is set to a right-to-left language such as Hebrew or Arabic
This commit is contained in:
parent
0b83786cc6
commit
c33017583e
@ -53,7 +53,7 @@ def search_href(search_term, value):
|
||||
def item_data(field_name, value, book_id):
|
||||
return hexlify(cPickle.dumps((field_name, value, book_id), -1))
|
||||
|
||||
def mi_to_html(mi, field_list=None, default_author_link=None, use_roman_numbers=True, rating_font='Liberation Serif'):
|
||||
def mi_to_html(mi, field_list=None, default_author_link=None, use_roman_numbers=True, rating_font='Liberation Serif', rtl=False):
|
||||
if field_list is None:
|
||||
field_list = get_field_list(mi)
|
||||
ans = []
|
||||
@ -263,4 +263,5 @@ def mi_to_html(mi, field_list=None, default_author_link=None, use_roman_numbers=
|
||||
ans = [u'<tr id="%s" class="%s">%s</tr>'%(fieldl.replace('#', '_'),
|
||||
classname(fieldl), html) for fieldl, html in ans]
|
||||
# print '\n'.join(ans)
|
||||
return u'<table class="fields">%s</table>'%(u'\n'.join(ans)), comment_fields
|
||||
direction = 'rtl' if rtl else 'ltr'
|
||||
return u'<table class="fields" dir="%s">%s</table>'%(direction, u'\n'.join(ans)), comment_fields
|
||||
|
@ -23,6 +23,7 @@ from calibre.ebooks.metadata.book.base import (field_metadata, Metadata)
|
||||
from calibre.ebooks.metadata.book.render import mi_to_html
|
||||
from calibre.gui2 import (config, open_url, pixmap_to_data, gprefs, rating_font)
|
||||
from calibre.utils.config import tweaks
|
||||
from calibre.utils.localization import is_rtl
|
||||
|
||||
def render_html(mi, css, vertical, widget, all_fields=False, render_data_func=None): # {{{
|
||||
table, comment_fields = (render_data_func or render_data)(mi, all_fields=all_fields,
|
||||
@ -100,7 +101,7 @@ def get_field_list(fm, use_defaults=False):
|
||||
def render_data(mi, use_roman_numbers=True, all_fields=False):
|
||||
field_list = get_field_list(getattr(mi, 'field_metadata', field_metadata))
|
||||
field_list = [(x, all_fields or display) for x, display in field_list]
|
||||
return mi_to_html(mi, field_list=field_list, use_roman_numbers=use_roman_numbers,
|
||||
return mi_to_html(mi, field_list=field_list, use_roman_numbers=use_roman_numbers, rtl=is_rtl(),
|
||||
rating_font=rating_font(), default_author_link=gprefs.get('default_author_link'))
|
||||
|
||||
# }}}
|
||||
|
@ -21,6 +21,7 @@ from calibre.gui2.viewer.documentview import DocumentView
|
||||
from calibre.gui2.viewer.bookmarkmanager import BookmarkManager
|
||||
from calibre.gui2.viewer.toc import TOCView, TOCSearch
|
||||
from calibre.gui2.viewer.footnote import FootnotesView
|
||||
from calibre.utils.localization import is_rtl
|
||||
|
||||
class DoubleSpinBox(QDoubleSpinBox): # {{{
|
||||
|
||||
@ -85,7 +86,7 @@ class Metadata(QWebView): # {{{
|
||||
from calibre.ebooks.metadata.book.render import mi_to_html
|
||||
|
||||
def render_data(mi, use_roman_numbers=True, all_fields=False):
|
||||
return mi_to_html(mi, use_roman_numbers=use_roman_numbers, rating_font=rating_font())
|
||||
return mi_to_html(mi, use_roman_numbers=use_roman_numbers, rating_font=rating_font(), rtl=is_rtl())
|
||||
|
||||
mi = opf.to_book_metadata()
|
||||
html = render_html(mi, self.css, True, self, render_data_func=render_data)
|
||||
|
@ -81,6 +81,9 @@ def get_lang():
|
||||
lang = 'en'
|
||||
return lang
|
||||
|
||||
def is_rtl():
|
||||
return get_lang()[:2].lower() in {'he', 'ar'}
|
||||
|
||||
def get_lc_messages_path(lang):
|
||||
hlang = None
|
||||
if zf_exists():
|
||||
|
Loading…
x
Reference in New Issue
Block a user