diff --git a/resources/compiled_coffeescript.zip b/resources/compiled_coffeescript.zip index 7ba1aa2fbf..8e6bbbaf23 100644 Binary files a/resources/compiled_coffeescript.zip and b/resources/compiled_coffeescript.zip differ diff --git a/setup/publish.py b/setup/publish.py index 65df51f848..e43c9fdf7f 100644 --- a/setup/publish.py +++ b/setup/publish.py @@ -40,7 +40,7 @@ class Stage2(Command): class Stage3(Command): description = 'Stage 3 of the publish process' - sub_commands = ['upload_user_manual', 'upload_demo', 'sdist'] + sub_commands = ['upload_user_manual', 'upload_demo', 'sdist', 'tag_release'] class Stage4(Command): @@ -50,7 +50,7 @@ class Stage4(Command): class Stage5(Command): description = 'Stage 5 of the publish process' - sub_commands = ['tag_release', 'upload_to_server'] + sub_commands = ['upload_to_server'] def run(self, opts): subprocess.check_call('rm -rf build/* dist/*', shell=True) diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index c6a67ef79f..b81207343f 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.8.58\n" -"POT-Creation-Date: 2012-06-29 09:50+IST\n" -"PO-Revision-Date: 2012-06-29 09:50+IST\n" +"Project-Id-Version: calibre 0.8.59\n" +"POT-Creation-Date: 2012-07-06 07:33+IST\n" +"PO-Revision-Date: 2012-07-06 07:33+IST\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -24,8 +24,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/db/cache.py:106 #: /home/kovid/work/calibre/src/calibre/db/cache.py:109 #: /home/kovid/work/calibre/src/calibre/db/cache.py:120 -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:337 #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:338 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:339 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:100 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:101 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 @@ -98,7 +98,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:466 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/ozon.py:125 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/ozon.py:59 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/ozon.py:130 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/worker.py:26 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader/headers.py:26 @@ -119,9 +120,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/parse_utils.py:360 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:142 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:149 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:114 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:121 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:80 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:135 #: /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/palmdoc/writer.py:29 @@ -150,30 +151,30 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:400 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:603 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:606 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:142 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 -#: /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/add_empty_book.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:817 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:380 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:191 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:206 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:409 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1268 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1271 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1274 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1362 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1062 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1270 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1273 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1276 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1364 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:245 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:256 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:387 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:178 @@ -185,15 +186,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/database2.py:576 #: /home/kovid/work/calibre/src/calibre/library/database2.py:584 #: /home/kovid/work/calibre/src/calibre/library/database2.py:595 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2105 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2675 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3323 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3462 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2146 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2300 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2721 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3370 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3507 #: /home/kovid/work/calibre/src/calibre/library/server/content.py:250 #: /home/kovid/work/calibre/src/calibre/library/server/content.py:251 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:247 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:160 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:163 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:79 @@ -869,27 +870,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/db/cache.py:134 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:683 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1030 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:668 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1044 #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:851 #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:874 msgid "Yes" msgstr "" #: /home/kovid/work/calibre/src/calibre/db/fields.py:163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1161 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1175 msgid "Main" msgstr "" #: /home/kovid/work/calibre/src/calibre/db/fields.py:165 #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:77 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1163 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1177 msgid "Card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/db/fields.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:79 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1165 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1179 msgid "Card B" msgstr "" @@ -901,15 +902,15 @@ msgstr "" msgid "Communicate with Android phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:183 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:184 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:277 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:278 msgid "Communicate with S60 phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:297 msgid "Communicate with WebOS tablets." msgstr "" @@ -981,17 +982,17 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:460 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:500 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1107 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1153 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3236 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3278 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1115 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1161 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3244 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3286 #, python-format msgid "%(num)d of %(tot)d" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:508 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1158 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3285 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1166 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3293 #: /home/kovid/work/calibre/src/calibre/gui2/ebook_download.py:110 msgid "finished" msgstr "" @@ -1003,13 +1004,13 @@ msgid "" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1070 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1078 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2759 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2767 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:103 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:448 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:471 @@ -1020,24 +1021,24 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:1092 #: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:469 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1210 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:361 #: /home/kovid/work/calibre/src/calibre/library/database2.py:374 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3225 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:187 msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2760 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2768 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65 #: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:65 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3136 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3154 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3199 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3128 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3136 msgid "Communicate with iTunes." msgstr "" @@ -1143,7 +1144,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:37 -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -1186,14 +1187,18 @@ msgid "Communicate with the PocketBook 602/603/902/903 reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:257 +msgid "Communicate with the PocketBook 622 reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:270 msgid "Communicate with the PocketBook 360+ reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:267 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:280 msgid "Communicate with the PocketBook 701" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:298 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:311 msgid "Communicate with the Infibeam Pi2 reader." msgstr "" @@ -1850,6 +1855,14 @@ msgstr "" msgid "Card A folder" msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/user_defined/driver.py:69 +msgid "Swap main and card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/user_defined/driver.py:70 +msgid "Check this box if the device's main memory is being seen as card a and the card is being seen as main memory" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:210 #, python-format msgid "Rendered %s" @@ -3039,7 +3052,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:668 msgid "No" msgstr "" @@ -3048,7 +3061,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162 #: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41 @@ -3061,7 +3074,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:770 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1066 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 #: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23 msgid "Author(s)" msgstr "" @@ -3085,7 +3098,7 @@ msgid "Comments" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:775 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:70 @@ -3096,7 +3109,7 @@ msgid "Tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:777 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:170 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 @@ -3120,7 +3133,7 @@ msgid "Timestamp" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:782 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:169 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:146 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:305 @@ -3432,7 +3445,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:186 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:973 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:957 #, python-format msgid "Book %(sidx)s of %(series)s" msgstr "" @@ -3441,7 +3454,7 @@ msgstr "" msgid "HTML TOC generation options." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:160 @@ -3805,7 +3818,7 @@ msgid "Choose Files" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:769 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:753 msgid "Books" msgstr "" @@ -4258,11 +4271,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:403 #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:197 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:777 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1008 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:999 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:380 msgid "Failed" msgstr "" @@ -4284,7 +4297,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:496 #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:501 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:225 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:965 msgid "Not allowed" @@ -4386,7 +4399,7 @@ msgstr "" msgid "Some books were automatically merged into existing records in the target library. Click Show details to see which ones. This behavior is controlled by the Auto merge option in Preferences->Adding books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:226 msgid "You cannot use other libraries while using the environment variable CALIBRE_OVERRIDE_DATABASE_PATH." msgstr "" @@ -4769,7 +4782,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:388 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:384 msgid "N" msgstr "" @@ -4996,7 +5009,7 @@ msgid "this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:32 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:469 #, python-format msgid "Search for %s" msgstr "" @@ -5257,7 +5270,7 @@ msgid "No books found" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:809 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:793 msgid "No permission" msgstr "" @@ -5453,49 +5466,49 @@ msgstr "" msgid "Donate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:146 msgid "Click to open" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:161 msgid "Ids" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:199 #, python-format msgid "Book %(sidx)s of %(series)s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1071 msgid "Collections" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:317 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:255 msgid "Paste Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:318 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:256 msgid "Copy Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:316 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:319 msgid "Remove Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:362 msgid "Double-click to open Book Details window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:77 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:295 msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #, python-format msgid "Cover size: %(width)d x %(height)d" @@ -6563,45 +6576,45 @@ msgstr "" msgid "Set the metadata. The output file will contain as much of this metadata as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1015 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:999 msgid "This book has no cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1017 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1001 #, python-format msgid "Cover size: %(width)d x %(height)d pixels" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:916 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:900 msgid "Choose cover for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:924 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:908 msgid "Cannot read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:194 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:909 msgid "You do not have permission to read the file: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:209 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:917 msgid "Error reading file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:203 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:918 msgid "
There was an error reading from file:
"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:210
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:944
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:193
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:928
msgid " is not a valid picture"
msgstr ""
@@ -6654,14 +6667,14 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1107
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1091
msgid "Tags categorize the book. This is particularly useful while searching.
They can be any words or phrases, separated by commas."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:458
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:449
msgid "&Series:"
msgstr ""
@@ -6669,7 +6682,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:569
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:457
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:448
msgid "List of known series. You can add new series."
msgstr ""
@@ -6986,7 +6999,7 @@ msgid "Remove the currently selected expression"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:153
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:886
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:870
msgid "&Remove"
msgstr ""
@@ -7349,39 +7362,39 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:153
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:187
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:687
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:728
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:751
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:802
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:341
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:349
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:672
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:713
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:736
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:787
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:345
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:83
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:103
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:222
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:218
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:267
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:271
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:275
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1413
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1392
msgid "Undefined"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:130
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:759
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:744
msgid "star(s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:131
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:760
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:745
msgid "Unrated"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:174
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:789
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:774
#, python-format
msgid "Set '%s' to today"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:176
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:791
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:776
#, python-format
msgid "Clear '%s'"
msgstr ""
@@ -7390,51 +7403,51 @@ msgstr ""
msgid "Open Item Editor"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:354
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:347
msgid "Values changed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:355
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:348
msgid "You have changed the values. In order to use this editor, you must either discard or apply these changes. Apply changes?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:380
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:373
msgid " index:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:451
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:436
msgid "The enumeration \"{0}\" contains an invalid value that will be set to the default"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:642
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:627
msgid "Apply changes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:835
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:820
msgid "Remove series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:838
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:823
msgid "Automatically number books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:841
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:826
msgid "Force numbers to start with "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:913
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:896
msgid "The enumeration \"{0}\" contains invalid values that will not appear in the list"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:957
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:940
msgid "Remove all tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:977
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:960
msgid "tags to add"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:984
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:967
msgid "tags to remove"
msgstr ""
@@ -7651,14 +7664,14 @@ msgid "You have enabled the {0} formats for your {1}. The {1} may not sup
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:150
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:437
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:433
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:279
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:70
msgid "Invalid template"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:151
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:438
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:434
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:280
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:71
#, python-format
@@ -7685,19 +7698,19 @@ msgstr ""
msgid "Save &template:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:20
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:19
msgid "How many empty books?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:25
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:24
msgid "How many empty books should be added?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:33
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:32
msgid "Set the author of the new books to:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:45
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:44
msgid "Reset author to Unknown"
msgstr ""
@@ -8106,7 +8119,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:62
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1069
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:35
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:365
@@ -8125,13 +8138,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/device_category_editor.py:86
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:209
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:944
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:951
msgid "Item is blank"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/device_category_editor.py:87
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:210
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:945
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:952
msgid "An item cannot be set to nothing. Delete it instead."
msgstr ""
@@ -8207,7 +8220,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:523
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:603
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604
msgid "No matches found"
msgstr ""
@@ -8217,13 +8230,13 @@ msgid "Change Case"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:161
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:296
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:300
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:437
msgid "Upper Case"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:162
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:299
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:438
msgid "Lower Case"
msgstr ""
@@ -8234,13 +8247,13 @@ msgid "Swap Case"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:164
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:297
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:301
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440
msgid "Title Case"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:165
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:298
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:302
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:441
msgid "Capitalize"
msgstr ""
@@ -8254,12 +8267,12 @@ msgid "Copy to author"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:313
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:994
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1001
msgid "Invalid author name"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:314
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:995
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1002
msgid "Author names cannot contain & characters."
msgstr ""
@@ -8418,103 +8431,103 @@ msgstr ""
msgid "Working"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:301
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:305
msgid "Character match"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:302
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306
msgid "Regular Expression"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:305
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:309
msgid "Replace field"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:310
msgid "Prepend to field"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:307
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:311
msgid "Append to field"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:321
#, python-format
msgid "Editing meta information for %d books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:362
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:366
msgid "Immediately make all changes without closing the dialog. This operation cannot be canceled or undone"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:426
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:430
#, python-format
msgid "Book %d:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:444
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:448
msgid "Enter an identifier type"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:450
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:454
msgid "You can destroy your library using this feature. Changes are permanent. There is no undo function. You are strongly encouraged to back up your library before proceeding.
Search and replace in text fields using character matching or regular expressions. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:458
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:462
msgid "In character mode, the field is searched for the entered search text. The text is replaced by the specified replacement text everywhere it is found in the specified field. After replacement is finished, the text can be changed to upper-case, lower-case, or title-case. If the case-sensitive check box is checked, the search text must match exactly. If it is unchecked, the search text will match both upper- and lower-case letters"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:469
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:473
msgid "In regular expression mode, the search text is an arbitrary python-compatible regular expression. The replacement text can contain backreferences to parenthesized expressions in the pattern. The search is not anchored, and can match and replace multiple times on the same string. The modification functions (lower-case etc) are applied to the matched text, not to the field as a whole. The destination box specifies the field where the result after matching and replacement is to be assigned. You can replace the text in the field, or prepend or append the matched text. See this reference for more information on python's regular expressions, and in particular the 'sub' function."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:546
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:550
msgid "S/R TEMPLATE ERROR"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:694
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:698
msgid "You must specify a destination when source is a composite field"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:700
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:704
msgid "You must specify a destination identifier type"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:937
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:928
msgid "Search/replace invalid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:938
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:929
#, python-format
msgid "Search pattern is invalid: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:994
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:985
#, python-format
msgid ""
"Applying changes to %d books.\n"
"Phase {0} {1}%%."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1024
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1015
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:614
msgid "Delete saved search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1025
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1016
msgid "The selected saved search/replace will be deleted. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1042
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1050
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1033
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1041
msgid "Save search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1043
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1034
msgid "Search/replace name:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1051
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1042
msgid "That saved search/replace already exists and will be overwritten. Are you sure?"
msgstr ""
@@ -8539,13 +8552,13 @@ msgid "Specify how the author(s) of this book should be sorted. For example Char
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1065
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1049
msgid "&Rating:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:554
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:555
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1066
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1050
msgid "Rating of this book. 0-5 stars"
msgstr ""
@@ -8612,7 +8625,7 @@ msgid "&Force numbers to start with:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1398
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1377
msgid "&Date:"
msgstr ""
@@ -8634,7 +8647,7 @@ msgid "Clear published date"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1170
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1154
msgid "&Languages:"
msgstr ""
@@ -9667,7 +9680,7 @@ msgid "&Author:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1106
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1090
msgid "Ta&gs:"
msgstr ""
@@ -9946,7 +9959,7 @@ msgid "Open Template Editor"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_line_editor.py:41
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:424
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:420
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:48
msgid "Edit template"
msgstr ""
@@ -10309,7 +10322,7 @@ msgid "Regular expression (?P Migrating old database to ebook library in %s
"
msgstr ""
@@ -10779,12 +10792,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:475
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482
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:476
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:483
msgid "Previous Page"
msgstr ""
@@ -10957,7 +10970,7 @@ msgid "Unhandled exception"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:104
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:280
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:272
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:439
#, python-format
msgid "Could not open %s. Is it being used by another program?"
@@ -10987,29 +11000,29 @@ msgstr ""
msgid "You have changed the authors for this book. You must save these changes before you can use Manage authors. Do you want to save these changes?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:314
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:305
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."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:319
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:310
msgid "Author s&ort:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:329
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:320
msgid " The green color indicates that the current author sort matches the current author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:332
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:323
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 ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:518
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:502
msgid "&Number:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:618
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:602
#, python-format
msgid ""
"Last modified: %s\n"
@@ -11017,113 +11030,113 @@ msgid ""
"Double click to view"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:628
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:612
#, python-format
msgid "Restore %s from the original"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:674
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:658
msgid "Set the cover for the book from the selected format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:682
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:666
msgid "Set metadata for the book from the selected format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:689
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:673
msgid "Add a format to this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:696
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:680
msgid "Remove the selected format from this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:767
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:751
msgid "Choose formats for "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:810
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:794
msgid "You do not have permission to read the following files:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:840
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:841
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:824
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:825
msgid "No format selected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:853
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:837
msgid "Could not read metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:854
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:838
#, python-format
msgid "Could not read metadata from %s format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:882
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:866
msgid "&Browse"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:884
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:868
msgid "T&rim"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:892
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:876
msgid "Download co&ver"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:893
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:877
msgid "&Generate cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:943
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:927
msgid "Not a valid picture"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:967
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:951
msgid "Specify title and author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:968
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:952
msgid "You must specify a title and author before generating a cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:987
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:971
msgid "Invalid cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:988
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:972
msgid "Could not change cover as the image is invalid."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1142
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1126
msgid "Tags changed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1143
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1127
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/metadata/basic_widgets.py:1171
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1155
msgid "A comma separated list of languages for this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1194
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1178
msgid "Unknown language"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1195
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1179
#, python-format
msgid "The language %s is not recognized"
msgid_plural "The languages %s are not recognized"
msgstr[0] ""
msgstr[1] ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1207
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1191
msgid "I&ds:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1208
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1192
#, python-format
msgid ""
"Edit the identifiers for this book. For example: \n"
@@ -11131,38 +11144,38 @@ msgid ""
"%s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1272
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1334
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1256
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1318
msgid "This ISBN number is valid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1275
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1337
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1259
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1321
msgid "This ISBN number is invalid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1300
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1322
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1284
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1306
msgid "Invalid ISBN"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1301
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1285
msgid "Enter an ISBN"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1323
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1307
msgid "The ISBN you entered is not valid. Try again."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1347
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1331
msgid "&Publisher:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1416
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1395
msgid "Clear date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1450
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1429
msgid "Publishe&d:"
msgstr ""
@@ -12382,7 +12395,7 @@ msgid "Never"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:147
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:530
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:557
msgid "By first letter"
msgstr ""
@@ -13550,24 +13563,24 @@ msgstr ""
msgid "This tweak has been customized"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:293
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:294
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:326
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:327
msgid "Search for tweak"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:340
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:380
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:341
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:381
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:393
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:394
msgid "Invalid tweaks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:394
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:395
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 ""
@@ -14071,40 +14084,40 @@ msgstr ""
msgid "The grouped search term name is \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:781
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:788
msgid "Changing the authors for several books can take a while. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:786
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:793
msgid "Changing the metadata for that many books can take a while. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:873
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:880
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
msgid "Searches"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:950
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:970
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:979
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:957
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:977
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:986
msgid "Rename user category"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:951
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:958
msgid "You cannot use periods in the name when renaming user categories"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:971
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:980
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:978
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:987
#, python-format
msgid "The name %s is already used"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:999
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1006
msgid "Duplicate search name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1000
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1007
#, python-format
msgid "The saved search name %s is already used."
msgstr ""
@@ -14126,13 +14139,13 @@ msgid "Manage Tags"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/ui.py:57
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:513
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:517
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:540
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:544
msgid "Manage User Categories"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/ui.py:59
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:505
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:532
msgid "Manage Saved Searches"
msgstr ""
@@ -14261,105 +14274,105 @@ msgstr ""
msgid "All of these category_managers are available by right-clicking on items in the tag browser above"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:386
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:425
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:455
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:413
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:452
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:482
#, python-format
msgid "Rename %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:392
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:419
#, python-format
msgid "Delete %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:396
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:423
#, python-format
msgid "Edit sort for %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:399
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:426
#, python-format
msgid "Edit link for %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:406
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:433
#, python-format
msgid "Add %s to user category"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:419
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:446
#, python-format
msgid "Children of %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:429
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:456
#, python-format
msgid "Delete search %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:434
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:461
#, python-format
msgid "Remove %(item)s from category %(cat)s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:447
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:474
#, python-format
msgid "Search for everything but %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:459
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:486
#, python-format
msgid "Add sub-category to %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:463
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:490
#, python-format
msgid "Delete user category %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:468
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:495
#, python-format
msgid "Hide category %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:472
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:499
msgid "Show category"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:482
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:509
#, python-format
msgid "Search for books in category %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:488
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:515
#, python-format
msgid "Search for books not in category %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:497
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:502
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:524
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:529
#, python-format
msgid "Manage %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:524
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:551
msgid "Show all categories"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:527
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:554
msgid "Change sub-categorization scheme"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:528
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:555
msgid "Disable"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:532
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:559
msgid "Partition"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:547
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:574
msgid "First letter is usable only when sorting by name"
msgstr ""
@@ -14610,7 +14623,7 @@ msgid "Options to customize the ebook viewer"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:28
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:977
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:978
msgid "Remember last used window size"
msgstr ""
@@ -14824,40 +14837,40 @@ msgstr ""
msgid "No results found for:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:444
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:451
msgid "&Lookup in dictionary"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:456
msgid "&Search for next occurrence"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:454
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:461
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:137
msgid "Go to..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473
msgid "Next Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474
msgid "Previous Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:469
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:476
msgid "Document Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:470
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477
msgid "Document End"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:472
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479
msgid "Section Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:480
msgid "Section End"
msgstr ""
@@ -14963,97 +14976,97 @@ msgstr ""
msgid "Connecting to dict.org to lookup: %s…"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:511
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:512
msgid "No such location"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:512
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:513
msgid "The location pointed to by this item does not exist."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564
msgid "Choose ebook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:565
msgid "Ebooks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:584
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585
#, python-format
msgid ""
"Make font size %(which)s\n"
"Current magnification: %(mag).1f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:586
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587
msgid "larger"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:588
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:589
msgid "smaller"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:605
#, python-format
msgid "No matches found for: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:653
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:654
msgid "Loading flow..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:729
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:730
#, python-format
msgid "Laying out %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:781
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:782
#, python-format
msgid "Bookmark #%d"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:785
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:786
msgid "Add bookmark"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:786
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:787
msgid "Enter title for bookmark:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:797
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:798
msgid "Manage Bookmarks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:839
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:840
msgid "Loading ebook..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:851
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:852
msgid "Could not open ebook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:964
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:965
msgid "Options to control the ebook viewer"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:971
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:972
msgid "If specified, viewer window will try to come to the front when started."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:974
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:975
msgid "If specified, viewer window will try to open full screen when started."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:979
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:980
msgid "Print javascript alert and console messages to the console"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:981
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:982
msgid "The position at which to open the specified book. The position is a location as displayed in the top left corner of the viewer."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:988
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:989
msgid ""
"%prog [options] file\n"
"\n"
@@ -15769,15 +15782,15 @@ msgid ""
"*** Adding 'By Authors' Section required for MOBI output ***"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:499
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:500
msgid "No enabled genres found to catalog.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:503
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:504
msgid "No books available to catalog"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:579
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:580
msgid ""
"Inconsistent Author Sort values for\n"
"Author '{0}':\n"
@@ -15787,20 +15800,20 @@ msgid ""
"Select all books by '{0}', apply correct Author Sort value in Edit Metadata dialog, then rebuild the catalog.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:596
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:597
msgid ""
"Warning: inconsistent Author Sort values for\n"
"Author '{0}':\n"
"'{1}' <> '{2}'\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:791
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:793
msgid ""
"No books found to catalog.\n"
"Check 'Excluded books' criteria in E-book options.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:793
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:795
msgid "No books available to include in catalog"
msgstr ""
@@ -15884,7 +15897,7 @@ msgid "Filter the results by the search query. For the format of the search quer
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:160
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1167
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1218
msgid "The maximum width of a single line in the output. Defaults to detecting screen size."
msgstr ""
@@ -16146,7 +16159,7 @@ msgstr ""
msgid "Error: You must specify a catalog output file"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:851
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:853
msgid ""
"\n"
" %prog set_custom [options] column id value\n"
@@ -16158,15 +16171,15 @@ msgid ""
" "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:861
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:863
msgid "If the column stores multiple values, append the specified values to the existing ones, instead of replacing them."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:872
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:874
msgid "Error: You must specify a field name, id and value"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:892
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:894
msgid ""
"\n"
" %prog custom_columns [options]\n"
@@ -16175,20 +16188,20 @@ msgid ""
" "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:898
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:900
msgid "Show details for each column."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:910
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:912
#, python-format
msgid "You will lose all data in the column: %r. Are you sure (y/n)? "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:912
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:914
msgid "y"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:919
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:921
msgid ""
"\n"
" %prog remove_custom_column [options] label\n"
@@ -16198,15 +16211,15 @@ msgid ""
" "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:926
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:928
msgid "Do not ask for confirmation"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:936
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:938
msgid "Error: You must specify a column label"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:947
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:949
msgid ""
"\n"
" %prog saved_searches [options] list\n"
@@ -16219,74 +16232,90 @@ msgid ""
" "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:964
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:966
msgid "Error: You must specify an action (add|remove|list)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:972
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:974
msgid "Name:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:973
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:975
msgid "Search string:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:979
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:981
msgid "Error: You must specify a name and a search string"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:982
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:984
msgid "added"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:987
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:989
msgid "Error: You must specify a name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:990
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:992
msgid "removed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:994
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:996
#, python-format
msgid "Error: Action %s not recognized, must be one of: (add|remove|list)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1002
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1003
+msgid ""
+"%prog backup_metadata [options]\n"
+"\n"
+"Backup the metadata stored in the database into individual OPF files in each\n"
+"books directory. This normally happens automatically, but you can run this\n"
+"command to force re-generation of the OPF files, with the --all option.\n"
+"\n"
+"Note that there is normally no need to do this, as the OPF files are backed up\n"
+"automatically, every time metadata is changed.\n"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1014
+msgid "Normally, this command only operates on books that have out of date OPF files. This option makes it operate on all books."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1053
msgid ""
"%prog check_library [options]\n"
"\n"
"Perform some checks on the filesystem representing a library. Reports are {0}\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1009
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1159
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1060
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1210
msgid "Output in CSV"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1012
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1063
msgid ""
"Comma-separated list of reports.\n"
"Default: all"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1016
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1067
msgid ""
"Comma-separated list of extensions to ignore.\n"
"Default: all"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1020
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1071
msgid ""
"Comma-separated list of names to ignore.\n"
"Default: all"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1050
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1101
msgid "Unknown report check"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1084
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1135
msgid ""
"%prog restore_database [options]\n"
"\n"
@@ -16301,16 +16330,16 @@ msgid ""
" "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1098
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1149
msgid "Really do the recovery. The command will not run unless this option is specified."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1111
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1162
#, python-format
msgid "You must provide the %s option to do a recovery"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1148
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1199
msgid ""
"%prog list_categories [options]\n"
"\n"
@@ -16318,29 +16347,29 @@ msgid ""
"information is the equivalent of what is shown in the tags pane.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1156
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1207
msgid "Output only the number of items in a category instead of the counts per item within the category"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1161
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1212
msgid "The character to put around the category value in CSV mode. Default is quotes (\")."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1164
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1215
msgid ""
"Comma-separated list of category lookup names.\n"
"Default: all"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1170
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1221
msgid "The string used to separate fields in CSV mode. Default is a comma."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1208
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1259
msgid "CATEGORY ITEMS"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/cli.py:1281
+#: /home/kovid/work/calibre/src/calibre/library/cli.py:1332
#, python-format
msgid ""
"%%prog command [options] [arguments]\n"
@@ -16375,17 +16404,17 @@ msgstr ""
msgid "creating custom column "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:3488
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:3533
#, python-format
msgid "