mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
String changes
This commit is contained in:
parent
a43d44c6af
commit
da8b7d94e0
@ -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.
|
||||
|
||||
The outer-level items in the 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 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.
|
||||
|
||||
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.
|
||||
@ -561,9 +561,9 @@ Cover grid
|
||||
|
||||
You can have calibre display a grid of book covers instead of a list of books, if
|
||||
you prefer to browse your collection by covers instead. The :guilabel:`Cover
|
||||
Grid` is activated by clicking the grid button in the bottom right corner of
|
||||
grid` is activated by clicking the grid button in the bottom right corner of
|
||||
the main calibre window. You can customize the cover sizes and the background of
|
||||
the cover grid via :guilabel:`Preferences->Look & feel->Cover grid`. You can
|
||||
the :guilabel:`Cover grid` via :guilabel:`Preferences->Look & feel->Cover grid`. You can
|
||||
even have calibre display any specified field under the covers, such as title or
|
||||
authors or rating or a custom column of your own devising.
|
||||
|
||||
@ -573,11 +573,11 @@ Cover browser
|
||||
.. image:: images/cover_browser.png
|
||||
:align: center
|
||||
|
||||
In addition to the cover grid described above, you can also have calibre display
|
||||
In addition to the :guilabel:`Cover grid` described above, you can also have calibre display
|
||||
covers in the single row. This is activated via a button in the lower right
|
||||
corner of the main window. In :guilabel:`Preferences->Look & feel->Cover
|
||||
browser` you can change the number of covers displayed, and even have the cover
|
||||
browser display itself in a separate popup window.
|
||||
browser` you can change the number of covers displayed, and even have the
|
||||
:guilabel:`Cover browser` display itself in a separate popup window.
|
||||
|
||||
Quickview
|
||||
----------
|
||||
|
@ -21,7 +21,7 @@ The commonly-provided requirements for subgroups such as genres are:
|
||||
* A book can be in multiple subgroups (genres). This distinguishes subgroups from physical file folders.
|
||||
* Subgroups (genres) must form a hierarchy; subgroups can contain subgroups.
|
||||
|
||||
Tags give you the first two. If you tag a book with the genre then you can use the tag browser (or search) for find the books with that genre, giving you the first. Many books can have the same tag(s), giving you the second. The problem is that tags don't satisfy the third requirement. They don't provide a hierarchy.
|
||||
Tags give you the first two. If you tag a book with the genre then you can use the Tag browser (or search) for find the books with that genre, giving you the first. Many books can have the same tag(s), giving you the second. The problem is that tags don't satisfy the third requirement. They don't provide a hierarchy.
|
||||
|
||||
|sgtree| The calibre hierarchy feature gives you the third -- the ability to see the genres in a 'tree' and the ability to easily search for books in genre or sub-genre. For example, assume that your genre structure is similar to the following::
|
||||
|
||||
@ -42,7 +42,7 @@ Tags give you the first two. If you tag a book with the genre then you can use t
|
||||
.. Horror
|
||||
etc.
|
||||
|
||||
By using the hierarchy feature, you can see these genres in the tag browser in tree form, as shown in the screen image. In this example the outermost level (Genre) is a custom column that contains the genres. Genres containing sub-genres appear with a small triangle next to them. Clicking on that triangle will open the item and show the sub-genres, as you can see with History and Science Fiction.
|
||||
By using the hierarchy feature, you can see these genres in the Tag browser in tree form, as shown in the screen image. In this example the outermost level (Genre) is a custom column that contains the genres. Genres containing sub-genres appear with a small triangle next to them. Clicking on that triangle will open the item and show the sub-genres, as you can see with History and Science Fiction.
|
||||
|
||||
Clicking on a genre can search for all books with that genre or children of that genre. For example, clicking on Science Fiction can give all three of the child genres, Alternate History, Military, and Space Opera. Clicking on Alternate History will give books in that genre, ignoring those in Military and Space Opera. Of course, a book can have multiple genres. If a book has both Space Opera and Military genres, then you will see that book if you click on either genre. Searching is discussed in more detail below.
|
||||
|
||||
@ -55,7 +55,7 @@ Setup
|
||||
|
||||
By now, your question might be "How was all of this setup?" There are three steps: 1) create the custom column, 2) tell calibre that the new column is to be treated as a hierarchy, and 3) add genres.
|
||||
|
||||
You create the custom column in the usual way, using Preferences -> Add your own columns. This example uses "#genre" as the lookup name and "Genre" as the column heading. The column type is "Comma-separated text, like tags, shown in the tag browser."
|
||||
You create the custom column in the usual way, using Preferences -> Add your own columns. This example uses "#genre" as the lookup name and "Genre" as the column heading. The column type is "Comma-separated text, like tags, shown in the Tag browser."
|
||||
|
||||
.. image:: images/sg_cc.jpg
|
||||
:align: center
|
||||
@ -72,7 +72,7 @@ A hierarchy of 'things' is built by creating an item consisting of phrases separ
|
||||
.. image:: images/sg_genre.jpg
|
||||
:align: center
|
||||
|
||||
After doing the above, you see in the tag browser:
|
||||
After doing the above, you see in the Tag browser:
|
||||
|
||||
.. image:: images/sg_tb.jpg
|
||||
:align: center
|
||||
@ -85,14 +85,14 @@ Searching
|
||||
.. image:: images/sg_search.jpg
|
||||
:align: center
|
||||
|
||||
The easiest way to search for genres is using the tag browser, clicking on the genre you wish to see. Clicking on a genre with children will show you books with that genre and all child genres. However, this might bring up a question. Just because a genre has children doesn't mean that it isn't a genre in its own right. For example, a book can have the genre "History" but not "History.Military". How do you search for books with only "History"?
|
||||
The easiest way to search for genres is using the Tag browser, clicking on the genre you wish to see. Clicking on a genre with children will show you books with that genre and all child genres. However, this might bring up a question. Just because a genre has children doesn't mean that it isn't a genre in its own right. For example, a book can have the genre "History" but not "History.Military". How do you search for books with only "History"?
|
||||
|
||||
The tag browser search mechanism knows if an item has children. If it does, clicking on the item cycles through 5 searches instead of the normal three. The first is the normal green plus, which shows you books with that genre only (e.g., History). The second is a doubled plus (shown above), which shows you books with that genre and all sub-genres (e.g., History and History.Military). The third is the normal red minus, which shows you books without that exact genre. The fourth is a doubled minus, which shows you books without that genre or sub-genres. The fifth is back to the beginning, no mark, meaning no search.
|
||||
The Tag browser search mechanism knows if an item has children. If it does, clicking on the item cycles through 5 searches instead of the normal three. The first is the normal green plus, which shows you books with that genre only (e.g., History). The second is a doubled plus (shown above), which shows you books with that genre and all sub-genres (e.g., History and History.Military). The third is the normal red minus, which shows you books without that exact genre. The fourth is a doubled minus, which shows you books without that genre or sub-genres. The fifth is back to the beginning, no mark, meaning no search.
|
||||
|
||||
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 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).
|
||||
|
||||
.. image:: images/sg_restrict.jpg
|
||||
:align: center
|
||||
|
@ -120,9 +120,9 @@ categories_collapsed_name_template = r'{first.sort:shorten(4,,0)} - {last.sort:s
|
||||
categories_collapsed_rating_template = r'{first.avg_rating:4.2f:ifempty(0)} - {last.avg_rating:4.2f:ifempty(0)}'
|
||||
categories_collapsed_popularity_template = r'{first.count:d} - {last.count:d}'
|
||||
|
||||
#: Control order of categories in the tag browser
|
||||
#: Control order of categories in the Tag browser
|
||||
# Change the following dict to change the order that categories are displayed in
|
||||
# the tag browser. Items are named using their lookup name, and will be sorted
|
||||
# the Tag browser. Items are named using their lookup name, and will be sorted
|
||||
# using the number supplied. The lookup name '*' stands for all names that
|
||||
# otherwise do not appear. Two names with the same value will be sorted
|
||||
# using the default order; the one used when the dict is empty.
|
||||
|
@ -251,7 +251,7 @@ def _config(): # {{{
|
||||
'book details panel on the right and narrow has '
|
||||
'it at the bottom.'), default='wide')
|
||||
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'))
|
||||
c.add_opt('disable_animations', default=False,
|
||||
help=_('Disable UI animations'))
|
||||
|
||||
|
@ -298,7 +298,7 @@ class RuleEditor(QDialog): # {{{
|
||||
rule_text = _('column icon')
|
||||
elif pref_name == 'cover_grid_icon_rules':
|
||||
self.rule_kind = 'emblem'
|
||||
rule_text = _('cover grid emblem')
|
||||
rule_text = _('Cover grid emblem')
|
||||
|
||||
self.setWindowIcon(QIcon(I('format-fill-color.png')))
|
||||
self.setWindowTitle(_('Create/edit a {0} rule').format(rule_text))
|
||||
@ -957,7 +957,7 @@ class EditRules(QWidget): # {{{
|
||||
' double clicking it.')
|
||||
elif pref_name == 'cover_grid_icon_rules':
|
||||
text = _('You can add emblems (small icons) that are displayed on the side of covers'
|
||||
' in the cover grid by creating "rules" that tell calibre'
|
||||
' in the Cover grid by creating "rules" that tell calibre'
|
||||
' what image to use. Click the "Add rule" button below'
|
||||
' to get started.<p>You can <b>change an existing rule</b> by'
|
||||
' double clicking it.')
|
||||
@ -967,7 +967,7 @@ class EditRules(QWidget): # {{{
|
||||
self.enabled.stateChanged.connect(self.enabled_toggled)
|
||||
self.enabled.setToolTip(_(
|
||||
'If checked, you can tell calibre to display icons of your choosing'
|
||||
' next to the covers shown in the cover grid, controlled by the'
|
||||
' next to the covers shown in the Cover grid, controlled by the'
|
||||
' metadata of the book.'))
|
||||
self.enabled_toggled()
|
||||
self.l1.setText('<p>'+ text)
|
||||
|
@ -134,7 +134,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
dt = fm['datatype']
|
||||
if fm['is_multiple']:
|
||||
if col == 'authors' or fm.get('display', {}).get('is_names', False):
|
||||
coltype = _('Ampersand separated text, shown in the tag browser')
|
||||
coltype = _('Ampersand separated text, shown in the Tag browser')
|
||||
else:
|
||||
coltype = self.column_desc['*' + dt]
|
||||
else:
|
||||
|
@ -26,17 +26,17 @@ class CreateCustomColumn(QDialog):
|
||||
column_types = dict(enumerate((
|
||||
{
|
||||
'datatype':'text',
|
||||
'text':_('Text, column shown in the tag browser'),
|
||||
'text':_('Text, column shown in the Tag browser'),
|
||||
'is_multiple':False
|
||||
},
|
||||
{
|
||||
'datatype':'*text',
|
||||
'text':_('Comma separated text, like tags, shown in the tag browser'),
|
||||
'text':_('Comma separated text, like tags, shown in the Tag browser'),
|
||||
'is_multiple':True
|
||||
},
|
||||
{
|
||||
'datatype':'comments',
|
||||
'text':_('Long text, like comments, not shown in the tag browser'),
|
||||
'text':_('Long text, like comments, not shown in the Tag browser'),
|
||||
'is_multiple':False
|
||||
},
|
||||
{
|
||||
@ -272,7 +272,7 @@ class CreateCustomColumn(QDialog):
|
||||
|
||||
# Heading
|
||||
self.column_heading_box = chb = QLineEdit(self)
|
||||
chb.setToolTip(_("Column heading in the library view and category name in the tag browser"))
|
||||
chb.setToolTip(_("Column heading in the library view and category name in the Tag browser"))
|
||||
add_row(_("Column &heading"), chb)
|
||||
|
||||
# Column Type
|
||||
|
@ -551,7 +551,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
|
||||
def change_cover_grid_color(self):
|
||||
col = QColorDialog.getColor(self.cg_bg_widget.bcol,
|
||||
self.gui, _('Choose background color for the cover grid'))
|
||||
self.gui, _('Choose background color for the Cover grid'))
|
||||
if col.isValid():
|
||||
col = tuple(col.getRgb())[:3]
|
||||
self.set_cg_color(col)
|
||||
|
@ -269,7 +269,7 @@
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>Control the cover grid view. You can enable this view by clicking the "Cover grid" button in the bottom right corner of the main calibre window.</string>
|
||||
<string>Control the Cover grid view. You can enable this view by clicking the "Cover grid" button in the bottom right corner of the main calibre window.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
@ -337,7 +337,7 @@
|
||||
<item row="7" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="cg_background_box">
|
||||
<property name="title">
|
||||
<string>Background for the cover grid</string>
|
||||
<string>Background for the Cover grid</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5"/>
|
||||
</widget>
|
||||
@ -921,14 +921,14 @@ then the tags will be displayed each on their own line.</string>
|
||||
box will cause these empty categories to be hidden.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Hi&de empty categories (columns) in the tag browser</string>
|
||||
<string>Hi&de empty categories (columns) in the Tag browser</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="opt_tags_browser_partition_method">
|
||||
<property name="toolTip">
|
||||
<string>Choose how tag browser subcategories are displayed when
|
||||
<string>Choose how Tag browser subcategories are displayed when
|
||||
there are more items than the limit. Select by first
|
||||
letter to see an A, B, C list. Choose partitioned to
|
||||
have a list of fixed-sized groups. Set to disabled
|
||||
@ -1032,14 +1032,14 @@ see the counts by hovering your mouse over any item.</string>
|
||||
<item row="7" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="opt_cb_fullscreen">
|
||||
<property name="text">
|
||||
<string>When showing cover browser in separate window, show it &fullscreen</string>
|
||||
<string>When showing Cover browser in separate window, show it &fullscreen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="opt_separate_cover_flow">
|
||||
<property name="text">
|
||||
<string>Show cover &browser in a separate window (needs restart)</string>
|
||||
<string>Show Cover &browser in a separate window (needs restart)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -1050,14 +1050,14 @@ see the counts by hovering your mouse over any item.</string>
|
||||
them to all have the same width and height</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Preserve &aspect ratio of covers displayed in the cover browser</string>
|
||||
<string>Preserve &aspect ratio of covers displayed in the Cover browser</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="opt_cover_browser_reflections">
|
||||
<property name="text">
|
||||
<string>Show &reflections in the cover browser</string>
|
||||
<string>Show &reflections in the Cover browser</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -236,7 +236,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
'calibre library')),
|
||||
('context-menu-device', _('The context menu for the books on '
|
||||
'the device')),
|
||||
('context-menu-cover-browser', _('The context menu for the cover '
|
||||
('context-menu-cover-browser', _('The context menu for the Cover '
|
||||
'browser')),
|
||||
]
|
||||
|
||||
|
@ -152,7 +152,7 @@ class CreateVirtualLibrary(QDialog): # {{{
|
||||
is a good way to partition your large library into smaller and easier to work with subsets.</p>
|
||||
|
||||
<p>For example you can use a Virtual library to only show you books with the Tag <i>"Unread"</i>
|
||||
or only books by <i>"My Favorite Author"</i> or only books in a particular series.</p>
|
||||
or only books by <i>"My favorite author"</i> or only books in a particular series.</p>
|
||||
|
||||
<p>More information and examples are available in the
|
||||
<a href="%s">User Manual</a>.</p>
|
||||
|
@ -357,7 +357,7 @@ class TagBrowserWidget(QWidget): # {{{
|
||||
self.item_search.setSizeAdjustPolicy(self.item_search.AdjustToMinimumContentsLengthWithIcon)
|
||||
try:
|
||||
self.item_search.lineEdit().setPlaceholderText(
|
||||
_('Find item in tag browser'))
|
||||
_('Find item in Tag browser'))
|
||||
except:
|
||||
pass # Using Qt < 4.7
|
||||
self.item_search.setToolTip(_(
|
||||
@ -438,7 +438,7 @@ class TagBrowserWidget(QWidget): # {{{
|
||||
ac = QAction(parent)
|
||||
parent.addAction(ac)
|
||||
parent.keyboard.register_shortcut('tag browser alter',
|
||||
_('Alter tag browser'), default_keys=(),
|
||||
_('Alter Tag browser'), default_keys=(),
|
||||
action=ac, group=_('Tag browser'))
|
||||
ac.triggered.connect(l.showMenu)
|
||||
|
||||
|
@ -425,7 +425,7 @@ def create_global_prefs(conf_obj=None):
|
||||
# these are here instead of the gui preferences because calibredb and
|
||||
# calibre server can execute searches
|
||||
c.add_opt('saved_searches', default={}, help=_('List of named saved searches'))
|
||||
c.add_opt('user_categories', default={}, help=_('User-created tag browser categories'))
|
||||
c.add_opt('user_categories', default={}, help=_('User-created Tag browser categories'))
|
||||
c.add_opt('manage_device_metadata', default='manual',
|
||||
help=_('How and when calibre updates metadata on the device.'))
|
||||
c.add_opt('limit_search_columns', default=False,
|
||||
|
@ -328,7 +328,7 @@ def on_data_fetched(end_type, xhr, ev):
|
||||
def show_error(error_html):
|
||||
ediv = E.div()
|
||||
container.appendChild(ediv)
|
||||
ediv.innerHTML = '<h3>' + _('Failed to load tag browser data') + '</h3>' + error_html
|
||||
ediv.innerHTML = '<h3>' + _('Failed to load Tag browser data') + '</h3>' + error_html
|
||||
|
||||
def process_node(node, item_map):
|
||||
state.node_id_map[node.id] = node
|
||||
@ -393,7 +393,7 @@ def create_search_panel(container):
|
||||
# Build loading panel
|
||||
loading_panel = component(container, 'loading')
|
||||
loading_panel.appendChild(E.div(
|
||||
create_spinner(), '\xa0' + _('Fetching data for the tag browser, please wait') + '…',
|
||||
create_spinner(), '\xa0' + _('Fetching data for the Tag browser, please wait') + '…',
|
||||
style='margin-left:auto; margin-right:auto; font-size: 1.5rem; font-weight; bold; text-align:center; margin-top:30vh')
|
||||
)
|
||||
|
||||
@ -425,7 +425,7 @@ def get_prefs():
|
||||
'name':'partition_method',
|
||||
'text':_('Tag browser category partitioning method'),
|
||||
'choices':[('first letter', _('First Letter')), ('disable', _('Disable')), ('partition', _('Partition'))],
|
||||
'tooltip':_('Choose how tag browser subcategories are displayed when'
|
||||
'tooltip':_('Choose how Tag browser subcategories are displayed when'
|
||||
' there are more items than the limit. Select by first'
|
||||
' letter to see an A, B, C list. Choose partitioned to'
|
||||
' have a list of fixed-sized groups. Set to disabled'
|
||||
@ -445,7 +445,7 @@ def get_prefs():
|
||||
'name': 'dont_collapse',
|
||||
'text': _('Categories not to partition'),
|
||||
'tooltip': _('A comma-separated list of categories in which items containing'
|
||||
' periods are displayed in the tag browser trees. For example, if'
|
||||
' periods are displayed in the Tag browser trees. For example, if'
|
||||
" this box contains 'tags' then tags of the form 'Mystery.English'"
|
||||
" and 'Mystery.Thriller' will be displayed with English and Thriller"
|
||||
" both under 'Mystery'. If 'tags' is not in this box,"
|
||||
|
Loading…
x
Reference in New Issue
Block a user