diff --git a/resources/recipes/el_periodico.recipe b/resources/recipes/el_periodico.recipe index 2c3ed456fb..6d55280db8 100644 --- a/resources/recipes/el_periodico.recipe +++ b/resources/recipes/el_periodico.recipe @@ -5,8 +5,8 @@ __license__ = 'GPL v3' __copyright__ = '04 December 2010, desUBIKado' __author__ = 'desUBIKado' __description__ = 'Daily newspaper from Aragon' -__version__ = 'v0.05' -__date__ = '07, December 2010' +__version__ = 'v0.07' +__date__ = '06, February 2011' ''' elperiodicodearagon.com ''' @@ -38,22 +38,26 @@ class elperiodicodearagon(BasicNewsRecipe): ,'publisher' : publisher } - feeds = [(u'Arag\xf3n', u'http://elperiodicodearagon.com/RSS/2.xml'), - (u'Internacional', u'http://elperiodicodearagon.com/RSS/4.xml'), - (u'Espa\xf1a', u'http://elperiodicodearagon.com/RSS/3.xml'), - (u'Econom\xeda', u'http://elperiodicodearagon.com/RSS/5.xml'), - (u'Deportes', u'http://elperiodicodearagon.com/RSS/7.xml'), - (u'Real Zaragoza', u'http://elperiodicodearagon.com/RSS/10.xml'), - (u'Opini\xf3n', u'http://elperiodicodearagon.com/RSS/103.xml'), - (u'Escenarios', u'http://elperiodicodearagon.com/RSS/105.xml'), - (u'Sociedad', u'http://elperiodicodearagon.com/RSS/104.xml'), - (u'Gente', u'http://elperiodicodearagon.com/RSS/330.xml')] + feeds = [ + (u'Arag\xf3n', u'http://elperiodicodearagon.com/RSS/2.xml'), + (u'Internacional', u'http://elperiodicodearagon.com/RSS/4.xml'), + (u'Espa\xf1a', u'http://elperiodicodearagon.com/RSS/3.xml'), + (u'Econom\xeda', u'http://elperiodicodearagon.com/RSS/5.xml'), + (u'Deportes', u'http://elperiodicodearagon.com/RSS/7.xml'), + (u'Real Zaragoza', u'http://elperiodicodearagon.com/RSS/10.xml'), + (u'Opini\xf3n', u'http://elperiodicodearagon.com/RSS/103.xml'), + (u'Escenarios', u'http://elperiodicodearagon.com/RSS/105.xml'), + (u'Sociedad', u'http://elperiodicodearagon.com/RSS/104.xml'), + (u'Gente', u'http://elperiodicodearagon.com/RSS/330.xml') + ] extra_css = ''' - h3{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:xx-large;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} - dd{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} + h3 {font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:30px;} + h2 {font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:18px;} + h4 {font-family:Arial,Helvetica,sans-serif; font-style:italic; font-weight:normal;font-size:20px;} + .columnaDeRecursosRelacionados {font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:14px;} + img{margin-bottom: 0.4em} ''' remove_attributes = ['height','width'] @@ -82,6 +86,7 @@ class elperiodicodearagon(BasicNewsRecipe): dict(name='a', attrs={'class':'AvisoComentario'}), dict(name='div', attrs={'class':'CajaAvisoComentario'}), dict(name='div', attrs={'class':'navegaNoticias'}), + dict(name='div', attrs={'class':'Mensaje'}), dict(name='div', attrs={'id':'PaginadorDiCom'}), dict(name='div', attrs={'id':'CajaAccesoCuentaUsuario'}), dict(name='div', attrs={'id':'CintilloComentario'}), @@ -107,3 +112,15 @@ class elperiodicodearagon(BasicNewsRecipe): (re.compile(r'
', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(r'
', re.DOTALL|re.IGNORECASE), lambda match: '
')
]
+
+ # Para sustituir el video incrustado de YouTube por una imagen
+
+ def preprocess_html(self, soup):
+ for video_yt in soup.findAll('iframe',{'title':'YouTube video player'}):
+ if video_yt:
+ video_yt.name = 'img'
+ fuente = video_yt['src']
+ fuente2 = fuente.replace('http://www.youtube.com/embed/','http://img.youtube.com/vi/')
+ video_yt['src'] = fuente2 + '/0.jpg'
+
+ return soup
diff --git a/resources/recipes/tedneward.recipe b/resources/recipes/tedneward.recipe
new file mode 100644
index 0000000000..d4466f815e
--- /dev/null
+++ b/resources/recipes/tedneward.recipe
@@ -0,0 +1,33 @@
+
+__license__ = 'GPL v3'
+__copyright__ = '2011, Darko Miletic There was an error reading from file: Markdown is a simple markup language for text files, that allows for advanced formatting. To learn more visit markdown."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:64
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:100
msgid "Do not insert Table of Contents into output text when using markdown"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:15
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:13
msgid "TXT Output"
msgstr ""
@@ -6011,6 +6054,10 @@ msgstr ""
msgid "Do not remove image references before processing"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txtz_output.py:12
+msgid "TXTZ Output"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:54
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78
@@ -6118,10 +6165,10 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:504
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:134
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:247
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:251
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:993
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:216
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:249
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:253
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:994
msgid "Undefined"
msgstr ""
@@ -6265,7 +6312,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:304
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:302
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54
msgid "Error"
msgstr ""
@@ -6275,7 +6322,7 @@ msgid "Error communicating with device"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:611
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1125
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1139
#: /home/kovid/work/calibre/src/calibre/gui2/email.py:298
msgid "No suitable formats"
msgstr ""
@@ -6336,7 +6383,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1001
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1119
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1133
msgid "Auto convert the following books before uploading to the device?"
msgstr ""
@@ -6344,29 +6391,29 @@ msgstr ""
msgid "Sending catalogs to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1032
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1046
msgid "Sending news to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1086
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1100
msgid "Sending books to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1126
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1140
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:1190
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1204
msgid "No space on device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1191
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1205
msgid " Cannot upload books to device there is no more free space available "
msgstr ""
#:
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:118
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:401
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:403
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:255
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:61
msgid "Invalid template"
@@ -6374,7 +6421,7 @@ msgstr ""
#:
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:119
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:402
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:404
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:256
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:62
msgid "The template %s is invalid:"
@@ -6405,19 +6452,19 @@ msgstr ""
msgid "Save &template:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:19
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:20
msgid "How many empty books?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:24
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:25
msgid "How many empty books should be added?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:32
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:33
msgid "Set the author of the new books to:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:44
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:45
msgid "Reset author to Unknown"
msgstr ""
@@ -6450,7 +6497,7 @@ msgid "My Books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:92
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:309
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:314
msgid "Generate catalog"
msgstr ""
@@ -6608,7 +6655,7 @@ msgstr ""
#:
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_device_ui.py:49
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1167
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1175
msgid "Format"
msgstr ""
@@ -6650,20 +6697,20 @@ msgstr ""
msgid "The folder %s is not empty. Please choose an empty folder"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:85
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:87
msgid "No location"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:85
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:87
msgid "No location selected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:89
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:91
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:670
msgid "Bad location"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:90
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:92
msgid "%s is not an existing folder"
msgstr ""
@@ -6732,7 +6779,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog.py:25
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog.py:31
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:226
msgid "&Cancel"
msgstr ""
@@ -6785,7 +6832,7 @@ msgstr ""
#:
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:977
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:985
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:33
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:295
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:589
@@ -6960,7 +7007,7 @@ msgstr ""
msgid "Show detailed information about this error"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:92
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525
msgid "Copied"
msgstr ""
@@ -7060,7 +7107,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:719
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:727
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:837
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:838
msgid "Search/replace invalid"
msgstr ""
@@ -7072,35 +7119,35 @@ msgstr ""
msgid "Title cannot be set to the empty string. Book title %s not processed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:838
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:839
msgid "Search pattern is invalid: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:890
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:891
msgid ""
"Applying changes to %d books.\n"
"Phase {0} {1}%%."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:919
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:920
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560
msgid "Delete saved search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:920
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:921
msgid "The selected saved search/replace will be deleted. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:937
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:945
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:938
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:946
msgid "Save search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:938
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:939
msgid "Search/replace name:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:946
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:947
msgid "That saved search/replace already exists and will be overwritten. Are you sure?"
msgstr ""
@@ -7126,7 +7173,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:503
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:785
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:786
msgid "&Rating:"
msgstr ""
@@ -7134,7 +7181,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:505
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:426
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:786
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:787
msgid "Rating of this book. 0-5 stars"
msgstr ""
@@ -7208,7 +7255,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:440
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:977
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:978
msgid "&Date:"
msgstr ""
@@ -7433,7 +7480,7 @@ msgid "&Search and replace"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:98
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:428
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:429
msgid "Last modified: %s"
msgstr ""
@@ -7455,22 +7502,22 @@ msgid "The cover in the %s format is invalid"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:158
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:745
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:746
msgid "Cover size: %dx%d pixels"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:669
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:670
msgid "Not a valid picture"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:696
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:697
msgid "Specify title and author"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:215
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:697
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:698
msgid "You must specify a title and author before generating a cover"
msgstr ""
@@ -7512,44 +7559,44 @@ msgid "The cover is not a valid picture"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:307
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:526
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:527
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:338
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:558
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:559
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:339
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:559
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:560
msgid "You do not have permission to read the following files:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:366
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:367
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:590
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:591
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:592
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:378
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:602
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:603
msgid "Could not read metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:379
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:603
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:604
msgid "Could not read metadata from %s format"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:453
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:228
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:229
msgid " The green color indicates that the current author sort matches the current author"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:456
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:231
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:232
msgid " The red color indicates that the current author sort does not match the current author. No action is required if this is what you want."
msgstr ""
@@ -7586,57 +7633,57 @@ msgstr ""
msgid "Next"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:687
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:692
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:912
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:688
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:693
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:913
msgid "This ISBN number is valid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:695
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:919
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:696
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:920
msgid "This ISBN number is invalid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:779
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:861
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:781
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:862
msgid "Tags changed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:780
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:862
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:782
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:863
msgid "You have changed the tags. In order to use the tags editor, you must either discard or apply these changes. Apply changes?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:815
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:817
msgid "Timed out"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:816
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:818
msgid "The download of social metadata timed out, the servers are probably busy. Try again later."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:823
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:825
msgid "There were errors"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:824
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:826
msgid "There were errors downloading social metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:858
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:860
msgid "Cannot fetch metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:859
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:861
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:957
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:959
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:307
msgid "Permission denied"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:958
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:960
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:308
msgid "Could not open %s. Is it being used by another program?"
msgstr ""
@@ -7682,7 +7729,7 @@ msgid "Author S&ort: "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:422
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:214
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:215
msgid ""
"Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles.\n"
"If the box is colored green, then text matches the individual author's sort strings. If it is colored red, then the authors and this text do not match."
@@ -7694,7 +7741,7 @@ msgid "Remove unused series (Series that have no books)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:439
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:885
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:886
msgid "IS&BN:"
msgstr ""
@@ -7703,7 +7750,7 @@ msgid "dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:442
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1028
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1029
msgid "Publishe&d:"
msgstr ""
@@ -7713,7 +7760,7 @@ msgid "&Fetch metadata from server"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:448
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:620
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:621
msgid "&Browse"
msgstr ""
@@ -7722,7 +7769,7 @@ msgid "Remove border (if any) from cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:450
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:622
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:623
msgid "T&rim"
msgstr ""
@@ -7731,12 +7778,12 @@ msgid "Reset cover to default"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:452
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:624
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:625
msgid "&Remove"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:453
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:630
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:631
msgid "Download co&ver"
msgstr ""
@@ -7745,7 +7792,7 @@ msgid "Generate a default cover based on the title and author"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:455
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:631
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:632
msgid "&Generate cover"
msgstr ""
@@ -7762,7 +7809,7 @@ msgid "Remove the selected formats for this book from the database."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:461
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:445
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:446
msgid "Set the cover for the book from the selected format"
msgstr ""
@@ -8113,7 +8160,7 @@ msgid "&Author:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:826
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:827
msgid "Ta&gs:"
msgstr ""
@@ -8228,7 +8275,7 @@ msgid "Unapply (remove) tag from current tag category"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:70
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:109
msgid "Are your sure?"
msgstr ""
@@ -8272,37 +8319,37 @@ msgstr ""
msgid "Add tag to available tags and apply it to current book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:20
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:21
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/dialogs/tag_list_editor.py:83
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:883
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/dialogs/tag_list_editor.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:884
msgid "An item cannot be set to nothing. Delete it instead."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97
msgid "No item selected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98
msgid "You must select one item from the list of Available items."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105
msgid "No items selected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106
msgid "You must select at least one items from the list."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:110
msgid "Are you certain you want to delete the following items?"
msgstr ""
@@ -8566,7 +8613,7 @@ msgid "Attached, you will find the e-book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:186
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:184
msgid "by"
msgstr ""
@@ -8667,50 +8714,50 @@ msgstr ""
msgid "Regular expression (?P Search the list of books by title, author, publisher, tags, comments, etc. You can use the N or F3 keys to go to the next match."
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203
+msgid "Change the way searching for books works"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:215
@@ -8867,11 +8910,11 @@ msgstr ""
msgid "Delete current saved search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:353
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:355
msgid "Y"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:388
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:390
msgid "Edit template"
msgstr ""
@@ -8885,38 +8928,38 @@ msgstr ""
msgid "Size (MB)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:389
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:387
msgid "Book %s of %s."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:738
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1287
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:736
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1295
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:589
msgid "The lookup/search name is \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:744
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1289
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:742
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1297
msgid "This book's UUID is \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:974
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:982
msgid "In Library"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:978
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:986
msgid "Size"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1187
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1195
msgid "Book %s of %s."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1267
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1275
msgid "Marked for deletion"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1270
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1278
msgid "Double click to edit me Click Find again to go to first match"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1379
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1378
msgid "Sort by name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1379
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1378
msgid "Sort by popularity"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1380
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1379
msgid "Sort by average rating"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1383
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1382
msgid "Set the sort order for entries in the Tag Browser"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1389
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1388
msgid "Match all"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1389
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1388
msgid "Match any"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1394
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1393
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:1398
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1397
msgid "Manage &user categories"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1401
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1400
msgid "Add your own categories to the Tag Browser"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:64
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:65
msgid "Convert book %(num)d of %(total)d (%(title)s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:92
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:204
-msgid "Could not convert some books"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:205
+msgid "Could not convert some books"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:94
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:206
msgid "Could not convert %d of %d books, because no suitable source format was found."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:122
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:125
msgid "Queueing books for bulk conversion"
msgstr ""
@@ -10759,15 +10887,15 @@ msgstr ""
msgid "Convert book %d of %d (%s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:251
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:254
msgid "Fetch news from "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:321
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:327
msgid "Convert existing"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:322
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:328
msgid "The following books have already been converted to %s format. Do you wish to reconvert them?"
msgstr ""
@@ -10795,38 +10923,38 @@ msgstr ""
msgid "You have started calibre in debug mode. After you quit calibre, the debug log will be available in the file: %s The log will be displayed automatically."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:494
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:496
msgid "Conversion Error"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:519
msgid "Recipe Disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:533
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535
msgid "Failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:570
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:572
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:596
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:598
msgid "There are active jobs. Are you sure you want to quit?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:599
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:601
msgid ""
" is communicating with the device! Migrating old database to ebook library in %s
' % self.code_value(line)
elif c == 't':
- indent_state[c] = not indent_state[c]
- if indent_state[c]:
- basic_indent = True
+ indent_state['t'] = not indent_state['t']
elif c == 'T':
# Ensure we only store the value on the first T set for the line.
if not indent_state['T']:
- adv_indent = True
adv_indent_val = self.code_value(line)
else:
# We detected a T previously on this line.
@@ -610,10 +631,23 @@ class PML_HTMLizer(object):
text = self.end_line()
parsed.append(text)
+ # Basic indent will be set if the \t starts the line or
+ # if we are in a continuing \t block.
if basic_indent:
- parsed.insert(0, self.STATES_TAGS['t'][0])
- parsed.append(self.STATES_TAGS['t'][1])
- elif adv_indent:
+ # if the \t started the line and either it ended the line or the \t
+ # block is still open use a left margin.
+ if indent_state['st'] and (indent_state['et'] or indent_state['t']):
+ parsed.insert(0, self.STATES_TAGS['t'][0])
+ parsed.append(self.STATES_TAGS['t'][1])
+ # Use a text indent instead of a margin.
+ # This handles cases such as:
+ # \tO\tne upon a time...
+ else:
+ parsed.insert(0, self.STATES_TAGS['T'][0] % '5%')
+ parsed.append(self.STATES_TAGS['T'][1])
+ # \t will override \T's on the line.
+ # We only handle \T's that started the line.
+ elif indent_state['T'] and indent_state['sT']:
parsed.insert(0, self.STATES_TAGS['T'][0] % adv_indent_val)
parsed.append(self.STATES_TAGS['T'][1])
indent_state['T'] = False
diff --git a/src/calibre/gui2/preferences/tweaks.py b/src/calibre/gui2/preferences/tweaks.py
index a0f9d1aab0..10056ccb7b 100644
--- a/src/calibre/gui2/preferences/tweaks.py
+++ b/src/calibre/gui2/preferences/tweaks.py
@@ -227,8 +227,12 @@ class PluginTweaks(QDialog): # {{{
self.highlighter = PythonHighlighter(self.edit.document())
self.l = QVBoxLayout()
self.setLayout(self.l)
- self.l.addWidget(QLabel(
- _('Add/edit tweaks for any custom plugins you have installed.')))
+ self.msg = QLabel(
+ _('Add/edit tweaks for any custom plugins you have installed. '
+ 'Documentation for these tweaks should be available '
+ 'on the website from where you downloaded the plugins.'))
+ self.msg.setWordWrap(True)
+ self.l.addWidget(self.msg)
self.l.addWidget(self.edit)
self.edit.setPlainText(raw)
self.bb = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel,
diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py
index 4485e63373..4102aea412 100644
--- a/src/calibre/gui2/viewer/documentview.py
+++ b/src/calibre/gui2/viewer/documentview.py
@@ -440,16 +440,17 @@ class Document(QWebPage): # {{{
@property
def height(self):
- j = self.javascript('document.body.offsetHeight', 'int')
+ # Note that document.body.offsetHeight does not include top and bottom
+ # margins on body and in some cases does not include the top margin on
+ # the first element inside body either. See ticket #8791 for an example
+ # of the latter.
q = self.mainFrame().contentsSize().height()
- if q == j:
- return j
- if min(j, q) <= 0:
- return max(j, q)
- window_height = self.window_height
- if j == window_height:
- return j if q < 1.2*j else q
- return j
+ if q < 0:
+ # Don't know if this is still needed, but it can't hurt
+ j = self.javascript('document.body.offsetHeight', 'int')
+ if j >= 0:
+ q = j
+ return q
@property
def width(self):
diff --git a/src/calibre/manual/conversion.rst b/src/calibre/manual/conversion.rst
index 60f8a10fc6..73358e0f72 100644
--- a/src/calibre/manual/conversion.rst
+++ b/src/calibre/manual/conversion.rst
@@ -561,9 +561,10 @@ format, whether input or output are available in the conversion dialog under the
Convert Microsoft Word documents
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-|app| does not directly convert .doc files from Microsoft Word. However, in Word, you can save the document
+|app| does not directly convert .doc/.docx files from Microsoft Word. However, in Word, you can save the document
as HTML and then convert the resulting HTML file with |app|. When saving as HTML, be sure to use the
-"Save as Web Page, Filtered" option as this will produce clean HTML that will convert well.
+"Save as Web Page, Filtered" option as this will produce clean HTML that will convert well. Note that Word
+produces really messy HTML, converting it can take a long time, so be patient.
There is a Word macro package that can automate the conversion of Word documents using |app|. It also makes
generating the Table of Contents much simpler. It is called BookCreator and is available for free
diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot
index 4b74a68108..6ddde0e6e2 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.44\n"
-"POT-Creation-Date: 2011-02-04 11:04+MST\n"
-"PO-Revision-Date: 2011-02-04 11:04+MST\n"
+"POT-Creation-Date: 2011-02-10 13:08+MST\n"
+"PO-Revision-Date: 2011-02-10 13:08+MST\n"
"Last-Translator: Automatically generated\n"
"Language-Team: LANGUAGE\n"
"MIME-Version: 1.0\n"
@@ -23,7 +23,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:87
#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:88
#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74
-#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76
+#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77
#: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24
#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:466
#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70
@@ -47,9 +47,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:31
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:32
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:73
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:382
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:387
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:619
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:379
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:384
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:54
@@ -70,7 +70,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/rtf.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/snb.py:16
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:61
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txtz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:42
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:68
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:81
@@ -84,11 +85,11 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:963
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1029
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:111
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:145
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:152
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:65
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:112
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26
@@ -113,51 +114,52 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:312
#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:314
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:299
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:306
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:304
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:311
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:332
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:335
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:120
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:149
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1078
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:55
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:67
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:153
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1092
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:56
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:145
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:185
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:731
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:732
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/email.py:236
#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:424
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:443
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:970
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1163
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:422
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:441
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:978
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1171
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:70
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:167
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:184
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:112
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:191
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:432
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:444
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1534
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1637
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2540
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2542
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2673
-#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:430
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:436
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:446
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1539
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2545
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2547
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2678
+#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:233
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:158
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:161
#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:79
-#: /home/kovid/work/calibre/src/calibre/utils/localization.py:129
+#: /home/kovid/work/calibre/src/calibre/utils/localization.py:131
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78
@@ -197,9 +199,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:525
#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:18
#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:279
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:301
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:190
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:280
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206
msgid "Preferences"
msgstr ""
@@ -239,6 +241,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:311
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:332
msgid "Read metadata from %s files"
msgstr ""
@@ -246,190 +249,200 @@ msgstr ""
msgid "Read metadata from ebooks in RAR archives"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:332
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:343
msgid "Read metadata from ebooks in ZIP archives"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:345
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:355
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:356
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:366
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:398
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:408
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:409
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:419
msgid "Set metadata in %s files"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:430
msgid "Set metadata from %s files"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:727
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:750
msgid "Look and Feel"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:741
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:764
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798
msgid "Interface"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:733
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:756
msgid "Adjust the look and feel of the calibre interface to suit your tastes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:739
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:762
msgid "Behavior"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768
msgid "Change the way calibre behaves"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:750
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:773
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:217
msgid "Add your own columns"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:756
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779
msgid "Add/remove your own columns to the calibre book list"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:761
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:784
msgid "Customize the toolbar"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:767
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790
msgid "Customize the toolbars and context menus, changing which actions are available in each"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:773
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796
+msgid "Customize searching"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802
+msgid "Customize the way searching for books works in calibre"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:807
msgid "Input Options"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:831
msgid "Conversion"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:813
msgid "Set conversion options specific to each input format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:784
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:818
msgid "Common Options"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:824
msgid "Set conversion options common to all formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:795
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829
msgid "Output Options"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:801
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:835
msgid "Set conversion options specific to each output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:806
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840
msgid "Adding books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:842
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:854
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:866
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:878
msgid "Import/Export"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:812
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:846
msgid "Control how calibre reads metadata from files when adding books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:818
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852
msgid "Saving books to disk"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:824
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:858
msgid "Control how calibre exports files from its database to disk when using Save to disk"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:830
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864
msgid "Sending books to devices"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:836
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870
msgid "Control how calibre transfers files to your ebook reader"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:842
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876
msgid "Metadata plugboards"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:848
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882
msgid "Change metadata fields before saving/sending"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:853
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887
msgid "Template Functions"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:903
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:914
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:889
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:925
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:937
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:948
msgid "Advanced"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:859
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893
msgid "Create your own template functions"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:898
msgid "Sharing books by email"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:866
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:878
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:900
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:912
msgid "Sharing"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:904
msgid "Setup sharing of books via email. Can be used for automatic sending of downloaded news to your devices"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:910
msgid "Sharing over the net"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:916
msgid "Setup the calibre Content Server which will give you access to your calibre library from anywhere, on any device, over the internet"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:889
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:269
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:923
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:267
msgid "Plugins"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:895
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:929
msgid "Add/remove/customize various bits of calibre functionality"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:901
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:935
msgid "Tweaks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:907
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:941
msgid "Fine tune how calibre behaves in various contexts"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:912
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:946
msgid "Miscellaneous"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:918
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:952
msgid "Miscellaneous advanced configuration"
msgstr ""
@@ -650,11 +663,11 @@ msgstr ""
msgid "Communicate with Android phones."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:62
+#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:73
msgid "Comma separated list of directories to send e-books to on the device. The first one that exists will be used"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:108
+#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:120
msgid "Communicate with S60 phones."
msgstr ""
@@ -725,7 +738,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:262
#: /home/kovid/work/calibre/src/calibre/library/database2.py:244
#: /home/kovid/work/calibre/src/calibre/library/database2.py:257
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2404
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2409
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:150
msgid "News"
msgstr ""
@@ -733,8 +746,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:634
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2385
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2372
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2390
msgid "Catalog"
msgstr ""
@@ -976,15 +989,15 @@ msgstr ""
msgid "Communicate with the JetBook Mini reader."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:43
+#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:44
msgid "Communicate with the Kindle eBook reader."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:170
+#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:171
msgid "Communicate with the Kindle 2/3 eBook reader."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:211
+#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:231
msgid "Communicate with the Kindle DX eBook reader."
msgstr ""
@@ -1175,6 +1188,10 @@ msgstr ""
msgid "Communicate with the Sunstech EB700 reader."
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:99
+msgid "Communicate with the Stash W950 reader."
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:261
msgid "Unable to detect the %s disk drive. Try rebooting."
msgstr ""
@@ -2121,103 +2138,103 @@ msgstr ""
msgid "TEMPLATE ERROR"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:544
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:541
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:554
msgid "No"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:544
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:541
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:554
msgid "Yes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:615
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:421
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:975
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:419
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:983
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:304
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:590
msgid "Title"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:619
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:426
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:976
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:424
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:984
msgid "Author(s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:620
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:617
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72
msgid "Publisher"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:621
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49
msgid "Producer"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:622
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:619
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:40
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1182
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:381
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1190
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:188
msgid "Comments"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:624
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:166
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:621
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:30
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:371
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1178
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:369
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1186
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:161
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:657
msgid "Tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:626
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:164
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:623
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:388
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1187
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:386
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1195
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:109
msgid "Series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:627
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:624
msgid "Language"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:629
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1170
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:626
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1178
msgid "Timestamp"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:631
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:163
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:628
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:65
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:259
msgid "Published"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:633
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:630
msgid "Rights"
msgstr ""
@@ -2688,7 +2705,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:176
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:220
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:702
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:703
msgid "Book %s of %s"
msgstr ""
@@ -2696,11 +2713,7 @@ msgstr ""
msgid "HTML TOC generation options."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:130
-msgid "Unknown publisher"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:165
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:169
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655
msgid "Rating"
@@ -2741,7 +2754,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:32
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:37
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/output.py:21
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:34
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:41
msgid "Add Table of Contents to beginning of the book."
msgstr ""
@@ -2962,7 +2975,7 @@ msgid "Do not reduce the size or bit depth of images. Images have their size and
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:96
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:97
msgid "Table of Contents:"
msgstr ""
@@ -2978,12 +2991,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:25
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:37
msgid "Specify the character encoding of the output document. The default is utf-8."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:29
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:37
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:44
msgid "The maximum number of characters per line. This splits on the first space before the specified value. If no space is found the line will be broken at the space after and will exceed the specified value. Also, there is a minimum of 25 characters. Use 0 to disable line splitting."
msgstr ""
@@ -3017,7 +3030,7 @@ msgstr ""
msgid " (Preface)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32
msgid ""
"Paragraph structure.\n"
"choices are ['auto', 'block', 'single', 'print', 'unformatted']\n"
@@ -3027,7 +3040,7 @@ msgid ""
"* print: Assume every line starting with 2+ spaces or a tab starts a paragraph.* unformatted: Most lines have hard line breaks, few/no blank lines or indents."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:38
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:42
msgid ""
"Formatting used within the document.* auto: Automatically decide which formatting processor to use.\n"
"* none: Do not process the document formatting. Everything is a paragraph and no styling is applied.\n"
@@ -3036,23 +3049,27 @@ msgid ""
"* markdown: Processing using markdown formatting. To learn more about markdown see"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:48
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:52
msgid "Normally extra spaces are condensed into a single space. With this option all spaces will be displayed."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:51
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:55
+msgid "Normally extra space at the beginning of lines is retained. With this option they will be removed."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:58
msgid "Do not insert a Table of Contents into the output text."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:31
msgid "Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' for compatibility with Mac OS 9 and earlier. For Mac OS X use 'unix'. 'system' will default to the newline type used by this OS."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:44
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:51
msgid "Force splitting on the max-line-length value when no space is present. Also allows max-line-length to be below the minimum"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:49
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:56
msgid ""
"Formatting used within the document.\n"
"* plain: Produce plain text.\n"
@@ -3060,128 +3077,136 @@ msgid ""
"* textile: Produce Textile formatted text."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:55
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:62
msgid "Do not remove links within the document. This is only useful when paired with a txt-output-formatting option that is not none because links are always removed with plain text output."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:60
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:67
msgid "Do not remove image references within the document. This is only useful when paired with a txt-output-formatting option that is not none because links are always removed with plain text output."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:70
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:71
msgid "Send file to storage card instead of main memory by default"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:73
msgid "Confirm before deleting"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:74
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:75
msgid "Main window geometry"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:76
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:77
msgid "Notify when a new version is available"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:78
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:79
msgid "Use Roman numerals for series number"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:80
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:81
msgid "Sort tags list by name, popularity, or rating"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:82
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:83
msgid "Number of covers to show in the cover browsing mode"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:84
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85
msgid "Defaults for conversion to LRF"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:86
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87
msgid "Options for the LRF ebook viewer"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90
msgid "Formats that are viewed using the internal viewer"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92
msgid "Columns to be displayed in the book list"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93
msgid "Automatically launch content server on application startup"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:94
msgid "Oldest news kept in database"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:94
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95
msgid "Show system tray icon"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:96
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:97
msgid "Upload downloaded news to device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:98
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99
msgid "Delete books from library after uploading to device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:100
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101
msgid "Show the cover flow in a separate window instead of in the main calibre window"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:102
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:103
msgid "Disable notifications from the system tray icon"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:104
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:105
msgid "Default action to perform when send to device button is clicked"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:126
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:110
+msgid "Start searching as you type. If this is disabled then search will only take place when the Enter or Return key is pressed."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:113
+msgid "When searching, show all books with search results highlighted instead of showing only the matches. You can use the N or F3 keys to go to the next match."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:131
msgid "Maximum number of waiting worker processes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:128
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133
msgid "Download social metadata (tags/rating/etc.)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:135
msgid "Overwrite author and title with new metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:132
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:101
msgid "Automatically download the cover, if available"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:134
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:139
msgid "Limit max simultaneous jobs to number of CPUs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:136
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:141
msgid "tag browser categories not to display"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:138
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:143
msgid "The layout of the user interface"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:140
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:145
msgid "Show the average rating per item indication in the tag browser"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:142
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:147
msgid "Disable UI animations"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:410
+#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:415
msgid "Choose Files"
msgstr ""
@@ -3228,7 +3253,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:192
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:308
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:528
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:529
msgid "Books"
msgstr ""
@@ -3285,7 +3310,7 @@ msgid "Merged some books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:247
-msgid "Some duplicates were found and merged into the following existing books:"
+msgid "The following duplicate books were found and incoming book formats were processed and merged into your Calibre database according to your automerge settings:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:256
@@ -3489,95 +3514,97 @@ msgstr ""
msgid "Failed to rename the library at %s. The most common cause for this is if one of the files in the library is open in another program."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:243
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:244
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:53
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:78
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:360
#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:424
#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:430
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:102
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:275
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:273
msgid "Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:244
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:245
msgid "All files from %s will be permanently deleted. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:263
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:265
msgid "none"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:264
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:266
msgid "Backup status"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:265
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:267
msgid "Book metadata files remaining to be written: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:271
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:273
msgid "Backup metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:272
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:274
msgid "Metadata will be backed up while calibre is running, at the rate of approximately 1 book every three seconds."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:304
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:106
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:111
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:286
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:340
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:284
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:338
msgid "Success"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:305
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:307
msgid "Found no errors in your calibre library database. Do you want calibre to check if the files in your library match the information in the database?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:310
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:312
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:150
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:672
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:904
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:905
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:101
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:190
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:186
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:268
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:308
msgid "Failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:311
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:313
msgid "Database integrity check failed, click Show details for details."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:316
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:318
msgid "No problems found"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:319
msgid "The files in your library match the information in the database."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:326
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:328
msgid "No library found"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:327
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:329
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:380
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:385
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:394
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:399
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:780
msgid "Not allowed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:381
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:395
msgid "You cannot change libraries while using the environment variable CALIBRE_OVERRIDE_DATABASE_PATH."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:386
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:400
msgid "You cannot change libraries while jobs are running."
msgstr ""
@@ -3598,7 +3625,7 @@ msgid "Bulk convert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:506
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:508
msgid "Cannot convert"
msgstr ""
@@ -3790,19 +3817,19 @@ msgstr ""
msgid "(delete from library)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:102
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:103
msgid "Setup email based sharing of books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:120
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:121
msgid "D"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:120
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:121
msgid "Send to device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:139
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:140
msgid "Connect/share"
msgstr ""
@@ -3879,7 +3906,7 @@ msgid "covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:101
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:224
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:227
msgid "metadata"
msgstr ""
@@ -3942,6 +3969,7 @@ msgid "F1"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/help.py:16
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:79
msgid "Help"
msgstr ""
@@ -3954,7 +3982,7 @@ msgid "Move to next highlighted match"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/next_match.py:13
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:353
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:355
msgid "N"
msgstr ""
@@ -3993,7 +4021,7 @@ msgid "Ctrl+P"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:24
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:201
msgid "Run welcome wizard"
msgstr ""
@@ -4001,16 +4029,16 @@ msgstr ""
msgid "Restart in debug mode"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:38
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:43
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:39
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:44
msgid "Cannot configure"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:39
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:40
msgid "Cannot configure while there are running jobs."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:44
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:45
msgid "Cannot configure before calibre is restarted."
msgstr ""
@@ -4210,60 +4238,60 @@ msgstr ""
msgid "Searching in"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:221
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
msgid "Adding..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:234
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
msgid "Searching in all sub-directories..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
msgid "Path error"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "The specified directory could not be processed."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:250
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821
msgid "No books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:251
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
msgid "No books found"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:315
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
msgid "Added"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:328
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
msgid "Adding failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:329
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
msgid "The add books process seems to have hung. Try restarting calibre and adding the books in smaller increments, until you find the problem book."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:344
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:368
msgid "Duplicates found!"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:345
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
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:348
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
msgid "Adding duplicates..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:417
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
msgid "Saving..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/add.py:492
+#: /home/kovid/work/calibre/src/calibre/gui2/add.py:516
msgid "Saved"
msgstr ""
@@ -4413,8 +4441,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:132
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:145
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1168
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1176
msgid "Path"
msgstr ""
@@ -4424,15 +4452,15 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:134
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:135
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:138
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:377
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:375
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:118
msgid "Formats"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:979
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1171
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:987
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1179
msgid "Collections"
msgstr ""
@@ -4442,11 +4470,11 @@ msgid "Click to open"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:370
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1177
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1181
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:368
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:374
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:380
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1185
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:48
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83
@@ -4478,7 +4506,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:14
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txtz_output.py:13
msgid "Options specific to"
msgstr ""
@@ -4494,7 +4523,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pml_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:14
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txtz_output.py:13
msgid "output"
msgstr ""
@@ -4523,30 +4553,31 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:56
#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:58
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:91
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53
#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:40
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:64
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:130
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:81
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/conversion_ui.py:54
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:81
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:65
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:139
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:135
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:60
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:113
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:86
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:46
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:67
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:59
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:75
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123
msgid "Form"
msgstr ""
@@ -5424,50 +5455,50 @@ msgstr ""
msgid "&Monospaced font family:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:46
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200
msgid "Metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:48
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:49
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:178
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:171
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:642
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:643
msgid "Choose cover for "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:185
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:178
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:650
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:651
msgid "Cannot read"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:186
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:179
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:651
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:652
msgid "You do not have permission to read the file: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:194
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:201
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:196
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:659
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:660
msgid "Error reading file"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:195
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:197
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:188
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:660
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:661
msgid "
"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:202
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:204
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:196
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:670
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:671
msgid " is not a valid picture"
msgstr ""
@@ -5535,7 +5566,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:517
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:433
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:292
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:293
msgid "&Series:"
msgstr ""
@@ -5545,7 +5576,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:519
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:434
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:435
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:291
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:292
msgid "List of known series. You can add new series."
msgstr ""
@@ -5943,31 +5974,43 @@ msgstr ""
msgid "TXT Input"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:59
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:92
+msgid "Structure"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:93
msgid "Paragraph style:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:60
-msgid "Preserve &spaces"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:61
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:94
msgid "Formatting style:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:62
-msgid "Markdown Options"
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:95
+msgid "Common"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:63
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:96
+msgid "Preserve &spaces"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:97
+msgid "Remove indents at the beginning of lines"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:98
+msgid "Markdown"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:99
msgid "
Words separated by spaces are ANDed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:183
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:185
msgid "&Go!"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:189
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:191
msgid "Do Quick Search (you can also press the Enter key)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:195
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:197
msgid "Reset Quick Search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:198
-msgid "&Highlight"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:199
-msgid "When searching, highlight matched books, instead of restricting the book list to the matches.
"
msgstr ""
@@ -9006,12 +9049,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:538
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:539
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:539
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:540
msgid "Previous Page"
msgstr ""
@@ -9174,39 +9217,39 @@ msgstr ""
msgid "Title &sort:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:219
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:220
msgid "Author s&ort:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:347
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:348
msgid "&Number:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:715
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:716
msgid "Invalid cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:716
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:717
msgid "Could not change cover as the image is invalid."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:743
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:744
msgid "This book has no cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:793
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:794
msgid "stars"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:827
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:828
msgid "Tags categorize the book. This is particularly useful while searching.
They can be any wordsor phrases, separated by commas."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:926
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:927
msgid "&Publisher:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:996
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:997
msgid "Clear date"
msgstr ""
@@ -9218,36 +9261,36 @@ msgstr ""
msgid "No matches found for this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:191
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:187
msgid "Failed to download metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:224
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:227
msgid "cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:225
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228
msgid "Downloaded"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:225
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228
msgid "Failed to get"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:229
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:232
msgid "%s %s for: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:288
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:291
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:160
msgid "Done"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:289
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:292
msgid "Successfully downloaded metadata for %d out of %d books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:291
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:294
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661
msgid "Details"
msgstr ""
@@ -9282,43 +9325,70 @@ msgstr ""
msgid "Restore settings to default values. You have to click Apply to actually save the default settings."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:61
-msgid "Here you can control how calibre will read metadata from the files you add to it. calibre can either read metadata from the contents of the file, or from the filename."
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding.py:28
+msgid "Ignore duplicate incoming formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:62
-msgid "Read &metadata from &file contents rather than file name"
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding.py:29
+msgid "Overwrite existing duplicate formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:63
-msgid "Swap the firstname and lastname of the author. This affects only metadata read from file names."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:64
-msgid "&Swap author firstname and lastname"
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding.py:30
+msgid "Create new record for each duplicate format"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:65
+msgid "Here you can control how calibre will read metadata from the files you add to it. calibre can either read metadata from the contents of the file, or from the filename."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:66
+msgid "Read &metadata from &file contents rather than file name"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:67
+msgid "Swap the firstname and lastname of the author. This affects only metadata read from file names."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:68
+msgid "&Swap author firstname and lastname"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:69
msgid ""
-"If an existing book with a similar title and author is found that does not have the format being added, the format is added\n"
-"to the existing book, instead of creating a new entry. If the existing book already has the format, then it is silently ignored.\n"
+"Automerge: If books with similar titles and authors found, merge the incoming formats automatically into\n"
+"existing book records. The box to the right controls what happens when an existing record already has\n"
+"the incoming format. Note that this option also affects the Copy to library action.\n"
"\n"
"Title match ignores leading indefinite articles (\"the\", \"a\", \"an\"), punctuation, case, etc. Author match is exact."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:69
-msgid "If books with similar titles and authors found, &merge the new files automatically"
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:74
+msgid "&Automerge added books if they already exist in the calibre library:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:70
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:75
+msgid ""
+"Automerge: If books with similar titles and authors found, merge the incoming formats automatically into\n"
+"existing book records. This box controls what happens when an existing record already has\n"
+"the incoming format: \n"
+"\n"
+"Ignore duplicate incoming files - means that existing files in your calibre library will not be replaced\n"
+"Overwrite existing duplicate files - means that existing files in your calibre library will be replaced\n"
+"Create new record for each duplicate file - means that a new book entry will be created for each duplicate file\n"
+"\n"
+"Title matching ignores leading indefinite articles (\"the\", \"a\", \"an\"), punctuation, case, etc.\n"
+"Author matching is exact."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:85
msgid "&Tags to apply when adding a book:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:71
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:86
msgid "A comma-separated list of tags that will be applied to books added to the library"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:87
msgid "&Configure metadata from file name"
msgstr ""
@@ -9713,95 +9783,91 @@ msgstr ""
msgid "Wide"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:52
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:51
msgid "Medium"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:52
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:51
msgid "Small"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:52
msgid "Large"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:56
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:55
msgid "Always"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:56
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:55
msgid "Automatic"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:57
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:56
msgid "Never"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:59
msgid "By first letter"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:59
msgid "Disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:61
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:60
msgid "Partitioned"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:140
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:136
msgid "User Interface &layout (needs restart):"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:141
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:137
msgid "&Number of covers to show in browse mode (needs restart):"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:142
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:138
msgid "Choose &language (requires restart):"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:143
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:139
msgid "Show &average ratings in the tags browser"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:144
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:140
msgid "Disable all animations. Useful if you have a slow/old computer."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:145
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:141
msgid "Disable &animations"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:146
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:142
msgid "Enable system &tray icon (needs restart)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:147
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:143
msgid "Show &splash screen at startup"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:148
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:144
msgid "Disable ¬ifications in system tray"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:149
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:145
msgid "Use &Roman numerals for series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:150
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:146
msgid "Show cover &browser in a separate window (needs restart)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:151
-msgid "Search as you type"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:152
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:147
msgid "Tags browser category partitioning method:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:153
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:148
msgid ""
"Choose how tag browser subcategories are displayed when\n"
"there are more items than the limit. Select by first\n"
@@ -9810,69 +9876,70 @@ msgid ""
"if you never want subcategories"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:158
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:153
msgid "Collapse when more items than:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:159
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:154
msgid ""
"If a Tag Browser category has more than this number of items, it is divided\n"
"up into sub-categories. If the partition method is set to disable, this value is ignored."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:161
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:156
msgid "&Toolbar"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:162
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:157
msgid "&Icon size:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:163
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:158
msgid "Show &text under icons:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:164
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:159
msgid "&Split the toolbar into two toolbars"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:165
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:160
msgid "Interface font:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:166
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:161
msgid "Change &font (needs restart)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:84
msgid "&Apply"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230
msgid "Restore &defaults"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231
msgid "Save changes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:232
msgid "Cancel and return to overview"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:287
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:288
msgid "Restoring to defaults not supported for"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:322
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:323
msgid "Some of the changes you made require a restart. Please restart calibre as soon as possible."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:325
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:326
msgid "The changes you have made require calibre be restarted immediately. You will not be allowed set any more preferences, until you restart."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:330
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:331
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120
msgid "Restart needed"
msgstr ""
@@ -9984,89 +10051,89 @@ msgstr ""
msgid "Delete plugboard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:179
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:177
msgid "%(plugin_type)s %(plugins)s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:180
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:178
msgid "plugins"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:189
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:187
msgid ""
"\n"
"Customization: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:218
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:216
msgid "Search for plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:226
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:224
msgid "No matches"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:227
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:225
msgid "Could not find any matching plugins"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:268
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:266
msgid "Add plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:276
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:274
msgid "Installing plugins is a security risk. Plugins can contain a virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:287
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:285
msgid "Plugin {0} successfully installed under {1} plugins. You may have to restart calibre for the plugin to take effect."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:295
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:293
msgid "No valid plugin path"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:296
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:294
msgid "%s is not a valid plugin path"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:305
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:303
msgid "Select an actual plugin under %s to customize"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:311
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:309
msgid "Plugin cannot be disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:312
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:310
msgid "The plugin: %s cannot be disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:322
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:320
msgid "Plugin not customizable"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:323
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:321
msgid "Plugin: %s does not need customization"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:329
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:327
msgid "Must restart"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:330
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:328
msgid "You must restart calibre before you can configure the %s plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:335
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:333
msgid "Plugin {0} successfully removed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:343
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:341
msgid "Cannot remove builtin plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:344
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:342
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
msgstr ""
@@ -10158,6 +10225,34 @@ msgstr ""
msgid "Save metadata in &OPF file"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:60
+msgid "Search as you &type"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:61
+msgid "&Highlight search results instead of restricting the book list to the results"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:62
+msgid "What to search by default"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:63
+msgid "When you enter a search term without a prefix, by default calibre will search all metadata for matches. For example, entering, \"asimov\" will search not just authors but title/tags/series/comments/etc. Use these options if you would like to change this behavior."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:64
+msgid "&Limit the searched metadata"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:65
+msgid "&Columns that non-prefixed searches are limited to:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:66
+msgid "Note that this option affects all searches, including saved searches and restrictions. Therefore, if you use this option, it is best to ensure that you always use prefixes in your saved searches. For example, use \"series:Foundation\" rather than just \"Foundation\" in a saved search"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending.py:28
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:70
msgid "Manual management"
@@ -10473,46 +10568,79 @@ msgstr ""
msgid "Remove selected actions from toolbar"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:43
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:112
+msgid "This tweak has it default value"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:114
+msgid "This tweak has been customized"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:231
+msgid "Add/edit tweaks for any custom plugins you have installed. Documentation for these tweaks should be available on the website from where you downloaded the plugins."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:269
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:309
+msgid "There was a syntax error in your tweak. Click the show details button for details."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:322
msgid "Invalid tweaks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:44
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:323
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/preferences/tweaks_ui.py:50
-msgid "Values for the tweaks are shown below. Edit them to change the behavior of calibre. Your changes will only take effect after a restart of calibre."
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:76
+msgid "Values for the tweaks are shown below. Edit them to change the behavior of calibre. Your changes will only take effect after a restart of calibre."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:51
-msgid "All available tweaks"
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:77
+msgid "Edit tweaks for any custom plugins you have installed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:52
-msgid "&Current tweaks"
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:78
+msgid "&Plugin tweaks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:94
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:271
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:80
+msgid "Edit tweak"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:81
+msgid "Restore this tweak to its default value"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:82
+msgid "Restore &default"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:83
+msgid "Apply any changes you made to this tweak"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:93
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:616
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:277
msgid "Search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:315
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:314
msgid "The selected search will be permanently deleted. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:358
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:357
msgid "Search (For Advanced Search click the button to the left)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:428
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:424
msgid "Saved Searches"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:430
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:426
msgid "Choose saved search or enter name for new saved search"
msgstr ""
@@ -10663,11 +10791,11 @@ msgstr ""
msgid "The saved search name %s is already used."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1321
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1320
msgid "Find item in tag browser"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1324
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1323
msgid ""
"Search for items. This is a \"contains\" search; items containing the\n"
"text anywhere in the name will be found. You can limit the search\n"
@@ -10677,77 +10805,77 @@ msgid ""
"containing the text \"foo\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1333
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1332
msgid "ALT+f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1337
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1336
msgid "F&ind"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1338
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1337
msgid "Find the first/next matching item"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1345
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1344
msgid "Collapse all categories"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1366
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1365
msgid "No More Matches.
\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:603
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:605
msgid "Active jobs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:669
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:671
msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray."
msgstr ""
@@ -11090,36 +11218,36 @@ msgstr ""
msgid "You are in the middle of editing a keyboard shortcut first complete that, by clicking outside the shortcut editing box."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:514
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:515
msgid "&Lookup in dictionary"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:517
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:518
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:139
msgid "Go to..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:529
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:530
msgid "Next Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:530
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:531
msgid "Previous Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:532
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:533
msgid "Document Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:533
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:534
msgid "Document End"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:535
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:536
msgid "Section Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:536
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:537
msgid "Section End"
msgstr ""
@@ -11621,50 +11749,50 @@ msgstr ""
msgid "Turn on the &content server"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:306
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:311
msgid "today"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:309
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:314
msgid "yesterday"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:312
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:317
msgid "thismonth"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:315
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:316
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:320
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:321
msgid "daysago"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:528
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:538
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:548
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:558
msgid "unchecked"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:528
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:538
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:548
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:558
#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:185
msgid "no"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:531
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:541
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:551
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:561
msgid "checked"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:531
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:541
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:551
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:561
#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:185
msgid "yes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:535
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:555
msgid "blank"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/caches.py:535
+#: /home/kovid/work/calibre/src/calibre/library/caches.py:555
msgid "empty"
msgstr ""
@@ -11905,7 +12033,7 @@ msgstr ""
msgid "No books available to include in catalog"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:5024
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:5017
msgid ""
"\n"
"*** Adding 'By Authors' Section required for MOBI output ***"
@@ -12404,11 +12532,11 @@ msgid ""
"For help on an individual command: %%prog command --help\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:584
+#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:586
msgid "No label was provided"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:586
+#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:588
msgid "The label must contain only lower case letters, digits and underscores, and start with a letter"
msgstr ""
@@ -12416,19 +12544,19 @@ msgstr ""
msgid "%sAverage rating is %3.1f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:899
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:904
msgid "Main"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2699
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2704
msgid "