From 61850df263aa74e53d18cf5142b718a271b25594 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 8 Jul 2009 19:23:16 -0600 Subject: [PATCH 1/2] When adding books, if reading metadata raises an exception, make error reporting more robust --- src/calibre/ebooks/metadata/worker.py | 40 ++++++++++++++++----------- src/calibre/gui2/add.py | 7 ++++- src/calibre/gui2/main.py | 7 +++++ 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/calibre/ebooks/metadata/worker.py b/src/calibre/ebooks/metadata/worker.py index 3c5ffd1be2..91577a7035 100644 --- a/src/calibre/ebooks/metadata/worker.py +++ b/src/calibre/ebooks/metadata/worker.py @@ -24,21 +24,26 @@ def read_metadata_(task, tdir, notification=lambda x,y:x): from calibre.ebooks.metadata.meta import metadata_from_formats from calibre.ebooks.metadata.opf2 import OPFCreator for x in task: - id, formats = x - if isinstance(formats, basestring): formats = [formats] - mi = metadata_from_formats(formats) - mi.cover = None - cdata = None - if mi.cover_data: - cdata = mi.cover_data[-1] - mi.cover_data = None - opf = OPFCreator(tdir, mi) - with open(os.path.join(tdir, '%s.opf'%id), 'wb') as f: - opf.render(f) - if cdata: - with open(os.path.join(tdir, str(id)), 'wb') as f: - f.write(cdata) - notification(0.5, id) + try: + id, formats = x + if isinstance(formats, basestring): formats = [formats] + mi = metadata_from_formats(formats) + mi.cover = None + cdata = None + if mi.cover_data: + cdata = mi.cover_data[-1] + mi.cover_data = None + opf = OPFCreator(tdir, mi) + with open(os.path.join(tdir, '%s.opf'%id), 'wb') as f: + opf.render(f) + if cdata: + with open(os.path.join(tdir, str(id)), 'wb') as f: + f.write(cdata) + notification(0.5, id) + except: + import traceback + with open(os.path.join(tdir, '%s.error'%id), 'wb') as f: + f.write(traceback.format_exc()) class Progress(object): @@ -49,7 +54,10 @@ class Progress(object): def __call__(self, id): cover = os.path.join(self.tdir, str(id)) if not os.path.exists(cover): cover = None - self.result_queue.put((id, os.path.join(self.tdir, '%s.opf'%id), cover)) + res = os.path.join(self.tdir, '%s.error'%id) + if not os.path.exists(res): + res = res.replace('.error', '.opf') + self.result_queue.put((id, res, cover)) class ReadMetadata(Thread): diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index b5572e34d6..49aa624e12 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -44,6 +44,7 @@ class Adder(QObject): self.pd = ProgressDialog(_('Adding...'), parent=parent) self.spare_server = spare_server self.db = db + self.critical = {} self.pd.setModal(True) self.pd.show() self._parent = parent @@ -123,8 +124,12 @@ class Adder(QObject): return self.pd.value += 1 formats = self.ids.pop(id) - mi = MetaInformation(OPF(opf)) name = self.nmap.pop(id) + if opf.endswith('.error'): + mi = MetaInformation('', [_('Unknown')]) + self.critical[name] = open(opf, 'rb').read().decode('utf-8', 'replace') + else: + mi = MetaInformation(OPF(opf)) if not mi.title: mi.title = os.path.splitext(name)[0] mi.title = mi.title if isinstance(mi.title, unicode) else \ diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index ff797d8aaa..03d0957b42 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -860,6 +860,13 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.library_view.model().books_added(self._adder.number_of_books_added) if hasattr(self, 'db_images'): self.db_images.reset() + if self._adder.critical: + det_msg = [] + for name, log in self._adder.critical.items(): + det_msg.append(name+'\n'+log) + error_dialog(self, _('Failed to read metadata'), + _('Failed to read metadata from the following')+':', + det_msg='\n\n'.join(det_msg), show=True) self._adder = None From 7ab2368c9e6df292a65311fae408cbe59c7f0bb2 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 8 Jul 2009 19:57:46 -0600 Subject: [PATCH 2/2] beta 11 --- src/calibre/constants.py | 2 +- src/calibre/gui2/main.py | 4 +- src/calibre/translations/calibre.pot | 1350 ++++++++++++++------------ 3 files changed, 731 insertions(+), 625 deletions(-) diff --git a/src/calibre/constants.py b/src/calibre/constants.py index 4f52c5a3ab..012ac856d2 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -2,7 +2,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' __appname__ = 'calibre' -__version__ = '0.6.0b10' +__version__ = '0.6.0b11' __author__ = "Kovid Goyal " import re diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 03d0957b42..15e12d315e 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -864,7 +864,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): det_msg = [] for name, log in self._adder.critical.items(): det_msg.append(name+'\n'+log) - error_dialog(self, _('Failed to read metadata'), + warning_dialog(self, _('Failed to read metadata'), _('Failed to read metadata from the following')+':', det_msg='\n\n'.join(det_msg), show=True) @@ -1375,7 +1375,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): 'books at once can be slow and have a negative effect on the ' 'responsiveness of your computer. Once started the process ' 'cannot be stopped until complete. Do you wish to continue?' - % len(rows))): + )% len(rows)): return if self.current_view() is self.library_view: diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 5ad920d074..7d441e24e2 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.6.0b10\n" -"POT-Creation-Date: 2009-06-30 07:21+MDT\n" -"PO-Revision-Date: 2009-06-30 07:21+MDT\n" +"POT-Creation-Date: 2009-07-08 19:57+MDT\n" +"PO-Revision-Date: 2009-07-08 19:57+MDT\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -37,9 +37,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:320 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:255 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:258 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:350 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 @@ -47,10 +47,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:63 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:103 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:153 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:865 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:870 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:65 @@ -61,15 +61,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:117 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:150 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:540 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:724 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:548 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:732 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:837 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:842 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:880 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:133 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:839 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:844 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:882 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:136 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:138 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:83 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:102 @@ -95,11 +95,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:198 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:129 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:19 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:103 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:531 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:540 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:756 @@ -111,23 +112,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:40 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:361 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:374 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:999 #: /home/kovid/work/calibre/src/calibre/library/cli.py:264 #: /home/kovid/work/calibre/src/calibre/library/database.py:917 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:618 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:630 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1026 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1061 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1391 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1393 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1477 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1584 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1635 -#: /home/kovid/work/calibre/src/calibre/library/server.py:283 -#: /home/kovid/work/calibre/src/calibre/library/server.py:344 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:644 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:656 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1054 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1091 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1421 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1507 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1591 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1614 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/server.py:294 +#: /home/kovid/work/calibre/src/calibre/library/server.py:355 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 @@ -227,51 +228,60 @@ msgid "This profile tries to provide sane defaults and is useful if you know not msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:154 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:178 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:193 msgid "This profile is intended for the Microsoft Reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:189 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:204 msgid "This profile is intended for the Mobipocket books." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:93 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:202 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:105 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:214 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229 msgid "This profile is intended for the Cybook G3." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:117 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:226 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:241 +msgid "This profile is intended for the Cybook Opus." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:129 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:253 msgid "This profile is intended for the Amazon Kindle." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:135 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 msgid "Output profile" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:139 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:151 msgid "This profile tries to provide sane defaults and is useful if you want to produce a document intended to be read at a computer or on a range of devices." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:166 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc, in landscape mode. Mainly useful for comics." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:270 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:286 +msgid "This profile is intended for the Irex Illiad." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/ui.py:29 msgid "Installed plugins" msgstr "" @@ -296,7 +306,7 @@ msgstr "" msgid "Initialization of plugin %s failed with traceback:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:347 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:354 msgid "" " %prog options\n" "\n" @@ -304,27 +314,27 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:353 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:360 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:355 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:362 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:364 msgid "Customize plugin. Specify name of plugin and customization string separated by a comma." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:359 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:366 msgid "List all installed plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:361 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:368 msgid "Enable the named plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:363 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:370 msgid "Disable the named plugin" msgstr "" @@ -369,9 +379,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:467 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:80 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:974 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1295 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:998 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1002 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1325 msgid "News" msgstr "" @@ -646,230 +656,246 @@ msgstr "" msgid "Output saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:71 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:68 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:78 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:75 msgid "Specify the input profile. The input profile gives the conversion system information on how to interpret various information in the input document. For example resolution dependent lengths (i.e. lengths in pixels). Choices are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:89 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:86 msgid "Specify the output profile. The output profile tells the conversion system how to optimize the created document for the specified device. In some cases, an output profile is required to produce documents that will work on a device. For example EPUB on the SONY reader. Choices are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:100 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:97 msgid "The base font size in pts. All font sizes in the produced book will be rescaled based on this size. By choosing a larger size you can make the fonts in the output bigger and vice versa. By default, the base font size is chosen based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:110 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:107 msgid "Mapping from CSS font names to font sizes in pts. An example setting is 12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-large, with the final size being for huge fonts. The font rescaling algorithm uses these sizes to intelligently rescale fonts. The default is to use a mapping based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 msgid "Disable all rescaling of font sizes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:126 msgid "The line height in pts. Controls spacing between consecutive lines of text. By default no line height manipulation is performed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:134 msgid "Some badly designed documents use tables to control the layout of text on the page. When converted these documents often have text that runs off the page and other artifacts. This option will extract the content from the tables and present it in a linear fashion." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:147 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:144 msgid "XPath expression that specifies all tags that should be added to the Table of Contents at level one. If this is specified, it takes precedence over other forms of auto-detection." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:153 msgid "XPath expression that specifies all tags that should be added to the Table of Contents at level two. Each entry is added under the previous level one entry." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:164 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:161 msgid "XPath expression that specifies all tags that should be added to the Table of Contents at level three. Each entry is added under the previous level two entry." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:169 msgid "Normally, if the source file already has a Table of Contents, it is used in preference to the auto-generated one. With this option, the auto-generated one is always used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:187 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:184 msgid "If fewer than this number of chapters is detected, then links are added to the Table of Contents. Default: %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:191 msgid "Maximum number of links to insert into the TOC. Set to 0 to disable. Default is: %default. Links are only added to the TOC if less than the threshold number of chapters were detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:199 msgid "Remove entries from the Table of Contents whose titles match the specified regular expression. Matching entries and all their children are removed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 msgid "An XPath expression to detect chapter titles. The default is to consider

or

tags that contain the words \"chapter\",\"book\",\"section\" or \"part\" as chapter titles as well as any tags that have class=\"chapter\". The expression used must evaluate to a list of elements. To disable chapter detection, use the expression \"/\". See the XPath Tutorial in the calibre User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "Specify how to mark detected chapters. A value of \"pagebreak\" will insert page breaks before chapters. A value of \"rule\" will insert a line before chapters. A value of \"none\" will disable chapter marking and a value of \"both\" will use both page breaks and lines to mark chapters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:237 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:234 msgid "Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to the style rules from the source file, so it can be used to override those rules." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 msgid "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:252 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:249 msgid "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:254 msgid "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:262 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:259 msgid "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:264 msgid "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:272 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:269 msgid "Do not force text to be justified in output. Whether text is actually displayed justified or not depends on whether the ebook format and reading device support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 msgid "Remove spacing between paragraphs. Also sets an indent on paragraphs of 1.5em. Spacing removal will not work if the source file does not use paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:283 msgid "Use the cover detected from the source file in preference to the specified cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:289 msgid "Insert a blank line between paragraphs. Will not work if the source file does not use paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:299 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:296 msgid "Remove the first image from the input ebook. Useful if the first image in the source file is a cover and you are specifying an external cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:307 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:304 msgid "Insert the book metadata at the start of the book. This is useful if your ebook reader does not support displaying/searching metadata directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:312 msgid "Attempt to detect and correct hard line breaks and other problems in the source file. This may make things worse, so use with care." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:325 -msgid "Read metadata from the specified OPF file. Metadata read from this file will override any metadata in the source file." +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:320 +msgid "Use a regular expression to try and remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:327 +msgid "The regular expression to use to remove the header." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:333 +msgid "Use a regular expression to try and remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:340 +msgid "The regular expression to use to remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:347 +msgid "Read metadata from the specified OPF file. Metadata read from this file will override any metadata in the source file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:355 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:35 msgid "Set the title." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:337 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:342 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:364 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:368 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:350 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:372 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:49 msgid "Set the cover to the specified file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:376 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 msgid "Set the ebook description." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 msgid "Set the ebook publisher." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:384 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:366 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:388 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:370 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:392 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 msgid "Set the rating. Should be a number between 1 and 5." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:374 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:396 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 msgid "Set the ISBN of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:378 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:400 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:382 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:404 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:386 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:408 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 msgid "Set the language." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:389 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:411 msgid "List available recipes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:496 msgid "Could not find an ebook inside the archive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:594 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:634 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:608 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:648 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:683 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:723 msgid "Creating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:57 msgid "Extract the contents of the generated EPUB file to the specified directory. The contents of the directory are first deleted, so be careful." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:35 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:63 msgid "Turn off splitting at page breaks. Normally, input files are automatically split at every page break into two files. This gives an output ebook that can be parsed faster and with less resources. However, splitting is slow and if your source file contains a very large number of page breaks, you should turn off splitting on page breaks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:46 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:74 msgid "Split all HTML files larger than this size (in KB). This is necessary as most EPUB readers cannot handle large file sizes. The default of %defaultKB is the size required for Adobe Digital Editions." msgstr "" @@ -1140,80 +1166,84 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:345 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:349 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1008 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1065 msgid "Title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:350 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1066 msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:347 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:351 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:348 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:352 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:58 msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:357 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:308 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:952 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1012 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1069 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:80 msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:324 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:80 msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:951 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1008 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:368 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:162 msgid "Published" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 +msgid "Rights" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:9 msgid "options" msgstr "" @@ -1341,95 +1371,99 @@ msgid "" "Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 msgid "Modify images to meet Palm device size limitations." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:25 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 msgid "When present, use author sort field as author." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:30 +msgid "Don't add Table of Contents to end of book. Useful if the book has its own table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:33 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 msgid "Title for any generated in-line table of contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:32 -msgid "Generate a periodical rather than a book." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1239 -msgid "Cover" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1240 -msgid "Title Page" +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:79 +msgid "All articles" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1241 +msgid "Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1242 +msgid "Title Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1243 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:166 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1242 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1244 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1243 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1245 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1244 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1246 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1245 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1247 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1246 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1248 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1247 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1249 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1248 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1250 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1249 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1251 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1250 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1252 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1251 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1253 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1252 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1254 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1253 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1255 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1254 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1256 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1255 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1257 msgid "Main Text" msgstr "" @@ -1473,7 +1507,7 @@ msgstr "" msgid "Could not find reasonable point at which to split: %s Sub-tree size: %d KB" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:66 msgid "Unnamed" msgstr "" @@ -1717,7 +1751,7 @@ msgid "Specify the character encoding of the output document. The default is utf msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:507 msgid "Frequently used directories" msgstr "" @@ -1813,36 +1847,36 @@ msgstr "" msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:60 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161 msgid "Books with the same title as the following already exist in the database. Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:228 msgid "Saved" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:60 msgid "Bulk Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:150 msgid "Options specific to the output format." msgstr "" @@ -1870,13 +1904,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:38 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_edit_ui.py:41 @@ -2091,72 +2125,74 @@ msgstr "" msgid "Set the metadata. The output file will contain as much of this metadata as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:129 msgid "Choose cover for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:101 msgid "Cannot read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:102 msgid "You do not have permission to read the file: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:110 msgid "Error reading file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "

There was an error reading from file:
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:153 msgid " is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:496 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "Book Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:157 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:497 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 msgid "Change &cover image:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:498 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Browse for an image to use as the cover of this book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_edit_ui.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:55 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:461 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:476 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:478 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:493 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:494 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:342 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 @@ -2170,93 +2206,81 @@ msgstr "" msgid "..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:500 msgid "Use cover from &source file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:161 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:501 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:333 msgid "&Title: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:162 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:502 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:334 msgid "Change the title of this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:503 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:337 msgid "&Author(s): " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:129 -msgid "Change the author(s) of this book. Multiple authors should be separated by an &. If the author name contains an &, use && to represent it." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:505 msgid "Author So&rt:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:506 msgid "Change the author(s) of this book. Multiple authors should be separated by a comma" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:507 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:346 msgid "&Publisher: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:508 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 -msgid "Change the publisher of this book" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:509 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:347 msgid "Ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:510 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:348 msgid "Tags categorize the book. This is particularly useful while searching.

They can be any words or phrases, separated by commas." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:511 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 msgid "&Series:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:512 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:513 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "List of known series. You can add new series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:516 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "Book " msgstr "" @@ -2281,7 +2305,7 @@ msgid "Disable compression of the file contents" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 -msgid "Generate a periodical rather than a book" +msgid "Do not add Table of Contents to book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 @@ -2352,11 +2376,11 @@ msgstr "" msgid "Orientation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:137 msgid "Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:161 msgid "Options specific to the input format." msgstr "" @@ -2376,74 +2400,104 @@ msgstr "" msgid "&Output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" "Detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 msgid "Fine tune the detection of chapter headings and other document structure." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:32 msgid "Detect chapters at (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:33 msgid "Insert page breaks before (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 +msgid "Invalid regular expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:73 +msgid "Invalid regular expression: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 msgid "Invalid XPath" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 msgid "The XPath expression %s is invalid." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:72 msgid "Chapter &mark:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:73 msgid "pagebreak" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:74 msgid "rule" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:75 msgid "both" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:76 msgid "none" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:77 msgid "Remove first &image" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:78 msgid "Insert &metadata as page at start of book" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:79 +msgid "&Footer regular expression:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:80 msgid "&Preprocess input file to possibly improve structure detection" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:81 +msgid "&Header regular expression:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:82 +msgid "Remove F&ooter" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:83 +msgid "Remove H&eader" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" @@ -2696,7 +2750,7 @@ msgid "Attached, you will find the e-book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:174 msgid "by" msgstr "" @@ -2781,8 +2835,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:315 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:947 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1004 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:56 msgid "Path" msgstr "" @@ -2791,8 +2845,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:80 msgid "Formats" @@ -2831,407 +2885,415 @@ msgstr "" msgid "&Profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:168 msgid " plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:193 msgid "Conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:193 msgid "General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:193 msgid "Interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:194 msgid "" "Email\n" "Delivery" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:195 msgid "Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:195 msgid "" "Content\n" "Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:195 msgid "Plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:213 msgid "Auto send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:213 msgid "Email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:218 msgid "Formats to email. The first matching format will be sent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:219 msgid "If checked, downloaded news will be automatically mailed
to this email address (provided it is in one of the listed formats)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:293 msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:509 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:496 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:510 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:513 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:525 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:526 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:535 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:536 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:556 msgid "Customize %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:566 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:567 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:600 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:607 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:607 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:631 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:431 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:437 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:673 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:649 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:674 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:691 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:696 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:724 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:692 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:720 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:721 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:697 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:725 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:739 msgid "Compacting..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:740 msgid "Compacting database. This may take a while." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:488 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:372 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:171 msgid "Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:459 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:489 msgid "&Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:490 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:492 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:493 msgid "If you disable this setting, metadata is guessed from the filename instead. This can be configured in the Advanced section." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:494 msgid "Read &metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:495 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:496 msgid "Set the default timeout for network fetches (i.e. anytime we go out to the internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:497 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:498 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:499 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:500 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:501 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:502 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:503 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:504 +msgid "Preferred &input format order:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:508 msgid "Add a directory to the frequently used directories list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:510 msgid "Remove a directory from the frequently used directories list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:512 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:513 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:514 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:515 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:516 +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:517 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:518 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:519 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:520 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:521 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:522 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:523 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:490 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:524 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:525 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:526 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:529 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:496 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:530 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:497 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:531 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:532 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:533 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:534 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:535 msgid "Free unused diskspace from the database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:536 msgid "&Compact database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:537 msgid "&Metadata from file name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:538 msgid "calibre contains a network server that allows you to access your book collection using a browser from anywhere in the world. Any changes to the settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:539 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:540 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:178 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:541 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:542 msgid "If you leave the password blank, anyone will be able to access your book collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:543 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:180 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:544 msgid "The maximum size (widthxheight) for displayed covers. Larger covers are resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:545 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:546 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:547 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:548 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:549 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:550 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:551 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as calibre is running.\n" "

Stanza should see your calibre collection automatically. If not, try adding the URL http://myhostname:8080 as a new catalog in the Stanza reader on your iPhone. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:553 msgid "Here you can customize the behavior of Calibre by controlling what plugins it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:554 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:555 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:556 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:557 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:558 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:560 msgid "&Add" msgstr "" @@ -3331,6 +3393,14 @@ msgstr "" msgid "Category" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:504 +msgid "Change the author(s) of this book. Multiple authors should be separated by an &. If the author name contains an &, use && to represent it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:508 +msgid "Change the publisher of this book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:514 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:515 msgid "Series index." @@ -3489,187 +3559,187 @@ msgid "" "

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:125 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:332 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:338 msgid "Author S&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:339 msgid "Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:342 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:343 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:345 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:345 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:135 msgid "Add Ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:173 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:174 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:188 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:183 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:397 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:420 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:421 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:411 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:420 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:427 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:421 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:428 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:459 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:466 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:467 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:331 msgid "Edit Meta Information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:335 msgid "Swap the author and title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:340 msgid "Automatically create the author sort entry based on the current author entry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "Remove unused series (Series that have no books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 msgid "IS&BN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 msgid "MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "&Fetch metadata from server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 msgid "Available Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "Add a new format for this book to the database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "Set the cover for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "Download &cover" msgstr "" @@ -4148,11 +4218,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:95 msgid "No match" msgstr "" @@ -4229,48 +4299,48 @@ msgstr "" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1010 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1067 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1011 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1068 msgid "Date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:307 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:318 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:375 msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:778 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:832 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:779 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:833 msgid "Dropping onto a device is not supported. First add the book to the calibre library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:946 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1000 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1057 msgid "Double click to edit me

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1106 msgid "Search (For Advanced Search click the button to the left)" msgstr "" @@ -4299,7 +4369,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:407 msgid "No matches found" msgstr "" @@ -4351,7 +4421,7 @@ msgid "Save single format to disk..." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:957 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:972 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:49 msgid "Error" msgstr "" @@ -4360,131 +4430,131 @@ msgstr "" msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:153 msgid "&Restore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:155 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:160 msgid "&Restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:199 msgid "

For help visit %s.kovidgoyal.net
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:202 msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:222 msgid "Edit metadata individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:224 msgid "Edit metadata in bulk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:226 msgid "Download metadata and covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:226 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:227 msgid "Download only metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:228 msgid "Download only covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:231 msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:231 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:232 msgid "Add books from directories, including sub-directories (One book per directory, assumes every ebook file is the same book in a different format)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:235 msgid "Add books from directories, including sub directories (Multiple books per directory, assumes every ebook file is a different book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:238 msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:275 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 msgid "Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:276 msgid "Save to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:276 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1444 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1445 msgid "Save only %s format to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:285 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 msgid "View" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:286 msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:311 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:312 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:313 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:328 msgid "Run welcome wizard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:362 msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:420 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:419 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1572 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:423 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1573 msgid "Choose a location for your ebook library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:595 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:702 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:696 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:704 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:718 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:726 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:738 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:731 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:739 msgid "" "\n" "

The database of books on the reader is corrupted. Try the following:\n" @@ -4495,138 +4565,146 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:807 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:850 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:815 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:858 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:815 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:823 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:816 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:824 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:825 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:826 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:819 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:827 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:828 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:829 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:830 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:831 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:832 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:867 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:868 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:886 msgid "The selected books will be permanently deleted and the files removed from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:888 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:903 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:934 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:920 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:968 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1023 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1154 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:935 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1013 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1169 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:931 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:946 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:967 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:968 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:956 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:967 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:982 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1012 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1022 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1037 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1025 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1040 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1063 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1064 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1053 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1068 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1069 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1070 msgid "as the %s format is not available for them." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1056 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1071 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1090 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1088 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1103 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1153 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1168 msgid "Cannot convert" msgstr "" @@ -4636,12 +4714,11 @@ msgid "No book selected" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1338 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1387 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1390 msgid "Cannot view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1344 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1392 msgid "Choose the format to view" msgstr "" @@ -4649,7 +4726,15 @@ msgstr "" msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1374 +msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1391 msgid "%s has no available formats." msgstr "" @@ -4661,120 +4746,120 @@ msgstr "" msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1473 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1474 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1474 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1475 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1522 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1524 msgid "There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1555 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1541 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1556 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1541 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542 msgid "

Could not convert: %s

It is a DRMed book. You must first remove the DRM using 3rd party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1556 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1557 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1581 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1582 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1582 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1583 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1630 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1631 msgid "is the result of the efforts of many volunteers from all over the world. If you find it useful, please consider donating to support its development." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1654 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1655 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1657 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1658 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1661 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1662 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1712 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1713 msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1731 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1732 msgid "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1739 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1740 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1740 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1741 msgid "%s has been updated to version %s. See the new features. Visit the download page?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1758 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1759 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1760 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1761 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1762 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1763 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1810 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1811 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1812 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1813 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1813 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1814 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1816 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1817 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1818 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1819 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1820 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1821 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1823 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1824 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1825 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1845 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1826 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1846 msgid "try deleting the file" msgstr "" @@ -5100,7 +5185,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:635 msgid "Remember last used window size" msgstr "" @@ -5165,67 +5250,67 @@ msgstr "" msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:367 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:368 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:387 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:387 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:408 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:448 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:475 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:504 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:539 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:547 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:625 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:632 msgid "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:637 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:643 msgid "" "%prog [options] file\n" "\n" @@ -5284,91 +5369,103 @@ msgstr "" msgid "Print eBook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 -msgid "Invalid regular expression" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 -msgid "Invalid regular expression: %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:165 msgid "" "Library\n" "%d\n" "books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:166 msgid "" "Reader\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:167 msgid "" "Card A\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:168 msgid "" "Card B\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:173 msgid "Click to see the books available on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:174 msgid "Click to see the books in the main memory of your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:175 msgid "Click to see the books on storage card A in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:176 msgid "Click to see the books on storage card B in your reader" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:465 +msgid "Change Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:466 +msgid "Upper Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:467 +msgid "Lower Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:468 +msgid "Swap Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:469 +msgid "Title Case" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:36 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:134 msgid "Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:339 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:356 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:365 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:409 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:410 msgid "

An invalid library already exists at %s, delete it before trying to move the existing library.
Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:421 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:480 msgid "welcome wizard" msgstr "" @@ -5781,15 +5878,15 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1497 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1527 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1526 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1556 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1543 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1573 msgid "Compacting database" msgstr "" @@ -5797,7 +5894,7 @@ msgstr "" msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:419 +#: /home/kovid/work/calibre/src/calibre/library/server.py:429 msgid "" "[options]\n" "\n" @@ -5841,11 +5938,15 @@ msgstr "" msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:552 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:554 +msgid "Ordered list of formats to prefer for input." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:556 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:554 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:558 msgid "The priority of worker processes" msgstr "" @@ -5915,83 +6016,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:564 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:569 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:566 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:571 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:568 -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:574 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:573 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:579 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:572 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:577 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:576 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:581 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:657 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:662 msgid "Could not fetch article. Run with --debug to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:678 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:683 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:682 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:687 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:688 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:693 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:755 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:765 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:770 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:772 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:777 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:886 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:895 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:941 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:955 msgid "" "\n" "Downloaded article %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:947 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:961 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:953 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:967 msgid "" "Failed to download article: %s from %s\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:956 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:970 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:971 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:985 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_borba.py:78 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_glas_srpske.py:76 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_instapaper.py:56 @@ -6036,7 +6137,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_7dias.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ambito.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_buenosaireseconomico.py:23 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_clarin.py:64 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_clarin.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_diagonales.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 @@ -6046,6 +6147,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elperiodico_spanish.py:25 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_eltiempo_hn.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_expansion_spanish.py:25 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21 @@ -6057,7 +6159,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_lanacion.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_lanacion_chile.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_laprensa.py:60 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_laprensa_hn.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_laprensa_ni.py:25 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_latribuna.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_lavanguardia.py:25 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_marca.py:25 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_miradasalsur.py:23 @@ -6068,6 +6172,7 @@ msgid "Spanish" msgstr "" #: +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_accountancyage.py:25 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_adventuregamers.py:13 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_adventuregamers.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 @@ -6094,6 +6199,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_endgadget.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_espn.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_exiled.py:23 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_fastcompany.py:25 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_financial_times.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_forbes.py:10 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_freakonomics.py:13