From ef19c51c5acf42113b7080606d7fd3f2831366a3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 27 Mar 2020 13:59:10 +0530 Subject: [PATCH] String changes --- Changelog.yaml | 2 +- manual/gui.rst | 20 +++++----- manual/server.rst | 2 +- manual/sub_groups.rst | 2 +- manual/virtual_libraries.rst | 40 ++++++++++---------- src/calibre/db/cli/cmd_clone.py | 2 +- src/calibre/db/search.py | 2 +- src/calibre/gui2/dialogs/match_books.py | 2 +- src/calibre/gui2/dialogs/tag_categories.py | 1 + src/calibre/gui2/dialogs/tag_categories.ui | 13 ++++--- src/calibre/gui2/dialogs/tag_list_editor.ui | 4 +- src/calibre/gui2/init.py | 10 ++--- src/calibre/gui2/preferences/behavior.ui | 2 +- src/calibre/gui2/preferences/look_feel.ui | 6 +-- src/calibre/gui2/search_restriction_mixin.py | 10 ++--- src/calibre/gui2/tag_browser/ui.py | 2 +- src/calibre/gui2/tag_browser/view.py | 4 +- src/calibre/gui2/ui.py | 2 +- src/calibre/utils/formatter_functions.py | 2 +- src/pyj/book_list/search.pyj | 4 +- 20 files changed, 67 insertions(+), 65 deletions(-) diff --git a/Changelog.yaml b/Changelog.yaml index 429555ae19..666177990c 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -460,7 +460,7 @@ - title: "Viewer: improve appearance of controls on small screens." tickets: [1851921] - - title: "Move close button in viewer preferences to left to match the rest of the content server UI." + - title: "Move close button in viewer preferences to left to match the rest of the Content server UI." tickets: [1851937] - title: "Viewer: Fix restoring user stylesheet to default not being applied until a viewer restart" diff --git a/manual/gui.rst b/manual/gui.rst index 01e595abf5..c4765a8978 100644 --- a/manual/gui.rst +++ b/manual/gui.rst @@ -400,11 +400,11 @@ The special field ``search`` is used for saved searches. So if you save a search "My spouse's books" you can enter ``search:"My spouse's books"`` in the Search bar to reuse the saved search. More about saving searches below. -The special field ``vl`` is used to search for books in a virtual library. For -example, ``vl:Read`` will find all the books in the *Read* virtual library. The search +The special field ``vl`` is used to search for books in a Virtual library. For +example, ``vl:Read`` will find all the books in the *Read* Virtual library. The search ``vl:Read and vl:"Science Fiction"`` will find all the books that are in both the *Read* and -*Science Fiction* virtual libraries. The value following ``vl:`` must be the name of a -virtual library. If the virtual library name contains spaces then surround it with quotes. +*Science Fiction* Virtual libraries. The value following ``vl:`` must be the name of a +Virtual library. If the Virtual library name contains spaces then surround it with quotes. You can search for the absence or presence of a field using the special "true" and "false" values. For example:: @@ -456,7 +456,7 @@ Virtual libraries A :guilabel:`Virtual library` is a way to pretend that your calibre library has only a few books instead of its full collection. This is an excellent way to partition your large collection of books into smaller, manageable chunks. To -learn how to create and use virtual libraries, see the tutorial: +learn how to create and use Virtual libraries, see the tutorial: :ref:`virtual_libraries`. .. _config_filename_metadata: @@ -618,7 +618,7 @@ You can see if a column can be Quickview'ed by hovering your mouse over the colu Options (in :guilabel:`Preferences->Look & feel->Quickview`): - * Respect (or not) the current virtual library. If checked then Quickview shows only books in the current virtual library. Default: respect virtual libraries + * Respect (or not) the current Virtual library. If checked then Quickview shows only books in the current Virtual library. Default: respect Virtual libraries * Change the Quickview window contents when the column is changed on the book list using the cursor keys. Default: don't follow changes made with cursor keys * Change the column being "quickview'ed" when a cell in the Quickview window is double-clicked. Otherwise the book is changed but the column being examined is not. Default: change the column * Change the column being "quickview'ed" to the current column when the return key is pressed in the Quickview panel. Otherwise the book is changed but the column being examined is not. Default: change the column @@ -719,15 +719,15 @@ calibre has several keyboard shortcuts to save you time and mouse movement. Thes * - :kbd:`Shift+Esc` - Focus the book list * - :kbd:`Ctrl+Esc` - - Clear the virtual library + - Clear the Virtual library * - :kbd:`Alt+Esc` - Clear the additional restriction * - :kbd:`Ctrl+*` - - Create a temporary virtual library based on the current search + - Create a temporary Virtual library based on the current search * - :kbd:`Ctrl+Right` - - Select the next virtual library tab + - Select the next Virtual library tab * - :kbd:`Ctrl+Left` - - Select the previous virtual library tab + - Select the previous Virtual library tab * - :kbd:`N or F3` - Find the next book that matches the current search (only works if search highlighting is turned on in search preferences) * - :kbd:`Shift+N or Shift+F3` diff --git a/manual/server.rst b/manual/server.rst index af9cd262ff..3f65fbb87e 100644 --- a/manual/server.rst +++ b/manual/server.rst @@ -172,7 +172,7 @@ you can using the Tag browser in the main program. A much loved feature of the main program, :guilabel:`Virtual libraries` is present in the server interface as well. Click the three vertical dots in the -top right corner to choose a virtual library. +top right corner to choose a Virtual library. The book reader ^^^^^^^^^^^^^^^^ diff --git a/manual/sub_groups.rst b/manual/sub_groups.rst index d318c37150..15edad7edc 100644 --- a/manual/sub_groups.rst +++ b/manual/sub_groups.rst @@ -98,7 +98,7 @@ The Tag browser search mechanism knows if an item has children. If it does, clic Restrictions --------------- -If you search for a genre then create a saved search for it, you can use the 'restrict to' box to create a Virtual library of books with that genre. This is useful if you want to do other searches within the genre or to manage/update metadata for books in the genre. Continuing our example, you can create a Saved search named 'History.Japanese' by first clicking on the genre Japanese in the Tag browser to get a search into the search box, entering History.Japanese into the saved search box, then pushing the "save search" button (the green box with the white plus, on the right-hand side). +If you search for a genre then create a saved search for it, you can use the 'restrict to' box to create a Virtual library of books with that genre. This is useful if you want to do other searches within the genre or to manage/update metadata for books in the genre. Continuing our example, you can create a Saved search named 'History.Japanese' by first clicking on the genre Japanese in the Tag browser to get a search into the search field, entering History.Japanese into the saved search field, then pushing the "save search" button (the green box with the white plus, on the right-hand side). .. image:: images/sg_restrict.jpg :align: center diff --git a/manual/virtual_libraries.rst b/manual/virtual_libraries.rst index 8f471dd446..25554229ef 100644 --- a/manual/virtual_libraries.rst +++ b/manual/virtual_libraries.rst @@ -4,20 +4,20 @@ Virtual libraries ============================ -In calibre, a virtual library is a way to tell calibre to open only a subset of a +In calibre, a Virtual library is a way to tell calibre to open only a subset of a normal library. For example, you might want to only work with books by a certain -author, or books having only a certain tag. Using virtual libraries is the +author, or books having only a certain tag. Using Virtual libraries is the preferred way of partitioning your large book collection into smaller sub collections. It is superior to splitting up your library into multiple smaller libraries as, when you want to search through your entire collection, you can simply go back to the full library. There is no way to search through multiple separate libraries simultaneously in calibre. -A virtual library is different from a simple search. A search will only restrict -the list of books shown in the book list. A virtual library does that, and in +A Virtual library is different from a simple search. A search will only restrict +the list of books shown in the book list. A Virtual library does that, and in addition it also restricts the entries shown in the :guilabel:`Tag browser` to the left. The Tag browser will only show tags, authors, series, publishers, etc. -that come from the books in the virtual library. A virtual library thus behaves +that come from the books in the Virtual library. A Virtual library thus behaves as though the actual library contains only the restricted set of books. Creating Virtual libraries @@ -26,9 +26,9 @@ Creating Virtual libraries .. |vlb| image:: images/virtual_library_button.png :class: float-left-img -|vlb| To use a virtual library click the :guilabel:`Virtual library` button located +|vlb| To use a Virtual library click the :guilabel:`Virtual library` button located to the left of the Search bar and select the :guilabel:`Create Virtual library` -option. As a first example, let's create a virtual library that shows us only +option. As a first example, let's create a Virtual library that shows us only the books by a particular author. Click the :guilabel:`Authors` link as shown in the image below and choose the author you want to use and click OK. @@ -77,40 +77,40 @@ Examples of useful Virtual libraries Working with Virtual libraries ------------------------------------- -You can edit a previously created virtual library or remove it, by clicking the +You can edit a previously created Virtual library or remove it, by clicking the :guilabel:`Virtual library` and choosing the appropriate action. -You can tell calibre that you always want to apply a particular virtual library +You can tell calibre that you always want to apply a particular Virtual library when the current library is opened, by going to :guilabel:`Preferences->Interface->Behavior`. -You can quickly use the current search as a temporary virtual library by +You can quickly use the current search as a temporary Virtual library by clicking the :guilabel:`Virtual library` button and choosing the :guilabel:`*current search` entry. -You can display all available virtual libraries as tabs above the book list. -This is particularly handy if you like switching between virtual libraries very +You can display all available Virtual libraries as tabs above the book list. +This is particularly handy if you like switching between Virtual libraries very often. Click the :guilabel:`Virtual library` button and select :guilabel:`Show -virtual libraries as tabs`. You can re-arrange the tabs by drag and drop and +Virtual libraries as tabs`. You can re-arrange the tabs by drag and drop and close ones you do not want to see. Closed tabs can be restored by right-clicking on the tab bar. Using Virtual libraries in searches ------------------------------------- -You can search for books that are in a virtual library using the ``vl:`` prefix. For -example, ``vl:Read`` will find all the books in the *Read* virtual library. The search +You can search for books that are in a Virtual library using the ``vl:`` prefix. For +example, ``vl:Read`` will find all the books in the *Read* Virtual library. The search ``vl:Read and vl:"Science Fiction"`` will find all the books that are in both the *Read* and -*Science Fiction* virtual libraries. +*Science Fiction* Virtual libraries. -The value following ``vl:`` must be the name of a virtual library. If the virtual library name +The value following ``vl:`` must be the name of a Virtual library. If the Virtual library name contains spaces then surround it with quotes. -One use for a virtual library search is in the content server. In +One use for a Virtual library search is in the content server. In :guilabel:`Preferences->Sharing over the net->Require username/password` you can limit the calibre libraries visible to a user. For each visible library you can specify a search expression to further limit which books are seen. Use -``vl:"Virtual library name"`` to limit the books to those in a virtual library. +``vl:"Virtual library name"`` to limit the books to those in a Virtual library. Using additional restrictions ------------------------------- @@ -118,7 +118,7 @@ Using additional restrictions You can further restrict the books shown in a Virtual library by using :guilabel:`Additional restrictions`. An additional restriction is saved search you previously created that can be applied to the current Virtual library to -further restrict the books shown in a virtual library. For example, say you +further restrict the books shown in a Virtual library. For example, say you have a Virtual library for books tagged as :guilabel:`Historical Fiction` and a saved search that shows you unread books, you can click the :guilabel:`Virtual Library` button and choose the :guilabel:`Additional restriction` option to diff --git a/src/calibre/db/cli/cmd_clone.py b/src/calibre/db/cli/cmd_clone.py index 8dcf78bc68..a481afd499 100644 --- a/src/calibre/db/cli/cmd_clone.py +++ b/src/calibre/db/cli/cmd_clone.py @@ -25,7 +25,7 @@ def option_parser(get_parser, args): %prog clone path/to/new/library Create a clone of the current library. This creates a new, empty library that has all the -same custom columns, virtual libraries and other settings as the current library. +same custom columns, Virtual libraries and other settings as the current library. The cloned library will contain no books. If you want to create a full duplicate, including all books, then simply use your filesystem tools to copy the library folder. diff --git a/src/calibre/db/search.py b/src/calibre/db/search.py index 9f47eb4518..7243f33771 100644 --- a/src/calibre/db/search.py +++ b/src/calibre/db/search.py @@ -505,7 +505,7 @@ class Parser(SearchQueryParser): # {{{ if location == 'vl': vl = self.dbcache._pref('virtual_libraries', {}).get(query) if query else None if not vl: - raise ParseException(_('No such virtual library: {}').format(query)) + raise ParseException(_('No such Virtual library: {}').format(query)) try: return candidates & self.dbcache.books_in_virtual_library(query) except RuntimeError: diff --git a/src/calibre/gui2/dialogs/match_books.py b/src/calibre/gui2/dialogs/match_books.py index 184aa18c78..d607690569 100644 --- a/src/calibre/gui2/dialogs/match_books.py +++ b/src/calibre/gui2/dialogs/match_books.py @@ -129,7 +129,7 @@ class MatchBooks(QDialog, Ui_MatchBooks): query = unicode_type(self.search_text.text()) if not query: d = error_dialog(self.gui, _('Match books'), - _('You must enter a search expression into the search box')) + _('You must enter a search expression into the search field')) d.exec_() return try: diff --git a/src/calibre/gui2/dialogs/tag_categories.py b/src/calibre/gui2/dialogs/tag_categories.py index 6436626713..d3d13ee08f 100644 --- a/src/calibre/gui2/dialogs/tag_categories.py +++ b/src/calibre/gui2/dialogs/tag_categories.py @@ -44,6 +44,7 @@ class TagCategories(QDialog, Ui_TagCategories): QDialog.__init__(self, window) Ui_TagCategories.__init__(self) self.setupUi(self) + self.blank.setText('\xa0') # I can't figure out how to get these into the .ui file self.gridLayout_2.setColumnMinimumWidth(0, 50) diff --git a/src/calibre/gui2/dialogs/tag_categories.ui b/src/calibre/gui2/dialogs/tag_categories.ui index 7274a9bf88..d3d9bd5a93 100644 --- a/src/calibre/gui2/dialogs/tag_categories.ui +++ b/src/calibre/gui2/dialogs/tag_categories.ui @@ -9,7 +9,8 @@ 628 482 - + + User categories editor @@ -148,26 +149,26 @@ <p>Show items in the Available items box only if they appear in the - current virtual library. Applied items not in the VL will be marked + current Virtual library. Applied items not in the VL will be marked "not on any book".</p> - &Show only available items in current virtual library + &Show only available items in current Virtual library - + - - + + diff --git a/src/calibre/gui2/dialogs/tag_list_editor.ui b/src/calibre/gui2/dialogs/tag_list_editor.ui index cc65a3d339..f595fca601 100644 --- a/src/calibre/gui2/dialogs/tag_list_editor.ui +++ b/src/calibre/gui2/dialogs/tag_list_editor.ui @@ -66,11 +66,11 @@ <p>Show items in the Available items box only if they appear in the - current virtual library. Applied items not in the VL will be marked + current Virtual library. Applied items not in the VL will be marked "not on any book".</p> - &Show only available items in current virtual library + &Show only available items in current Virtual library diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index 4e7bbcba45..abd348f5c9 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -412,12 +412,12 @@ class VLTabs(QTabBar): # {{{ self.previous_action = a = QAction(self) a.triggered.connect(partial(self.next_tab, delta=-1)), self.gui.addAction(a) self.gui.keyboard.register_shortcut( - 'virtual-library-tab-bar-next', _('Next virtual library'), action=self.next_action, + 'virtual-library-tab-bar-next', _('Next Virtual library'), action=self.next_action, default_keys=('Ctrl+Right',), description=_('Switch to the next Virtual library in the Virtual library tab bar') ) self.gui.keyboard.register_shortcut( - 'virtual-library-tab-bar-previous', _('Previous virtual library'), action=self.previous_action, + 'virtual-library-tab-bar-previous', _('Previous Virtual library'), action=self.previous_action, default_keys=('Ctrl+Left',), description=_('Switch to the previous Virtual library in the Virtual library tab bar') ) @@ -501,7 +501,7 @@ class VLTabs(QTabBar): # {{{ self.addTab(vl.replace('&', '&&') or _('All books')) sexp = vl_map.get(vl, None) if sexp is not None: - self.setTabToolTip(i, _('Search expression for this virtual library:') + '\n\n' + sexp) + self.setTabToolTip(i, _('Search expression for this Virtual library:') + '\n\n' + sexp) self.setTabData(i, vl) if vl == current_lib: current_idx = i @@ -533,9 +533,9 @@ class VLTabs(QTabBar): # {{{ s.addAction(x, partial(self.restore, x)) m.addAction(_('Hide Virtual library tabs'), self.disable_bar) if gprefs['vl_tabs_closable']: - m.addAction(_('Lock virtual library tabs'), self.lock_tab) + m.addAction(_('Lock Virtual library tabs'), self.lock_tab) else: - m.addAction(_('Unlock virtual library tabs'), self.unlock_tab) + m.addAction(_('Unlock Virtual library tabs'), self.unlock_tab) i = self.tabAt(ev.pos()) if i > -1: vl = unicode_type(self.tabData(i) or '') diff --git a/src/calibre/gui2/preferences/behavior.ui b/src/calibre/gui2/preferences/behavior.ui index d700aa33c9..1f26ec11ad 100644 --- a/src/calibre/gui2/preferences/behavior.ui +++ b/src/calibre/gui2/preferences/behavior.ui @@ -252,7 +252,7 @@ If not checked, the values can be Yes or No. - Use this virtual library on calibre startup if the current library is being used. Also applied when switching to this library. Note that this setting is per library. + Use this Virtual library on calibre startup if the current library is being used. Also applied when switching to this library. Note that this setting is per library. QComboBox::AdjustToMinimumContentsLengthWithIcon diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui index 15503112bf..d24fe1198f 100644 --- a/src/calibre/gui2/preferences/look_feel.ui +++ b/src/calibre/gui2/preferences/look_feel.ui @@ -987,7 +987,7 @@ then the tags will be displayed each on their own line. When checked, calibre will automatically hide any category (a column, custom or standard) that has no items to show. For example, some - categories might not have values when using virtual libraries. Checking this + categories might not have values when using Virtual libraries. Checking this box will cause these empty categories to be hidden. @@ -1213,11 +1213,11 @@ them to all have the same width and height Check this box to make Quickview show books only in the -current virtual library. If unchecked, Quickview ignores virtual libraries. If +current Virtual library. If unchecked, Quickview ignores Virtual libraries. If unchecked then only row changes are taken into account. - &Apply virtual libraries in Quickview panel + &Apply Virtual libraries in Quickview panel diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index f73afb5b13..87ec193ce5 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -337,7 +337,7 @@ class SearchRestrictionMixin(object): self.clear_vl.clicked.connect(lambda x: (self.apply_virtual_library(), self.clear_additional_restriction())) self.virtual_library_tooltip = \ - _('Use a "virtual library" to show only a subset of the books present in this library') + _('Use a "Virtual library" to show only a subset of the books present in this library') self.virtual_library.setToolTip(self.virtual_library_tooltip) self.search_restriction = ComboBoxWithHelp(self) @@ -384,9 +384,9 @@ class SearchRestrictionMixin(object): if add_tabs_action: if gprefs['show_vl_tabs']: - m.addAction(_('Hide virtual library tabs'), self.vl_tabs.disable_bar) + m.addAction(_('Hide Virtual library tabs'), self.vl_tabs.disable_bar) else: - m.addAction(_('Show virtual libraries as tabs'), self.vl_tabs.enable_bar) + m.addAction(_('Show Virtual libraries as tabs'), self.vl_tabs.enable_bar) m.addSeparator() @@ -493,7 +493,7 @@ class SearchRestrictionMixin(object): def remove_vl_triggered(self, name=None): if not confirm( - _('Are you sure you want to remove the virtual library {0}?').format(name), + _('Are you sure you want to remove the Virtual library {0}?').format(name), 'confirm_vl_removal', parent=self): return self._remove_vl(name, reapply=True) @@ -503,7 +503,7 @@ class SearchRestrictionMixin(object): db = self.library_view.model().db virt_libs = db.prefs.get('virtual_libraries', {}) if not virt_libs: - return error_dialog(self, _('No virtual libraries'), _( + return error_dialog(self, _('No Virtual libraries'), _( 'No Virtual libraries present, create some first'), show=True) example = '
{0}S{1}ome {0}B{1}ook {0}C{1}ollection
'.format( '' % emphasis_style(), '') diff --git a/src/calibre/gui2/tag_browser/ui.py b/src/calibre/gui2/tag_browser/ui.py index 33cc4d9a55..f86e2fb83d 100644 --- a/src/calibre/gui2/tag_browser/ui.py +++ b/src/calibre/gui2/tag_browser/ui.py @@ -281,7 +281,7 @@ class TagBrowserMixin(object): # {{{ Delete an item from some category. ''' if restrict_to_book_ids: - msg = _('%s will be deleted from books in the virtual library. Are you sure?')%orig_name + msg = _('%s will be deleted from books in the Virtual library. Are you sure?')%orig_name else: msg = _('%s will be deleted from all books. Are you sure?')%orig_name if not question_dialog(self.tags_view, diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index f125a25c5a..1b131bfc97 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -536,7 +536,7 @@ class TagsView(QTreeView): # {{{ # Add the 'rename' items if self.model().get_in_vl(): self.context_menu.addAction(self.rename_icon, - _('Rename %s in virtual library')%display_name(tag), + _('Rename %s in Virtual library')%display_name(tag), partial(self.context_menu_handler, action='edit_item_in_vl', index=index)) self.context_menu.addAction(self.rename_icon, @@ -547,7 +547,7 @@ class TagsView(QTreeView): # {{{ self._model.db.field_metadata.is_custom_field(key): if self.model().get_in_vl(): self.context_menu.addAction(self.delete_icon, - _('Delete %s in virtual library')%display_name(tag), + _('Delete %s in Virtual library')%display_name(tag), partial(self.context_menu_handler, action='delete_item_in_vl', key=key, index=tag)) diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index a217adcf1a..33aa691b82 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -318,7 +318,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ self.ctrl_esc_action = QAction(self) self.addAction(self.ctrl_esc_action) self.keyboard.register_shortcut('clear virtual library', - _('Clear the virtual library'), default_keys=('Ctrl+Esc',), + _('Clear the Virtual library'), default_keys=('Ctrl+Esc',), action=self.ctrl_esc_action) self.ctrl_esc_action.triggered.connect(self.ctrl_esc) diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index ccf96b1015..f9add7a6a4 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -1507,7 +1507,7 @@ class BuiltinVirtualLibraries(BuiltinFormatterFunction): arg_count = 0 category = 'Get values from metadata' __doc__ = doc = _('virtual_libraries() -- return a comma-separated list of ' - 'virtual libraries that contain this book. This function ' + 'Virtual libraries that contain this book. This function ' 'works only in the GUI. If you want to use these values ' 'in save-to-disk or send-to-device templates then you ' 'must make a custom "Column built from other columns", use ' diff --git a/src/pyj/book_list/search.pyj b/src/pyj/book_list/search.pyj index 45a23283f8..75e691b3c6 100644 --- a/src/pyj/book_list/search.pyj +++ b/src/pyj/book_list/search.pyj @@ -239,7 +239,7 @@ def menu_clicked(i): container.appendChild(title) container.appendChild(E.div( style='margin-top:1ex; margin-bottom: 1ex', - _('Search for books based on this category (a search term will be added to the search box)') + _('Search for books based on this category (a search term will be added to the search field)') )) ul = E.ul(style='list-style:none; overflow:hidden', class_='tb-action-list') @@ -502,7 +502,7 @@ def get_prefs(): 'to_storage': def(x): return 'yes' if x else 'no';, 'tooltip':_('When checked, calibre will automatically hide any category' ' (a column, custom or standard) that has no items to show. For example, some' - ' categories might not have values when using virtual libraries. Checking this' + ' categories might not have values when using Virtual libraries. Checking this' ' box will cause these empty categories to be hidden.'), },