diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index ce7297ef9a..e3b7bef5d8 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -875,7 +875,7 @@ class ActionCopyToLibrary(InterfaceActionBase): class ActionTweakEpub(InterfaceActionBase): name = 'Tweak ePub' actual_plugin = 'calibre.gui2.actions.tweak_epub:TweakEpubAction' - description = _('Make small twekas to epub files in your calibre library') + description = _('Make small tweaks to epub files in your calibre library') class ActionNextMatch(InterfaceActionBase): name = 'Next Match' diff --git a/src/calibre/manual/conversion.rst b/src/calibre/manual/conversion.rst index 9244109ba7..029cc636ea 100644 --- a/src/calibre/manual/conversion.rst +++ b/src/calibre/manual/conversion.rst @@ -633,6 +633,7 @@ TXT input supports a number of options to differentiate how paragraphs are detec :guilabel:`Formatting Style: None` Applies no special formatting to the text, the document is converted to html with no other changes. +.. _pdfconversion: Convert PDF documents ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index 733adb65ee..97551b403f 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -35,29 +35,11 @@ What are the best source formats to convert? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In order of decreasing preference: LIT, MOBI, EPUB, FB2, HTML, PRC, RTF, PDB, TXT, PDF -Why does the PDF conversion lose some images/tables? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The PDF conversion tries to extract the text and images from the PDF file and convert them to and HTML based ebook. Some PDF files have images in a format that cannot be extracted (vector images). All tables -are also represented as vector diagrams, thus they cannot be extracted. +I converted a PDF file, but the result has various problems? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -How do I convert a collection of HTML files in a specific order? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -In order to convert a collection of HTML files in a specific oder, you have to create a table of contents file. That is, another HTML file that contains links to all the other files in the desired order. Such a file looks like:: +PDF is a terrible format to convert from. For a list of the various issues you will encounter when converting PDF, see: :ref:`pdfconversion`. - -
-
- First File
- Second File
- .
- .
- .
-
+ First File
+ Second File
+ .
+ .
+ .
+
If you do not want calibre to recognize your Apple iDevice when it is connected to your computer, click Disable Apple Driver.
To transfer books to your iDevice, click Disable Apple Driver, then use the 'Connect to iTunes' method recommended in the Calibre + iDevices FAQ, using the Connect/Share|Connect to iTunes menu item.
Enabling the Apple driver for direct connection to iDevices is an unsupported advanced user mode.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:65 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:64 msgid "Disable Apple driver" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:69 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:68 msgid "Enable Apple driver" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:118 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:117 msgid "Use Series as Category in iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:118 msgid "Enable to use the series name as the iTunes Genre, iBooks Category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:121 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:120 msgid "Cache covers from iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:123 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:122 msgid "Enable to cache and display covers from iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:180 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:183 msgid "Apple device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:182 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:185 msgid "Communicate with iTunes/iBooks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:197 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:196 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:199 msgid "Cannot copy books directly from iDevice. Drag from iTunes Library to desktop, then add to calibre's Library window." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:359 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:361 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:364 msgid "Updating device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:438 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:477 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1059 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1103 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3109 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3149 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:440 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:479 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1058 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1101 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3098 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3138 msgid "%d of %d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:484 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1108 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3155 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:486 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1106 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3144 #: /home/kovid/work/calibre/src/calibre/gui2/ebook_download.py:106 msgid "finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:669 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:671 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1020 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1022 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:2680 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2669 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:447 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:470 @@ -920,8 +920,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:951 #: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:445 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1657 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1659 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1661 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1663 #: /home/kovid/work/calibre/src/calibre/library/database2.py:328 #: /home/kovid/work/calibre/src/calibre/library/database2.py:341 #: /home/kovid/work/calibre/src/calibre/library/database2.py:2949 @@ -929,7 +929,7 @@ msgstr "" msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2681 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2670 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:652 #: /home/kovid/work/calibre/src/calibre/library/database2.py:2909 @@ -937,7 +937,7 @@ msgstr "" msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3011 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3000 msgid "Communicate with iTunes." msgstr "" @@ -1390,35 +1390,35 @@ msgstr "" msgid "Communicate with the Teclast K3/K5 reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:36 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:37 msgid "Communicate with the Newsmy reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:47 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:48 msgid "Communicate with the Archos reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:57 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:58 msgid "Communicate with the Pico reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:68 msgid "Communicate with the iPapyrus reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:79 msgid "Communicate with the Sovos reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:89 msgid "Communicate with the Sunstech EB700 reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:99 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:100 msgid "Communicate with the Stash W950 reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:111 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:112 msgid "Communicate with the Wexler reader." msgstr "" @@ -2436,14 +2436,14 @@ msgid "TEMPLATE ERROR" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:632 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:564 msgid "No" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:632 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:564 #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:667 msgid "Yes" msgstr "" @@ -2482,7 +2482,7 @@ msgid "Producer" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:737 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:879 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:886 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:147 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:228 msgid "Comments" @@ -2623,7 +2623,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1363 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1499 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:891 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:898 #: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:36 msgid "Cover" msgstr "" @@ -2827,7 +2827,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/metadata/basic_widgets.py:806 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:843 msgid "Book %s of %s" msgstr "" @@ -3346,7 +3346,7 @@ msgid "Choose Files" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:29 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:621 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:656 msgid "Books" msgstr "" @@ -4626,7 +4626,7 @@ msgstr "" msgid "Collecting data, please wait..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520 msgid "Saved" msgstr "" @@ -5792,33 +5792,33 @@ msgid "Set the metadata. The output file will contain as much of this metadata a msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:749 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:786 msgid "Choose cover for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:757 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:794 msgid "Cannot read" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:795 msgid "You do not have permission to read the file: " msgstr "" #: /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/metadata/basic_widgets.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:803 msgid "Error reading file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:197 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:804 msgid "There was an error reading from file:
"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:204
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:814
msgid " is not a valid picture"
msgstr ""
@@ -5843,7 +5843,7 @@ msgid "&Title: "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:73
msgid "Change the title of this book"
msgstr ""
@@ -5871,14 +5871,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:537
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:932
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:973
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:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:377
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:403
msgid "&Series:"
msgstr ""
@@ -5886,7 +5886,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:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:376
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:402
msgid "List of known series. You can add new series."
msgstr ""
@@ -6476,16 +6476,16 @@ msgstr ""
msgid "Cover browser could not be loaded"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:88
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:112
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:149
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:183
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:300
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:565
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:606
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:629
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:680
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:66
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:91
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:115
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:152
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:186
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:303
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:568
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:609
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:632
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:683
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:307
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:312
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:128
@@ -6493,67 +6493,67 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:230
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:279
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:283
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1198
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1239
msgid "Undefined"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:126
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:637
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:129
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:640
msgid "star(s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:127
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:638
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:130
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:641
msgid "Unrated"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:170
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:667
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:173
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:670
msgid "Set '%s' to today"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:172
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:669
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:175
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:672
msgid "Clear '%s'"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:296
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:299
msgid " index:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:365
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:368
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:520
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:523
msgid "Apply changes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:713
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:716
msgid "Remove series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:716
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:719
msgid "Automatically number books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:719
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:722
msgid "Force numbers to start with "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:790
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:793
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:834
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:837
msgid "Remove all tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:854
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:857
msgid "tags to add"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:861
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:864
msgid "tags to remove"
msgstr ""
@@ -7115,14 +7115,14 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:73
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:74
#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/adv_search_builder_ui.py:181
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/adv_search_builder_ui.py:199
msgid "&Title:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:178
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:186
msgid "&Author(s):"
msgstr ""
@@ -7279,13 +7279,13 @@ msgstr ""
#:
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:271
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1449
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1453
msgid "Invalid author name"
msgstr ""
#:
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:272
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1450
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1454
msgid "Author names cannot contain & characters."
msgstr ""
@@ -7303,7 +7303,7 @@ msgstr ""
#:
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:90
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2130
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2134
msgid "F&ind"
msgstr ""
@@ -7405,7 +7405,7 @@ msgid "Standard metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:60
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:860
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:867
msgid "Custom metadata"
msgstr ""
@@ -7414,7 +7414,7 @@ msgid "Search/Replace"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:65
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:83
msgid "Working"
msgstr ""
@@ -7545,13 +7545,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:530
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:890
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:931
msgid "&Rating:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:891
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:932
msgid "Rating of this book. 0-5 stars"
msgstr ""
@@ -7621,7 +7621,7 @@ msgid "&Force numbers to start with:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1182
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1223
msgid "&Date:"
msgstr ""
@@ -7692,13 +7692,13 @@ msgid "Set from &ebook file(s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:503
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:667
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:510
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:674
msgid "&Basic metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:510
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:517
msgid "&Custom metadata"
msgstr ""
@@ -8163,7 +8163,7 @@ msgstr ""
msgid "The plugin: %s cannot be disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:59
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:66
msgid "Aborting..."
msgstr ""
@@ -8628,7 +8628,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:931
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:972
msgid "Ta&gs:"
msgstr ""
@@ -8807,12 +8807,12 @@ msgid "%s (was %s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:85
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1395
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1399
msgid "Item is blank"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:86
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1396
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1400
msgid "An item cannot be set to nothing. Delete it instead."
msgstr ""
@@ -9301,7 +9301,7 @@ msgid "Regular expression (?P
Click Find again to go to first match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2173 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2177 msgid "Sort by name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2173 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2177 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2174 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2178 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2177 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2181 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2184 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2188 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2184 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2188 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2189 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2193 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:2196 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2200 msgid "Manage authors, tags, etc" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2197 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2201 msgid "All of these category_managers are available by right-clicking on items in the tag browser above" msgstr "" diff --git a/src/calibre/utils/mem.py b/src/calibre/utils/mem.py index 7dad5e4d0d..4358ec7522 100644 --- a/src/calibre/utils/mem.py +++ b/src/calibre/utils/mem.py @@ -208,6 +208,8 @@ def gc_histogram(): def diff_hists(h1, h2): """Prints differences between two results of gc_histogram().""" for k in h1: + if k not in h2: + h2[k] = 0 if h1[k] != h2[k]: print "%s: %d -> %d (%s%d)" % ( k, h1[k], h2[k], h2[k] > h1[k] and "+" or "", h2[k] - h1[k])