mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
String changes
This commit is contained in:
parent
da8b7d94e0
commit
215e1e04b1
@ -11,7 +11,7 @@ To use it, either open the e-book in the tool for :ref:`edit` and then click
|
|||||||
:guilabel:`File->Compare to other book` or use the :ref:`book_details` panel.
|
:guilabel:`File->Compare to other book` or use the :ref:`book_details` panel.
|
||||||
If you do a conversion from EPUB to EPUB, the original EPUB file will be saved
|
If you do a conversion from EPUB to EPUB, the original EPUB file will be saved
|
||||||
as ORIGINAL_EPUB. Simply right click on the ORIGINAL_EPUB entry in the Book
|
as ORIGINAL_EPUB. Simply right click on the ORIGINAL_EPUB entry in the Book
|
||||||
Details panel and choose :guilabel:`Compare to EPUB format`.
|
details panel and choose :guilabel:`Compare to EPUB format`.
|
||||||
|
|
||||||
The comparison tool that opens will look like the screenshot below. It shows
|
The comparison tool that opens will look like the screenshot below. It shows
|
||||||
you the differences in text, styles and images in the chosen books.
|
you the differences in text, styles and images in the chosen books.
|
||||||
|
@ -64,7 +64,7 @@ See the :ref:`config_filename_metadata` section, to learn how to configure this.
|
|||||||
|
|
||||||
To add an additional format for an existing book you can do any of three things:
|
To add an additional format for an existing book you can do any of three things:
|
||||||
|
|
||||||
1. Drag and drop the file onto the book details panel on the right side of the main window
|
1. Drag and drop the file onto the Book details panel on the right side of the main window
|
||||||
|
|
||||||
2. Right click the :guilabel:`Add books` button and choose :guilabel:`Add files to selected books`.
|
2. Right click the :guilabel:`Add books` button and choose :guilabel:`Add files to selected books`.
|
||||||
|
|
||||||
@ -502,17 +502,17 @@ delete them, compare them to their original versions, save them to disk, open
|
|||||||
them with an external program, etc.
|
them with an external program, etc.
|
||||||
|
|
||||||
You can change the cover of the book by simply drag and dropping an
|
You can change the cover of the book by simply drag and dropping an
|
||||||
image onto the book details panel. If you wish to edit the cover image in
|
image onto the Book details panel. If you wish to edit the cover image in
|
||||||
an external program, simply right click on it and choose :guilabel:`Open With`.
|
an external program, simply right click on it and choose :guilabel:`Open With`.
|
||||||
|
|
||||||
You can also add e-book files to the current book by drag and dropping the files
|
You can also add e-book files to the current book by drag and dropping the files
|
||||||
onto the book details panel.
|
onto the Book details panel.
|
||||||
|
|
||||||
Double clicking the book details panel will open it up in a separate popup
|
Double clicking the Book details panel will open it up in a separate popup
|
||||||
window.
|
window.
|
||||||
|
|
||||||
Finally, you can customize exactly what information is displayed in the Book
|
Finally, you can customize exactly what information is displayed in the Book
|
||||||
Details panel via :guilabel:`Preferences->Look & feel->Book details`.
|
details panel via :guilabel:`Preferences->Look & feel->Book details`.
|
||||||
|
|
||||||
.. raw:: html epub
|
.. raw:: html epub
|
||||||
|
|
||||||
@ -531,7 +531,7 @@ The first click on an item will restrict the list of books to those that contain
|
|||||||
|
|
||||||
Items in the Tag browser have their icons partially colored. The amount of color depends on the average rating of the books in that category. So for example if the books by Isaac Asimov have an average of four stars, the icon for Isaac Asimov in the Tag browser will be 4/5th colored. You can hover your mouse over the icon to see the average rating.
|
Items in the Tag browser have their icons partially colored. The amount of color depends on the average rating of the books in that category. So for example if the books by Isaac Asimov have an average of four stars, the icon for Isaac Asimov in the Tag browser will be 4/5th colored. You can hover your mouse over the icon to see the average rating.
|
||||||
|
|
||||||
The outer-level items in the :guilabel:`Tag browser`, such as Authors and Series, are called categories. You can create your own categories, called User Categories, which are useful for organizing items. For example, you can use the User Categories Editor (click :guilabel:`Alter Tag browser->Manage authors, series, etc->Manage User Categories`) to create a user category called Favorite Authors, then put the items for your favorites into the category. User categories can have sub-categories. For example, the user category Favorites.Authors is a sub-category of Favorites. You might also have Favorites.Series, in which case there will be two sub-categories under Favorites. Sub-categories can be created by right-clicking on a user category, choosing "Add sub-category to ...", and entering the sub-category name; or by using the User Categories Editor by entering names like the Favorites example above.
|
The outer-level items in the :guilabel:`Tag browser`, such as Authors and Series, are called categories. You can create your own categories, called :guilabel:`User categories`, which are useful for organizing items. For example, you can use the :guilabel:`User categories editor` (click :guilabel:`Alter Tag browser->Manage authors, series, etc->Manage User categories`) to create a user category called Favorite Authors, then put the items for your favorites into the category. User categories can have sub-categories. For example, the user category Favorites.Authors is a sub-category of Favorites. You might also have Favorites.Series, in which case there will be two sub-categories under Favorites. Sub-categories can be created by right-clicking on a user category, choosing "Add sub-category to ...", and entering the sub-category name; or by using the User Categories Editor by entering names like the Favorites example above.
|
||||||
|
|
||||||
You can search user categories in the same way as built-in categories, by clicking on them. There are four different searches cycled through by clicking:
|
You can search user categories in the same way as built-in categories, by clicking on them. There are four different searches cycled through by clicking:
|
||||||
1. "everything matching an item in the category" indicated by a single green plus sign.
|
1. "everything matching an item in the category" indicated by a single green plus sign.
|
||||||
@ -624,7 +624,7 @@ The Jobs panel shows the number of currently running jobs. Jobs are tasks that r
|
|||||||
Keyboard shortcuts
|
Keyboard shortcuts
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
calibre has several keyboard shortcuts to save you time and mouse movement. These shortcuts are active in the book list view (when you're not editing the details of a particular book), and most of them affect the title you have selected. The calibre e-book viewer has its own shortcuts which can be customised by clicking the :guilabel:`Preferences` button in the viewer.
|
calibre has several keyboard shortcuts to save you time and mouse movement. These shortcuts are active in the book list view (when you're not editing the details of a particular book), and most of them affect the title you have selected. The calibre E-book viewer has its own shortcuts which can be customised by clicking the :guilabel:`Preferences` button in the viewer.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -653,7 +653,7 @@ calibre has several keyboard shortcuts to save you time and mouse movement. Thes
|
|||||||
* - :kbd:`G`
|
* - :kbd:`G`
|
||||||
- Get books
|
- Get books
|
||||||
* - :kbd:`I`
|
* - :kbd:`I`
|
||||||
- Show book details
|
- Show Book details
|
||||||
* - :kbd:`K`
|
* - :kbd:`K`
|
||||||
- Edit Table of Contents
|
- Edit Table of Contents
|
||||||
* - :kbd:`M`
|
* - :kbd:`M`
|
||||||
|
@ -924,7 +924,7 @@ class ActionSaveToDisk(InterfaceActionBase):
|
|||||||
class ActionShowBookDetails(InterfaceActionBase):
|
class ActionShowBookDetails(InterfaceActionBase):
|
||||||
name = 'Show Book Details'
|
name = 'Show Book Details'
|
||||||
actual_plugin = 'calibre.gui2.actions.show_book_details:ShowBookDetailsAction'
|
actual_plugin = 'calibre.gui2.actions.show_book_details:ShowBookDetailsAction'
|
||||||
description = _('Show book details in a separate popup')
|
description = _('Show Book details in a separate popup')
|
||||||
|
|
||||||
|
|
||||||
class ActionRestart(InterfaceActionBase):
|
class ActionRestart(InterfaceActionBase):
|
||||||
|
@ -720,7 +720,7 @@ class ITUNES(DriverBase):
|
|||||||
self.problem_titles = []
|
self.problem_titles = []
|
||||||
self.problem_msg = _("Some books not found in iTunes database.\n"
|
self.problem_msg = _("Some books not found in iTunes database.\n"
|
||||||
"Delete using the iBooks app.\n"
|
"Delete using the iBooks app.\n"
|
||||||
"Click 'Show Details' for a list.")
|
"Click 'Show details' for a list.")
|
||||||
logger().info("%s.delete_books()" % self.__class__.__name__)
|
logger().info("%s.delete_books()" % self.__class__.__name__)
|
||||||
for path in paths:
|
for path in paths:
|
||||||
if self.cached_books[path]['lib_book']:
|
if self.cached_books[path]['lib_book']:
|
||||||
|
@ -248,7 +248,7 @@ def _config(): # {{{
|
|||||||
help=_('Limit max simultaneous jobs to number of CPUs'))
|
help=_('Limit max simultaneous jobs to number of CPUs'))
|
||||||
c.add_opt('gui_layout', choices=['wide', 'narrow'],
|
c.add_opt('gui_layout', choices=['wide', 'narrow'],
|
||||||
help=_('The layout of the user interface. Wide has the '
|
help=_('The layout of the user interface. Wide has the '
|
||||||
'book details panel on the right and narrow has '
|
'Book details panel on the right and narrow has '
|
||||||
'it at the bottom.'), default='wide')
|
'it at the bottom.'), default='wide')
|
||||||
c.add_opt('show_avg_rating', default=True,
|
c.add_opt('show_avg_rating', default=True,
|
||||||
help=_('Show the average rating per item indication in the Tag browser'))
|
help=_('Show the average rating per item indication in the Tag browser'))
|
||||||
|
@ -355,6 +355,7 @@ class DuplicatesQuestion(QDialog): # {{{
|
|||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
|
||||||
# Static session-long set of pairs of libraries that have had their custom columns
|
# Static session-long set of pairs of libraries that have had their custom columns
|
||||||
# checked for compatibility
|
# checked for compatibility
|
||||||
libraries_with_checked_columns = defaultdict(set)
|
libraries_with_checked_columns = defaultdict(set)
|
||||||
@ -527,8 +528,8 @@ class CopyToLibraryAction(InterfaceAction):
|
|||||||
books = '\n'.join(self.worker.auto_merged_ids.itervalues())
|
books = '\n'.join(self.worker.auto_merged_ids.itervalues())
|
||||||
info_dialog(self.gui, _('Auto merged'),
|
info_dialog(self.gui, _('Auto merged'),
|
||||||
_('Some books were automatically merged into existing '
|
_('Some books were automatically merged into existing '
|
||||||
'records in the target library. Click Show '
|
'records in the target library. Click "Show '
|
||||||
'details to see which ones. This behavior is '
|
'details" to see which ones. This behavior is '
|
||||||
'controlled by the Auto merge option in '
|
'controlled by the Auto merge option in '
|
||||||
'Preferences->Adding books.'), det_msg=books,
|
'Preferences->Adding books.'), det_msg=books,
|
||||||
show=True)
|
show=True)
|
||||||
|
@ -15,7 +15,7 @@ from calibre.gui2 import error_dialog
|
|||||||
class ShowBookDetailsAction(InterfaceAction):
|
class ShowBookDetailsAction(InterfaceAction):
|
||||||
|
|
||||||
name = 'Show Book Details'
|
name = 'Show Book Details'
|
||||||
action_spec = (_('Show book details'), 'dialog_information.png',
|
action_spec = (_('Show Book details'), 'dialog_information.png',
|
||||||
_('Show the detailed metadata for the current book in a separate window'), _('I'))
|
_('Show the detailed metadata for the current book in a separate window'), _('I'))
|
||||||
dont_add_to = frozenset(['context-menu-device'])
|
dont_add_to = frozenset(['context-menu-device'])
|
||||||
action_type = 'current'
|
action_type = 'current'
|
||||||
@ -48,4 +48,3 @@ class ShowBookDetailsAction(InterfaceAction):
|
|||||||
import sip
|
import sip
|
||||||
sip.delete(d)
|
sip.delete(d)
|
||||||
del d
|
del d
|
||||||
|
|
||||||
|
@ -421,7 +421,7 @@ class CoverView(QWidget): # {{{
|
|||||||
except:
|
except:
|
||||||
sz = QSize(0, 0)
|
sz = QSize(0, 0)
|
||||||
self.setToolTip(
|
self.setToolTip(
|
||||||
'<p>'+_('Double-click to open the book details window') +
|
'<p>'+_('Double-click to open the Book details window') +
|
||||||
'<br><br>' + _('Path') + ': ' + current_path +
|
'<br><br>' + _('Path') + ': ' + current_path +
|
||||||
'<br><br>' + _('Cover size: %(width)d x %(height)d')%dict(
|
'<br><br>' + _('Cover size: %(width)d x %(height)d')%dict(
|
||||||
width=sz.width(), height=sz.height())
|
width=sz.width(), height=sz.height())
|
||||||
|
@ -355,7 +355,7 @@ class EmailMixin(object): # {{{
|
|||||||
det_msg.extend('\t' + titles[bid] for bid in ids)
|
det_msg.extend('\t' + titles[bid] for bid in ids)
|
||||||
det_msg.append('\n')
|
det_msg.append('\n')
|
||||||
warning_dialog(self, _('Could not send'),
|
warning_dialog(self, _('Could not send'),
|
||||||
_('Could not send books to some recipients. Click Show Details for more information'),
|
_('Could not send books to some recipients. Click "Show details" for more information'),
|
||||||
det_msg='\n'.join(det_msg), show=True)
|
det_msg='\n'.join(det_msg), show=True)
|
||||||
|
|
||||||
def send_by_mail(self, to, fmts, delete_from_library, subject='', send_ids=None,
|
def send_by_mail(self, to, fmts, delete_from_library, subject='', send_ids=None,
|
||||||
|
@ -544,7 +544,7 @@ class IdentifyWidget(QWidget): # {{{
|
|||||||
'match your search. Try making the search <b>less '
|
'match your search. Try making the search <b>less '
|
||||||
'specific</b>. For example, use only the author\'s '
|
'specific</b>. For example, use only the author\'s '
|
||||||
'last name and a single distinctive word from '
|
'last name and a single distinctive word from '
|
||||||
'the title.<p>To see the full log, click Show Details.'),
|
'the title.<p>To see the full log, click "Show details".'),
|
||||||
show=True, det_msg=log)
|
show=True, det_msg=log)
|
||||||
self.rejected.emit()
|
self.rejected.emit()
|
||||||
return
|
return
|
||||||
|
@ -323,7 +323,7 @@ class CreateCustomColumn(QDialog):
|
|||||||
):
|
):
|
||||||
ct.addItem(text, k)
|
ct.addItem(text, k)
|
||||||
ct.setToolTip(_('Choose whether or not the column heading is shown in the Book\n'
|
ct.setToolTip(_('Choose whether or not the column heading is shown in the Book\n'
|
||||||
'Details panel and, if shown, where'))
|
'details panel and, if shown, where'))
|
||||||
self.comments_heading_position_label = add_row(_('Column heading'), ct)
|
self.comments_heading_position_label = add_row(_('Column heading'), ct)
|
||||||
|
|
||||||
self.comments_type = ct = QComboBox(self)
|
self.comments_type = ct = QComboBox(self)
|
||||||
@ -371,10 +371,10 @@ class CreateCustomColumn(QDialog):
|
|||||||
self.composite_make_category = cmc = QCheckBox(_("Show in Tag browser"))
|
self.composite_make_category = cmc = QCheckBox(_("Show in Tag browser"))
|
||||||
cmc.setToolTip(_("If checked, this column will appear in the Tag browser as a category"))
|
cmc.setToolTip(_("If checked, this column will appear in the Tag browser as a category"))
|
||||||
l.addWidget(cmc)
|
l.addWidget(cmc)
|
||||||
self.composite_contains_html = cch = QCheckBox(_("Show as HTML in book details"))
|
self.composite_contains_html = cch = QCheckBox(_("Show as HTML in Book details"))
|
||||||
cch.setToolTip('<p>' +
|
cch.setToolTip('<p>' +
|
||||||
_('If checked, this column will be displayed as HTML in '
|
_('If checked, this column will be displayed as HTML in '
|
||||||
'book details and the Content server. This can be used to '
|
'Book details and the Content server. This can be used to '
|
||||||
'construct links with the template language. For example, '
|
'construct links with the template language. For example, '
|
||||||
'the template '
|
'the template '
|
||||||
'<pre><big><b>{title}</b></big>'
|
'<pre><big><b>{title}</b></big>'
|
||||||
|
@ -64,7 +64,7 @@ class IdLinksRuleEdit(Dialog):
|
|||||||
self.key = k = QLineEdit(self)
|
self.key = k = QLineEdit(self)
|
||||||
l.addRow(_('&Key:'), k)
|
l.addRow(_('&Key:'), k)
|
||||||
l.addRow(QLabel(_(
|
l.addRow(QLabel(_(
|
||||||
'The name that will appear in the book details panel')))
|
'The name that will appear in the Book details panel')))
|
||||||
self.nw = n = QLineEdit(self)
|
self.nw = n = QLineEdit(self)
|
||||||
l.addRow(_('&Name:'), n)
|
l.addRow(_('&Name:'), n)
|
||||||
la = QLabel(_(
|
la = QLabel(_(
|
||||||
|
@ -734,7 +734,7 @@ A value of zero means calculate automatically.</string>
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="opt_bd_show_cover">
|
<widget class="QCheckBox" name="opt_bd_show_cover">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Show &cover in the book details panel</string>
|
<string>Show &cover in the Book details panel</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -42,9 +42,9 @@ class TagBrowserMixin(object): # {{{
|
|||||||
self.do_tags_list_edit, (None, 'publisher'), 'publisher'),
|
self.do_tags_list_edit, (None, 'publisher'), 'publisher'),
|
||||||
(_('Manage Tags'),
|
(_('Manage Tags'),
|
||||||
self.do_tags_list_edit, (None, 'tags'), 'tags'),
|
self.do_tags_list_edit, (None, 'tags'), 'tags'),
|
||||||
(_('Manage User Categories'),
|
(_('Manage User categories'),
|
||||||
self.do_edit_user_categories, (None,), 'user:'),
|
self.do_edit_user_categories, (None,), 'user:'),
|
||||||
(_('Manage Saved Searches'),
|
(_('Manage Saved searches'),
|
||||||
self.do_saved_search_edit, (None,), 'search')
|
self.do_saved_search_edit, (None,), 'search')
|
||||||
):
|
):
|
||||||
m.addAction(QIcon(I(category_icon_map[cat_name])), text,
|
m.addAction(QIcon(I(category_icon_map[cat_name])), text,
|
||||||
|
@ -316,7 +316,7 @@ class Boss(QObject):
|
|||||||
' Do an EPUB to EPUB conversion before trying to edit this book.'), show=True)
|
' Do an EPUB to EPUB conversion before trying to edit this book.'), show=True)
|
||||||
|
|
||||||
return error_dialog(self.gui, _('Failed to open book'),
|
return error_dialog(self.gui, _('Failed to open book'),
|
||||||
_('Failed to open book, click Show details for more information.'),
|
_('Failed to open book, click "Show details" for more information.'),
|
||||||
det_msg=job.traceback, show=True)
|
det_msg=job.traceback, show=True)
|
||||||
if cn:
|
if cn:
|
||||||
self.save_manager.clear_notify_data()
|
self.save_manager.clear_notify_data()
|
||||||
@ -1141,9 +1141,9 @@ class Boss(QObject):
|
|||||||
self.abort_terminal_save()
|
self.abort_terminal_save()
|
||||||
self.set_modified()
|
self.set_modified()
|
||||||
error_dialog(self.gui, _('Could not save'),
|
error_dialog(self.gui, _('Could not save'),
|
||||||
_('Saving of the book failed. Click "Show Details"'
|
_('Saving of the book failed. Click "Show details"'
|
||||||
' for more information. You can try to save a copy'
|
' for more information. You can try to save a copy'
|
||||||
' to a different location, via File->Save a Copy'), det_msg=tb, show=True)
|
' to a different location, via File->Save a copy'), det_msg=tb, show=True)
|
||||||
|
|
||||||
def go_to_line_number(self):
|
def go_to_line_number(self):
|
||||||
ed = self.gui.central.current_editor
|
ed = self.gui.central.current_editor
|
||||||
|
Loading…
x
Reference in New Issue
Block a user