diff --git a/src/calibre/ebooks/epub/fix/__init__.py b/src/calibre/ebooks/epub/fix/__init__.py
index 5bdbd7c7f6..3eae56484e 100644
--- a/src/calibre/ebooks/epub/fix/__init__.py
+++ b/src/calibre/ebooks/epub/fix/__init__.py
@@ -11,6 +11,14 @@ from calibre.customize import Plugin
class InvalidEpub(ValueError):
pass
+class ParseError(ValueError):
+
+ def __init__(self, name, desc):
+ self.name = name
+ self.desc = desc
+ ValueError.__init__(self,
+ _('Failed to parse: %s with error: %s')%(name, desc))
+
class ePubFixer(Plugin):
supported_platforms = ['windows', 'osx', 'linux']
diff --git a/src/calibre/ebooks/epub/fix/container.py b/src/calibre/ebooks/epub/fix/container.py
index b9af66d708..539d886312 100644
--- a/src/calibre/ebooks/epub/fix/container.py
+++ b/src/calibre/ebooks/epub/fix/container.py
@@ -8,8 +8,9 @@ __docformat__ = 'restructuredtext en'
import os, posixpath, urllib, sys, re
from lxml import etree
+from lxml.etree import XMLSyntaxError
-from calibre.ebooks.epub.fix import InvalidEpub
+from calibre.ebooks.epub.fix import InvalidEpub, ParseError
from calibre import guess_type, prepare_string_for_xml
from calibre.ebooks.chardet import xml_to_unicode
from calibre.constants import iswindows
@@ -148,7 +149,10 @@ class Container(object):
return self.cache[name]
raw = self.get_raw(name)
if name in self.mime_map:
- raw = self._parse(raw, self.mime_map[name])
+ try:
+ raw = self._parse(raw, self.mime_map[name])
+ except XMLSyntaxError, err:
+ raise ParseError(name, unicode(err))
self.cache[name] = raw
return raw
diff --git a/src/calibre/ebooks/epub/fix/main.py b/src/calibre/ebooks/epub/fix/main.py
index 3f9ca260b3..fbfe80551d 100644
--- a/src/calibre/ebooks/epub/fix/main.py
+++ b/src/calibre/ebooks/epub/fix/main.py
@@ -14,6 +14,8 @@ from calibre.utils.zipfile import ZipFile
from calibre.utils.logging import default_log
from calibre.customize.ui import epub_fixers
from calibre.ebooks.epub.fix.container import Container
+from calibre.ebooks.epub.fix import ParseError
+
def option_parser():
parser = OptionParser(usage=_(
@@ -50,7 +52,11 @@ def main(args=sys.argv):
default_log.error(_('You must specify an epub file'))
return
epub = os.path.abspath(args[1])
- run(epub, opts, default_log)
+ try:
+ run(epub, opts, default_log)
+ except ParseError, err:
+ default_log.error(unicode(err))
+ raise SystemExit(1)
if __name__ == '__main__':
main()
diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot
index ed1b0044d2..a75a7980a8 100644
--- a/src/calibre/translations/calibre.pot
+++ b/src/calibre/translations/calibre.pot
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: calibre 0.7.14\n"
-"POT-Creation-Date: 2010-08-14 23:17+MDT\n"
-"PO-Revision-Date: 2010-08-14 23:17+MDT\n"
+"POT-Creation-Date: 2010-08-18 16:15+MDT\n"
+"PO-Revision-Date: 2010-08-18 16:15+MDT\n"
"Last-Translator: Automatically generated\n"
"Language-Team: LANGUAGE\n"
"MIME-Version: 1.0\n"
@@ -102,18 +102,18 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:293
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:300
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:281
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:284
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:289
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:292
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:172
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:111
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:136
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:138
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:878
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1163
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1166
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155
@@ -128,17 +128,17 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:186
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213
#: /home/kovid/work/calibre/src/calibre/library/database.py:913
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:358
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:370
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1001
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1070
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1671
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1673
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796
-#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:199
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:362
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:374
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1007
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1076
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1760
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1762
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1885
+#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:201
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137
-#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68
+#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:70
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:117
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64
@@ -481,9 +481,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:187
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:200
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1555
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:190
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:203
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1644
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132
msgid "News"
msgstr ""
@@ -552,15 +552,15 @@ msgstr ""
msgid "Communicate with Hanlin V3 eBook readers."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:87
+#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:96
msgid "Communicate with Hanlin V5 eBook readers."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:106
+#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:115
msgid "Communicate with the BOOX eBook reader."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:123
+#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:132
msgid "Comma separated list of directories to send e-books to on the device. The first one that exists will be used."
msgstr ""
@@ -2585,10 +2585,10 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:63
#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:30
#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:85
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:73
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:138
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:174
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:195
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:74
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:140
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:176
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91
msgid "No books selected"
msgstr ""
@@ -2674,14 +2674,29 @@ msgstr ""
msgid "Quick switch"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:132
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:145
msgid "No library found"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:133
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:146
msgid "No existing calibre library was found at %s. It will be removed from the list of known libraries."
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:178
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:183
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:540
+msgid "Not allowed"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:179
+msgid "You cannot change libraries when a device is connected."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:184
+msgid "You cannot change libraries while jobs are running."
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:22
msgid "C"
msgstr ""
@@ -2706,6 +2721,14 @@ msgstr ""
msgid "Starting conversion of %d book(s)"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:15
+msgid "Copy to library"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:16
+msgid "Copy selected books to the specified library"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:18
msgid "Del"
msgstr ""
@@ -2838,117 +2861,117 @@ msgstr ""
msgid "Manage collections"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:23
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24
msgid "E"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:23
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24
msgid "Edit metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:26
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:27
msgid "Merge book records"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:27
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:28
msgid "M"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:29
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:30
msgid "Edit metadata individually"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:32
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:33
msgid "Edit metadata in bulk"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:35
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:36
msgid "Download metadata and covers"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:38
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:39
msgid "Download only metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:40
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:41
msgid "Download only covers"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:43
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:44
msgid "Download only social metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:49
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:50
msgid "Merge into first selected book - delete others"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:52
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:53
msgid "Merge into first selected book - keep others"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:73
msgid "Cannot download metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:95
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96
msgid "social metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:97
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:98
msgid "covers"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:97
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:98
msgid "metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:99
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:103
msgid "Downloading %s for %d book(s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:122
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:124
msgid "Failed to download some metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:123
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:125
msgid "Failed to download metadata for the following:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:126
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:128
msgid "Failed to download metadata:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:127
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:129
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:608
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:558
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:987
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:566
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:998
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54
msgid "Error"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:137
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:173
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:139
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:175
msgid "Cannot edit metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:194
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:197
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:202
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:205
msgid "Cannot merge books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:198
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:206
msgid "At least two books must be selected for merging"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:202
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:210
msgid "All book formats and metadata from the selected books will be added to the first selected book.
The second and subsequently selected books will not be deleted or changed.
Please confirm you want to proceed."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:213
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:221
msgid "All book formats and metadata from the selected books will be merged into the first selected book.
After merger the second and subsequently selected books will be deleted.
All book formats of the first selected book will be kept and any duplicate formats in the second and subsequently selected books will be permanently deleted from your computer.
Are you sure you want to proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:225
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:233
msgid "You are about to merge more than 5 books. Are you sure you want to proceed?"
msgstr ""
@@ -2960,11 +2983,11 @@ msgstr ""
msgid "Fetch news"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:48
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:53
msgid "Fetching news from "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:62
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:67
msgid " fetched."
msgstr ""
@@ -2994,7 +3017,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17
#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:21
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201
msgid "Preferences"
msgstr ""
@@ -3059,11 +3082,6 @@ msgstr ""
msgid "Choose destination directory"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:540
-msgid "Not allowed"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101
msgid "You are trying to save files into the calibre library. This can cause corruption of your library. Save to disk is meant to export files from your calibre library elsewhere."
msgstr ""
@@ -3197,7 +3215,7 @@ msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:263
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:811
msgid "No books"
msgstr ""
@@ -3311,14 +3329,14 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:614
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:616
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:617
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:618
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:619
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:668
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:630
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:632
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:634
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:636
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:637
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:690
#: /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:370
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384
@@ -3562,8 +3580,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:550
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1518
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1536
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1607
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1625
msgid "Catalog"
msgstr ""
@@ -3591,7 +3609,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73
msgid ""
"Regex tips:\n"
-"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie]\n"
+"- The default regex - \\[.+\\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie]\n"
"- A regex pattern of a single dot excludes all genre tags, generating no Genre Section"
msgstr ""
@@ -4519,12 +4537,12 @@ msgstr ""
msgid "Cover browser could not be loaded"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:78
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:102
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:139
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:158
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:264
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:84
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:108
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:145
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:164
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:110
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:130
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:205
@@ -4533,48 +4551,48 @@ msgstr ""
msgid "Undefined"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133
msgid "Yes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134
msgid "No"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:122
msgid "star(s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:117
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:123
msgid "Unrated"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:156
msgid "Set '%s' to today"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:260
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:266
msgid " index:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:443
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:451
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183
msgid "Automatically number books in this series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:486
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:498
msgid "Remove all tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:507
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:519
msgid "tags to add"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:512
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:524
msgid "tags to remove"
msgstr ""
@@ -4660,145 +4678,146 @@ msgstr ""
msgid "Error communicating with device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:629
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:636
msgid "Select folder to open as device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:231
msgid "Failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:677
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:684
msgid "Error talking to device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:685
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/device.py:717
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:724
msgid "Device: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:719
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726
msgid " detected."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812
msgid "selected to send"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817
msgid "Choose format to send to device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:826
msgid "No device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827
msgid "Cannot send: No device is connected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:830
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:834
msgid "No card"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:831
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:835
msgid "Cannot send: Device has no storage card"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876
msgid "E-book:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:879
msgid "Attached, you will find the e-book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:179
msgid "by"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881
msgid "in the %s format."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:894
msgid "Sending email to"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:932
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1026
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1088
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1215
msgid "No suitable formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925
msgid "Auto convert the following books before sending via email?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:933
msgid "Could not email the following books as no suitable formats were found:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:951
msgid "Failed to email books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952
msgid "Failed to email the following books:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:956
msgid "Sent by email:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:985
msgid "News:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:986
msgid "Attached is the"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997
msgid "Sent news to"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1027
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208
msgid "Auto convert the following books before uploading to the device?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1057
msgid "Sending catalogs to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1121
msgid "Sending news to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174
msgid "Sending books to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1216
msgid "Could not upload the following books to the device, as no suitable formats were found. Convert the book(s) to a format supported by your device first."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1278
msgid "No space on device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1279
msgid "
Cannot upload books to device there is no more free space available " msgstr "" @@ -4835,7 +4854,7 @@ msgid "&Paste from clipboard" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 -msgid "Fit &cover to view" +msgid "Fit &cover within view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 @@ -5049,169 +5068,169 @@ msgstr "" msgid "Narrow" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:508 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:508 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515 msgid "Always" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515 msgid "Automatic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:516 msgid "Never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:540 msgid "Done" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 msgid "Confirmation dialogs have all been reset" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 msgid "System port selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 msgid "The value %d you have chosen for the content server port is a system port. Your operating system may not allow the server to run on this port. To be safe choose a port number larger than 1024." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:567 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:571 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:572 msgid "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:616 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:619 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:627 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:639 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:640 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:650 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:658 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:688 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:696 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:689 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:697 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 msgid "Invalid tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:713 msgid "The tweaks you entered are invalid, try resetting the tweaks to default and changing them one by one until you find the invalid setting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:743 msgid "You must select a column to delete it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:748 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:749 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:750 msgid "Do you really want to delete column %s and all its data?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:809 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:817 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:816 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:844 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:852 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:877 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:878 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:944 msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:945 msgid "The changes you made require that Calibre be restarted. Please restart as soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:968 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:979 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:999 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:993 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1004 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1005 msgid "The following books had formats listed in the database that are not actually available. The entries for the formats have been removed. You should check them manually. This can happen if you manipulate the files in the library folder directly." msgstr "" @@ -5326,318 +5345,334 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "&Overwrite author and title by default when fetching metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 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/config_ui.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:614 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "Reset all disabled &confirmation dialogs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:616 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:619 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:620 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:621 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:622 msgid "Show &splash screen at startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:623 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:624 msgid "Show &average ratings in the tags browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:625 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:626 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:627 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:628 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:629 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:631 msgid "Remove a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:633 msgid "Add a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:635 msgid "Edit settings of a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:620 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:638 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:621 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:639 msgid "User Interface &layout (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:622 -msgid "Disable all animations. Useful if you have a slow/old computer." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:623 -msgid "Disable &animations" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:624 -msgid "Show &donate button (restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:625 -msgid "&Toolbar" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:626 -msgid "&Icon size:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:627 -msgid "Show &text under icons:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:628 -msgid "Add an email address to which to send books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:629 -msgid "&Add email" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:630 -msgid "Make &default" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:631 -msgid "&Remove email" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:632 -msgid "calibre can send your books to you (or your reader) by email. Emails will be automatically sent for downloaded news to all email addresses that have Auto-send checked." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:633 -msgid "&Maximum number of waiting worker processes (needs restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:634 -msgid "Limit the max. simultaneous jobs to the available CPU &cores" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:635 -msgid "Debug &device detection" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:636 -msgid "&Check database integrity" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:637 -msgid "Open calibre &configuration directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:638 -msgid "&Install command line tools" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:639 -msgid "&Miscellaneous" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:640 -msgid "Values for the tweaks are shown below. Edit them to change the behavior of calibre" +msgid "Restriction to apply when the current library is opened:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:641 -msgid "All available tweaks" +msgid "Apply this restriction on calibre startup if the current library is being used. Also applied when switching to this library. Note that this setting is per library. " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:642 -msgid "&Current tweaks" +msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:643 -msgid "&Restore to defaults" +msgid "Disable &animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:644 -msgid "&Tweaks" +msgid "Show &donate button (restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:645 -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." +msgid "&Toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:646 -msgid "Server &port:" +msgid "&Icon size:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:647 +msgid "Show &text under icons:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:648 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:649 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:650 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:651 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:652 +msgid "calibre can send your books to you (or your reader) by email. Emails will be automatically sent for downloaded news to all email addresses that have Auto-send checked." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:653 +msgid "&Maximum number of waiting worker processes (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:654 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:655 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:656 +msgid "&Check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:657 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:658 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:659 +msgid "&Miscellaneous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:660 +msgid "Values for the tweaks are shown below. Edit them to change the behavior of calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:661 +msgid "All available tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:662 +msgid "&Current tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:663 +msgid "&Restore to defaults" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:664 +msgid "&Tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:665 +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/config_ui.py:666 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /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/config_ui.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /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/config_ui.py:649 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:669 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/config_ui.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:670 msgid "The maximum size (widthxheight) for displayed covers. Larger covers are resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:671 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:652 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:653 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:673 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:674 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:675 +msgid "Restriction (saved search) to apply:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:676 +msgid "This restriction (based on a saved search) will restrict the books the content server makes available to those matching the search. This setting is per library (i.e. you can have a different restriction per library)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:677 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:678 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:679 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:680 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:659 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:681 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:682 #: /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/config_ui.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:684 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/config_ui.py:663 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:685 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:686 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:665 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:687 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:666 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:688 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:667 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:689 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:691 msgid "&Add" msgstr "" @@ -6035,10 +6070,14 @@ msgstr "" msgid "Stop &all non device jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:111 msgid "Editing meta information for %d books" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:222 +msgid "Applying changes to %d books. This may take a while." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 msgid "Edit Meta information" msgstr "" @@ -6261,11 +6300,11 @@ msgstr "" msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:759 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:752 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:760 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -6357,10 +6396,14 @@ msgstr "" msgid "Password needed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:59 msgid "Aborting..." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76 +msgid "Working" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 msgid "The current saved search will be permanently deleted. Are you sure?" msgstr "" @@ -6741,12 +6784,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:503 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:504 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -7092,62 +7135,66 @@ msgstr "" msgid "Shift+Alt+D" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:61 msgid "Job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:62 msgid "Status" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:63 msgid "Progress" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:64 msgid "Running time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:76 msgid "There are %d running jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:102 msgid "Unknown job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:83 msgid "There are %d waiting jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:217 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:222 msgid "Cannot kill job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:220 msgid "Cannot kill jobs that communicate with the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:223 msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 msgid "Unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:281 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 msgid "Jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:299 -msgid "Click to see list of active jobs." +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +msgid "Shift+Alt+J" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +msgid "Click to see list of jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 msgid " - Jobs" msgstr "" @@ -7173,7 +7220,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:79 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:593 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:598 msgid "Card A" msgstr "" @@ -7182,7 +7229,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:81 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:595 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:600 msgid "Card B" msgstr "" @@ -7249,7 +7296,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:679 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1182 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:401 msgid "The lookup/search name is \"{0}\"" msgstr "" @@ -7355,12 +7402,12 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 msgid "Next Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 msgid "Previous Page" msgstr "" @@ -7550,15 +7597,15 @@ msgid "Restrict to" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:65 msgid "(all books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:59 msgid "({0} of {1})" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:67 msgid "({0} of all)" msgstr "" @@ -7622,86 +7669,86 @@ msgstr "" msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:193 msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:197 msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:205 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 msgid "Show all categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:213 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 msgid "Manage %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 msgid "Manage Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:231 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:234 msgid "Manage User Categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:432 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:435 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:294 msgid "Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:513 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:514 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:770 msgid "Sort by name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:770 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:771 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:771 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:774 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:780 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:780 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:785 msgid "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:786 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:789 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:789 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:792 msgid "Add your own categories to the Tag Browser" msgstr "" @@ -7756,43 +7803,43 @@ msgstr "" msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:406 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:441 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:414 msgid "
Could not convert: %s
It is a DRMed book. You must first remove the DRM using third party tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:420
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:427
msgid "Recipe Disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:435
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:442
msgid "Failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:478
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. Your donation helps keep calibre development going."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:497
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:504
msgid "There are active jobs. Are you sure you want to quit?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:500
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:507
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/ui.py:504
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:511
msgid "WARNING: Active jobs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:559
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:569
msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray."
msgstr ""
@@ -8012,36 +8059,36 @@ msgstr ""
msgid "The standard font type"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:452
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:453
msgid "&Lookup in dictionary"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:455
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:456
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138
msgid "Go to..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468
msgid "Next Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:469
msgid "Previous Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:470
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471
msgid "Document Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:472
msgid "Document End"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474
msgid "Section Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:475
msgid "Section End"
msgstr ""
@@ -9038,11 +9085,11 @@ msgid ""
"For help on an individual command: %%prog command --help\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:434
+#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:537
msgid "No label was provided"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:436
+#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:539
msgid "The label must contain only lower case letters, digits and underscores, and start with a letter"
msgstr ""
@@ -9050,31 +9097,31 @@ msgstr ""
msgid "%sAverage rating is %3.1f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:591
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:596
msgid "Main"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1822
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1911
msgid "
Migrating old database to ebook library in %s