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
29e9a86619
commit
17eee10e6a
@ -69,7 +69,7 @@ calibre is open source software while DRM by its very nature is closed. If
|
||||
calibre were to support opening or viewing DRM files it could be trivially
|
||||
modified to be used as a tool for DRM removal which is illegal under today's
|
||||
laws. Open source software and DRM are a clash of principles. While DRM is all
|
||||
about controlling the user open source software is about empowering the user.
|
||||
about controlling the user, open source software is about empowering the user.
|
||||
The two simply can not coexist.
|
||||
|
||||
|
||||
|
@ -566,7 +566,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 :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 the :guilabel:`Configure` button at the lower-left of the :guilabel:`Tag browser` and choose :guilabel:`Manage authors, series, etc->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 :guilabel:`Add sub-category to...`, and entering the sub-category name; or by using the :guilabel:`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 the :guilabel:`Configure` button at the lower-left of the :guilabel:`Tag browser` and choose :guilabel:`Manage authors, tags, etc->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 :guilabel:`Add sub-category to...`, and entering the sub-category name; or by using the :guilabel:`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.
|
||||
|
@ -105,7 +105,7 @@ This is Python, so indentation is important. After you've added the lines, it sh
|
||||
|
||||
In the above, ``def print_version(self, url)`` defines a *method* that is called by calibre for every article. ``url`` is the URL of the original article. What ``print_version`` does is take that url and replace it with the new URL that points to the print version of the article. To learn about `Python <https://www.python.org>`_ see the `tutorial <https://docs.python.org/tutorial/>`_.
|
||||
|
||||
Now, click the :guilabel:`Add/update recipe` button and your changes will be saved. Re-download the e-book. You should have a much improved e-book. One of the problems with the new version is that the fonts on the print version webpage are too small. This is automatically fixed when converting to an e-book, but even after the fixing process, the font size of the menus and navigation bar to become too large relative to the article text. To fix this, we will do some more customization, in the next section.
|
||||
Now, click the :guilabel:`Add/update recipe` button and your changes will be saved. Re-download the e-book. You should have a much improved e-book. One of the problems with the new version is that the fonts on the print version webpage are too small. This is automatically fixed when converting to an e-book, but even after the fixing process, the font size of the menus and navigation bar become too large relative to the article text. To fix this, we will do some more customization, in the next section.
|
||||
|
||||
Replacing article styles
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -11,7 +11,7 @@ You've just started calibre. What do you do now? Before calibre can do anything
|
||||
|
||||
Once you've admired the list of books you just added to your heart's content, you'll probably want to read one. In order to do that you'll have to convert the book to a format your reader understands. When first running calibre, the :guilabel:`Welcome wizard` starts and will set up calibre for your reader device. Conversion is a breeze. Just select the book you want to convert then click the "Convert books" button. Ignore all the options for now and click "OK". The little icon in the bottom right corner will start spinning. Once it's finished spinning, your converted book is ready. Click the "View" button to read the book.
|
||||
|
||||
If you want to read the book on your reader, connect it to the computer, wait till calibre detects it (10-20 seconds) and then click the "Send to device" button. Once the icon stops spinning again, disconnect your reader and read away! If you didn't convert the book in the previous step, calibre will auto convert it to the format your reader device understands.
|
||||
If you want to read the book on your reader, connect the reader to the computer, wait till calibre detects it (10-20 seconds) and then click the "Send to device" button. Once the icon stops spinning again, disconnect your reader and read away! If you didn't convert the book in the previous step, calibre will auto convert it to the format your reader device understands.
|
||||
|
||||
To get started with more advanced usage, you should read about :doc:`gui`. For even more power and versatility, learn the :doc:`generated/en/cli-index`. You will find the list of :doc:`faq` useful as well.
|
||||
|
||||
|
@ -41,7 +41,7 @@ You can access the viewer controls by either:
|
||||
The viewer has two modes, "paged" and "flow". In paged mode the book content
|
||||
is presented as pages, similar to a paper book. In flow mode the text is
|
||||
presented continuously, like in a web browser. You can switch between them
|
||||
using the viewer Preferences under :guilabel:`Page layout` or by pressing the
|
||||
using the viewer :guilabel:`Preferences` under :guilabel:`Page layout` or by pressing the
|
||||
:kbd:`Ctrl+M` key.
|
||||
|
||||
|
||||
|
@ -2288,7 +2288,7 @@ class Cache:
|
||||
# also an error but if the composite isn't used in a VL then the
|
||||
# eventual answer will be correct because get_metadata() will
|
||||
# clear the caches.
|
||||
raise ValueError(_('Recursion detected while processing virtual library "%s"')
|
||||
raise ValueError(_('Recursion detected while processing Virtual library "%s"')
|
||||
% self.vls_for_books_lib_in_process)
|
||||
if self.vls_for_books_cache is None:
|
||||
libraries = self._pref('virtual_libraries', {})
|
||||
|
@ -52,8 +52,8 @@ class EB600(USBMS):
|
||||
class TOLINO(EB600):
|
||||
|
||||
name = 'Tolino Shine Device Interface'
|
||||
gui_name = 'tolino shine'
|
||||
description = _('Communicate with the tolino shine and vision readers')
|
||||
gui_name = 'Tolino Shine'
|
||||
description = _('Communicate with the Tolino Shine and Vision readers')
|
||||
FORMATS = ['epub', 'pdf', 'txt']
|
||||
|
||||
EPOS_PRODUCT_ID = [0x6053]
|
||||
|
@ -7,7 +7,7 @@ from calibre.utils.config_base import Config, ConfigProxy
|
||||
|
||||
class DeviceConfig:
|
||||
|
||||
HELP_MESSAGE = _('Configure Device')
|
||||
HELP_MESSAGE = _('Configure device')
|
||||
|
||||
#: Can be None, a string or a list of strings. When it is a string
|
||||
#: that string is used for the help text and the actual customization value
|
||||
|
@ -22,7 +22,7 @@ class DOCXInput(InputFormatPlugin):
|
||||
OptionRecommendation(name='docx_no_pagebreaks_between_notes', recommended_value=False,
|
||||
help=_('Do not insert a page break after every endnote.')),
|
||||
OptionRecommendation(name='docx_inline_subsup', recommended_value=False,
|
||||
help=_('Render superscripts and subscripts so that they do not affect the line height.')),
|
||||
help=_('Render superscripts and subscripts so that they do not affect the line height')),
|
||||
}
|
||||
|
||||
recommendations = {('page_breaks_before', '/', OptionRecommendation.MED)}
|
||||
|
@ -30,7 +30,7 @@ class FB2Input(InputFormatPlugin):
|
||||
options = {
|
||||
OptionRecommendation(name='no_inline_fb2_toc',
|
||||
recommended_value=False, level=OptionRecommendation.LOW,
|
||||
help=_('Do not insert a Table of Contents at the beginning of the book.'
|
||||
help=_('Do not insert a Table of Contents at the beginning of the book'
|
||||
)
|
||||
)}
|
||||
|
||||
|
@ -285,7 +285,7 @@ def check_opf(container):
|
||||
if container.opf.tag != OPF('package'):
|
||||
err = BaseError(_('The OPF does not have the correct root element'), container.opf_name, container.opf.sourceline)
|
||||
err.HELP = xml(_(
|
||||
'The opf must have the root element <package> in namespace {0}, like this: <package xmlns="{0}">')).format(OPF2_NS)
|
||||
'The OPF must have the root element <package> in namespace {0}, like this: <package xmlns="{0}">')).format(OPF2_NS)
|
||||
errors.append(err)
|
||||
|
||||
elif container.opf.get('version') is None and container.book_type == 'epub':
|
||||
|
@ -60,14 +60,14 @@
|
||||
<item row="7" column="0">
|
||||
<widget class="QCheckBox" name="opt_dont_sharpen">
|
||||
<property name="text">
|
||||
<string>Disable &Sharpening</string>
|
||||
<string>Disable &sharpening</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QCheckBox" name="opt_disable_trim">
|
||||
<property name="text">
|
||||
<string>Disable &Trimming</string>
|
||||
<string>Disable &trimming</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -31,7 +31,7 @@
|
||||
<item>
|
||||
<widget class="QCheckBox" name="opt_docx_inline_subsup">
|
||||
<property name="text">
|
||||
<string>Render &superscripts and subscripts so that they do not affect the line height.</string>
|
||||
<string>Render &superscripts and subscripts so that they do not affect the line height</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -30,7 +30,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="opt_no_inline_fb2_toc">
|
||||
<property name="text">
|
||||
<string>Do not insert a &Table of Contents at the beginning of the book.</string>
|
||||
<string>Do not insert a &Table of Contents at the beginning of the book</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -308,7 +308,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
key = str(self.opt_columns.item(row, 0).data(Qt.ItemDataRole.UserRole))
|
||||
if key not in self.custcols:
|
||||
return error_dialog(self, '',
|
||||
_('Selected column is not a user-defined column'),
|
||||
_('The selected column is not a user-defined column'),
|
||||
show=True)
|
||||
cc = self.custcols[key]
|
||||
if '*deleted' in cc:
|
||||
|
@ -126,7 +126,7 @@ class CreateCustomColumn(QDialog):
|
||||
self.shortcuts.setVisible(False)
|
||||
col = current_key
|
||||
if col not in caller.custcols:
|
||||
self.simple_error('', _('Selected column is not a user-defined column'))
|
||||
self.simple_error('', _('The selected column is not a user-defined column'))
|
||||
return
|
||||
|
||||
c = caller.custcols[col]
|
||||
@ -826,7 +826,7 @@ class CreateNewCustomColumn:
|
||||
_("You cannot specify is_multiple for the datatype %s") % datatype)
|
||||
if not isinstance(display, dict):
|
||||
return(self.Result.INVALID_DISPLAY,
|
||||
_("The display parameter must a python dict"))
|
||||
_("The display parameter must be a python dict"))
|
||||
self.created_count += 1
|
||||
self.custcols[lookup_name] = {
|
||||
'label': lookup_name,
|
||||
|
@ -221,7 +221,7 @@
|
||||
<item row="6" column="0">
|
||||
<widget class="QCheckBox" name="opt_disable_tray_notification">
|
||||
<property name="toolTip">
|
||||
<string>Disable popup notifications when calibre completes jobs such a conversion, sending to device etc. The notifications are sent via the operating system notification facility, if available. Note that on Windows, you have to enable the system tray icon for notifications to work.</string>
|
||||
<string>Disable popup notifications when calibre completes jobs such as conversion of books, sending to device, etc. The notifications are sent via the operating system notification facility, if available.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Disable n&otifications on job completion</string>
|
||||
|
@ -579,7 +579,7 @@ class CatalogBuilder:
|
||||
if not self.error:
|
||||
self.error.append('Author sort mismatch')
|
||||
|
||||
error_msg = _(f"Warning: Inconsistent Author Sort values for Author '{author[0]!s}':\n" +
|
||||
error_msg = _(f"Warning: Inconsistent author sort values for author '{author[0]!s}':\n" +
|
||||
f" {author[1]!s} != {current_author[1]!s}\n")
|
||||
self.opts.log.warn('\n*** Metadata warning ***')
|
||||
self.opts.log.warn(error_msg)
|
||||
|
@ -538,7 +538,7 @@ def create_global_prefs(conf_obj=None):
|
||||
'your language is Spanish it will only match n. Note that '
|
||||
'this is much slower than a simple search on very large '
|
||||
'libraries. Also, this option will have no effect if you turn '
|
||||
'on case-sensitive searching'))
|
||||
'on case-sensitive searching.'))
|
||||
c.add_opt('case_sensitive', default=False, help=_(
|
||||
'Make searches case-sensitive'))
|
||||
c.add_opt('numeric_collation', default=False,
|
||||
|
@ -459,8 +459,8 @@ def comic_input(container):
|
||||
add(lineedit, 'comic_image_size', _('Override image si&ze:'))
|
||||
add(checkbox, 'dont_normalize', _('Disable &normalize'))
|
||||
add(checkbox, 'keep_aspect_ratio', _('Keep &aspect ratio'))
|
||||
add(checkbox, 'dont_sharpen', _('Disable &Sharpening'))
|
||||
add(checkbox, 'disable_trim', _('Disable &Trimming'))
|
||||
add(checkbox, 'dont_sharpen', _('Disable &sharpening'))
|
||||
add(checkbox, 'disable_trim', _('Disable &trimming'))
|
||||
add(checkbox, 'wide', _('&Wide'))
|
||||
add(checkbox, 'landscape', _('&Landscape'))
|
||||
add(checkbox, 'right2left', _('&Right to left'))
|
||||
|
Loading…
x
Reference in New Issue
Block a user