diff --git a/Changelog.yaml b/Changelog.yaml index 3b4747b645..3e4812cb6b 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -68,16 +68,6 @@ - title: "Brand Eins" author: Constantin Hofstetter - - title: "Winnipeg Free Press" - author: buyo - - - title: "Buckmasters in the kitchen, The Walrus Magazine and Kansas City Star" - author: Tony Stegall - - - title: "Europa Sur" - author: "Darko Miletic" - - improved recipes: - Harpers (free) - Danas diff --git a/resources/recipes/hbr.recipe b/resources/recipes/hbr.recipe index 3d1e8ccfac..cd7dcd2061 100644 --- a/resources/recipes/hbr.recipe +++ b/resources/recipes/hbr.recipe @@ -33,9 +33,9 @@ class HBR(BasicNewsRecipe): def get_browser(self): br = BasicNewsRecipe.get_browser(self) br.open(self.LOGIN_URL) - br.select_form(name='signInForm') - br['signInForm:username'] = self.username - br['signInForm:password'] = self.password + br.select_form(name='signin-form') + br['signin-form:username'] = self.username + br['signin-form:password'] = self.password raw = br.submit().read() if 'My Account' not in raw: raise Exception('Failed to login, are you sure your username and password are correct?') diff --git a/resources/recipes/taz_rss.recipe b/resources/recipes/taz_rss.recipe index 6520a23b63..143bd26791 100644 --- a/resources/recipes/taz_rss.recipe +++ b/resources/recipes/taz_rss.recipe @@ -1,7 +1,7 @@ __license__ = 'GPL v3' __copyright__ = '2010, Alexander Schremmer ' -from calibre.resources.recipes import BasicNewsRecipe +from calibre.web.feeds.news import BasicNewsRecipe class TazRSSRecipe(BasicNewsRecipe): title = u'Taz.de (die tageszeitung) RSS Feed - German' diff --git a/setup/translations.py b/setup/translations.py index 37b92848d9..7f81abf8f5 100644 --- a/setup/translations.py +++ b/setup/translations.py @@ -197,7 +197,7 @@ class GetTranslations(Translations): class ISO639(Command): description = 'Compile translations for ISO 639 codes' - XML = '/usr/lib/python2.6/site-packages/pycountry/databases/iso639.xml' + XML = '/usr/lib/python2.7/site-packages/pycountry/databases/iso639.xml' def run(self, opts): src = self.XML diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index c5fe86d590..c72ad4736f 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -424,7 +424,7 @@ class KOBO(USBMS): paths[source_id] = os.path.join(prefix, *(path.split('/'))) return paths - def update_device_database_collections(self, booklists, collections_attributes): + def update_device_database_collections(self, booklists, collections_attributes, oncard): # debug_print('Starting update_device_database_collections', collections_attributes) # Force collections_attributes to be 'tags' as no other is currently supported @@ -433,23 +433,31 @@ class KOBO(USBMS): collections = booklists.get_collections(collections_attributes) # debug_print('Collections', collections) + + # Create a connection to the sqlite database + # Needs to be outside books collection as in the case of removing + # the last book from the collection the list of books is empty + # and the removal of the last book would not occur + connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') + cursor = connection.cursor() + + # Reset Im_Reading list in the database + if oncard == 'carda': + query= 'update content set ReadStatus=0, FirstTimeReading = \'true\' where BookID is Null and ContentID like \'file:///mnt/sd/%\'' + elif oncard != 'carda' and oncard != 'cardb': + query= 'update content set ReadStatus=0, FirstTimeReading = \'true\' where BookID is Null and ContentID not like \'file:///mnt/sd/%\'' + + try: + cursor.execute (query) + except: + debug_print('Database Exception: Unable to reset Im_Reading list') + raise + else: +# debug_print('Commit: Reset Im_Reading list') + connection.commit() + for category, books in collections.items(): if category == 'Im_Reading': - # Create a connection to the sqlite database - connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') - cursor = connection.cursor() - - # Reset Im_Reading list in the database - query= 'update content set ReadStatus=0, FirstTimeReading = \'true\' where BookID is Null' - try: - cursor.execute (query) - except: - debug_print('Database Exception: Unable to reset Im_Reading list') - raise - else: -# debug_print('Commit: Reset Im_Reading list') - connection.commit() - for book in books: # debug_print('Title:', book.title, 'lpath:', book.path) book.device_collections = ['Im_Reading'] @@ -471,8 +479,8 @@ class KOBO(USBMS): connection.commit() # debug_print('Database: Commit create Im_Reading list') - cursor.close() - connection.close() + cursor.close() + connection.close() # debug_print('Finished update_device_database_collections', collections_attributes) @@ -494,12 +502,16 @@ class KOBO(USBMS): #debug_print('KOBO: collection fields:', collections) for i, blist in blists.items(): - self.update_device_database_collections(blist, collections) + if i == 0: + oncard = 'main' + else: + oncard = 'carda' + self.update_device_database_collections(blist, collections, oncard) USBMS.sync_booklists(self, booklists, end_session=end_session) #debug_print('KOBO: finished sync_booklists') def rebuild_collections(self, booklist, oncard): collections_attributes = [] - self.update_device_database_collections(booklist, collections_attributes) + self.update_device_database_collections(booklist, collections_attributes, oncard) diff --git a/src/calibre/ebooks/conversion/preprocess.py b/src/calibre/ebooks/conversion/preprocess.py index 03a0047927..e87a8021f9 100644 --- a/src/calibre/ebooks/conversion/preprocess.py +++ b/src/calibre/ebooks/conversion/preprocess.py @@ -216,8 +216,8 @@ class HTMLPreProcessor(object): (re.compile(u'¸\s*()*\s*C', re.UNICODE), lambda match: u'Ç'), # ˛ - (re.compile(u'˛\s*()*\s*a', re.UNICODE), lambda match: u'ą'), - (re.compile(u'˛\s*()*\s*A', re.UNICODE), lambda match: u'Ą'), + (re.compile(u'\s*˛\s*()*\s*a', re.UNICODE), lambda match: u'ą'), + (re.compile(u'\s*˛\s*()*\s*A', re.UNICODE), lambda match: u'Ą'), (re.compile(u'˛\s*()*\s*e', re.UNICODE), lambda match: u'ę'), (re.compile(u'˛\s*()*\s*E', re.UNICODE), lambda match: u'Ę'), diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index ac04652efa..bd9728989b 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -173,6 +173,8 @@ class EditMetadataAction(InterfaceAction): ''' rows = [r.row() for r in \ self.gui.library_view.selectionModel().selectedRows()] + m = self.gui.library_view.model() + ids = [m.id(r) for r in rows] if not rows or len(rows) == 0: d = error_dialog(self.gui, _('Cannot edit metadata'), _('No books selected')) @@ -191,6 +193,7 @@ class EditMetadataAction(InterfaceAction): self.gui.tags_view.recount() if self.gui.cover_flow: self.gui.cover_flow.dataChanged() + self.gui.library_view.select_rows(ids) # Merge books {{{ def merge_books(self, safe_merge=False): diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index b7d1d0c54b..2e5c7838ca 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -163,7 +163,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.s_r_number_of_books = min(7, len(self.ids)) for i in range(1,self.s_r_number_of_books+1): w = QtGui.QLabel(self.tabWidgetPage3) - w.setText(_('Book %d:'%i)) + w.setText(_('Book %d:')%i) self.gridLayout1.addWidget(w, i+offset, 0, 1, 1) w = QtGui.QLineEdit(self.tabWidgetPage3) w.setReadOnly(True) @@ -220,6 +220,8 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): if val: val.sort(cmp=lambda x,y: cmp(x.lower(), y.lower())) val = val[0] + if txt == 'authors': + val = val.replace('|', ',') else: val = '' else: @@ -303,6 +305,8 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): # The standard tags and authors values want to be lists. # All custom columns are to be strings val = fm['is_multiple'].join(val) + elif field == 'authors': + val = [v.replace('|', ',') for v in val] else: val = apply_pattern(val) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui index 18d6760ea7..aca7b0cb75 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.ui +++ b/src/calibre/gui2/dialogs/metadata_bulk.ui @@ -328,6 +328,9 @@ Future conversion of these books will use the default settings. true + + true + diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index d07eac7670..26dbda6ca4 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -751,20 +751,22 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): try: if self.formats_changed: self.sync_formats() - title = unicode(self.title.text()) + title = unicode(self.title.text()).strip() self.db.set_title(self.id, title, notify=False) - au = unicode(self.authors.text()) + au = unicode(self.authors.text()).strip() if au: self.db.set_authors(self.id, string_to_authors(au), notify=False) - aus = unicode(self.author_sort.text()) + aus = unicode(self.author_sort.text()).strip() if aus: self.db.set_author_sort(self.id, aus, notify=False, commit=False) self.db.set_isbn(self.id, - re.sub(r'[^0-9a-zA-Z]', '', unicode(self.isbn.text())), + re.sub(r'[^0-9a-zA-Z]', '', + unicode(self.isbn.text()).strip()), notify=False, commit=False) self.db.set_rating(self.id, 2*self.rating.value(), notify=False, commit=False) - self.db.set_publisher(self.id, unicode(self.publisher.currentText()), + self.db.set_publisher(self.id, + unicode(self.publisher.currentText()).strip(), notify=False, commit=False) self.db.set_tags(self.id, [x.strip() for x in unicode(self.tags.text()).split(',')], notify=False, commit=False) @@ -773,7 +775,8 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): commit=False) self.db.set_series_index(self.id, self.series_index.value(), notify=False, commit=False) - self.db.set_comment(self.id, unicode(self.comments.toPlainText()), + self.db.set_comment(self.id, + unicode(self.comments.toPlainText()).strip(), notify=False, commit=False) d = self.pubdate.date() d = qt_to_dt(d) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index d67d286aeb..724454dccf 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -479,6 +479,36 @@ class BooksView(QTableView): # {{{ sm = self.selectionModel() sm.select(index, sm.ClearAndSelect|sm.Rows) + def select_rows(self, identifiers, using_ids=True, change_current=True, + scroll=True): + ''' + Select rows identified by identifiers. identifiers can be a set of ids, + row numbers or QModelIndexes. + ''' + selmode = self.selectionMode() + self.setSelectionMode(QAbstractItemView.MultiSelection) + try: + rows = set([x.row() if hasattr(x, 'row') else x for x in + identifiers]) + if using_ids: + rows = set([]) + identifiers = set(identifiers) + m = self.model() + for row in range(m.rowCount(QModelIndex())): + if m.id(row) in identifiers: + rows.add(row) + if rows: + row = list(sorted(rows))[0] + if change_current: + self.set_current_row(row, select=False) + if scroll: + self.scroll_to_row(row) + self.clearSelection() + for r in rows: + self.selectRow(r) + finally: + self.setSelectionMode(selmode) + def close(self): self._model.close() diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index 4f795ab733..211baeb634 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -589,9 +589,9 @@ class ResultCache(SearchQueryParser): if field not in self.field_metadata.iterkeys(): if field in ('author', 'tag', 'comment'): field += 's' - if field == 'date': field = 'timestamp' - elif field == 'title': field = 'sort' - elif field == 'authors': field = 'author_sort' + if field == 'date': field = 'timestamp' + elif field == 'title': field = 'sort' + elif field == 'authors': field = 'author_sort' return field def sort(self, field, ascending, subsort=False): diff --git a/src/calibre/library/server/content.py b/src/calibre/library/server/content.py index ecb467b4c2..95794a8c1d 100644 --- a/src/calibre/library/server/content.py +++ b/src/calibre/library/server/content.py @@ -56,7 +56,7 @@ class ContentServer(object): def sort(self, items, field, order): field = self.db.data.sanitize_sort_field_name(field) - if field not in ('title', 'authors', 'rating', 'timestamp', 'tags', 'size', 'series'): + if field not in self.db.field_metadata.field_keys(): raise cherrypy.HTTPError(400, '%s is not a valid sort field'%field) keyg = CSSortKeyGenerator([(field, order)], self.db.field_metadata) items.sort(key=keyg, reverse=not order) diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index 781048666b..beea30acb2 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -81,7 +81,7 @@ Device Integration What devices does |app| support? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -At the moment |app| has full support for the SONY PRS 300/500/505/600/700/900, Barnes & Noble Nook, Cybook Gen 3/Opus, Amazon Kindle 1/2/3/DX/DXG, Entourage Edge, Longshine ShineBook, Ectaco Jetbook, BeBook/BeBook Mini, Irex Illiad/DR1000, Foxit eSlick, PocketBook 360, Italica, eClicto, Iriver Story, Airis dBook, Hanvon N515, Binatone Readme, Teclast K3, SpringDesign Alex, Kobo Reader, various Android phones and the iPhone/iPad. In addition, using the :guilabel:`Save to disk` function you can use it with any ebook reader that exports itself as a USB disk. +At the moment |app| has full support for the SONY PRS line, Barnes & Noble Nook, Cybook Gen 3/Opus, Amazon Kindle line, Entourage Edge, Longshine ShineBook, Ectaco Jetbook, BeBook/BeBook Mini, Irex Illiad/DR1000, Foxit eSlick, PocketBook 360, Italica, eClicto, Iriver Story, Airis dBook, Hanvon N515, Binatone Readme, Teclast K3, SpringDesign Alex, Kobo Reader, various Android phones and the iPhone/iPad. In addition, using the :guilabel:`Save to disk` function you can use it with any ebook reader that exports itself as a USB disk. How can I help get my device supported in |app|? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 458e884972..c837e71acb 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.7.18\n" -"POT-Creation-Date: 2010-09-10 13:03+MDT\n" -"PO-Revision-Date: 2010-09-10 13:03+MDT\n" +"Project-Id-Version: calibre 0.7.19\n" +"POT-Creation-Date: 2010-09-17 14:11+MDT\n" +"PO-Revision-Date: 2010-09-17 14:11+MDT\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -22,7 +22,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:395 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:410 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 @@ -76,7 +76,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 @@ -99,43 +101,43 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:247 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:249 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:323 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:330 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:331 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:296 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1157 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1158 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1161 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:363 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:883 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1061 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1062 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:187 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:374 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:386 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1057 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1126 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1824 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1826 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1953 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1065 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1137 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1837 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1839 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1966 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:211 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:140 @@ -241,154 +243,154 @@ msgstr "" msgid "Set metadata from %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:683 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:684 msgid "Look and Feel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:685 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:697 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:708 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:686 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:698 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:709 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720 msgid "Interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:689 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:690 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:695 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:696 msgid "Behavior" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:701 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:702 msgid "Change the way calibre behaves" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:706 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:176 msgid "Add your own columns" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 msgid "Add/remove your own columns to the calibre book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718 msgid "Customize the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724 msgid "Customize the toolbars and context menus, changing which actions are available in each" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:730 msgid "Input Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:732 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:743 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754 msgid "Conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 msgid "Set conversion options specific to each input format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:741 msgid "Common Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 msgid "Set conversion options common to all formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752 msgid "Output Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758 msgid "Set conversion options specific to each output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:762 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:764 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:788 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:777 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:789 msgid "Import/Export" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Control how calibre reads metadata from files when adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775 msgid "Saving books to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 msgid "Control how calibre exports files from its database to disk when using Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Sending books to devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 msgid "Control how calibre transfers files to your ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:799 msgid "Sharing books by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:800 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:812 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:801 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:813 msgid "Sharing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 msgid "Setup sharing of books via email. Can be used for automatic sending of downloaded news to your devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:811 msgid "Sharing over the net" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 msgid "Setup the calibre Content Server which will give you access to your calibre library from anywhere, on any device, over the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:824 msgid "Plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:825 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:848 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:830 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:835 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:836 msgid "Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:841 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:842 msgid "Fine tune how calibre behaves in various contexts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:846 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:847 msgid "Miscellaneous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:853 msgid "Miscellaneous advanced configuration" msgstr "" @@ -417,7 +419,7 @@ msgid "This profile tries to provide sane defaults and is useful if you know not msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:418 msgid "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -426,62 +428,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:453 msgid "This profile is intended for the SONY PRS-900." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:483 msgid "This profile is intended for the Microsoft Reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 msgid "This profile is intended for the Mobipocket books." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:507 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:519 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:527 msgid "This profile is intended for the Cybook G3." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:540 msgid "This profile is intended for the Cybook Opus." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:551 msgid "This profile is intended for the Amazon Kindle." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:589 msgid "This profile is intended for the Irex Illiad." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:602 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:616 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 msgid "This profile is intended for the B&N Nook." msgstr "" @@ -493,27 +495,27 @@ msgstr "" msgid "This profile tries to provide sane defaults and is useful if you want to produce a document intended to be read at a computer or on a range of devices." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:262 msgid "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:431 msgid "This profile is intended for the Kobo Reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "This profile is intended for the SONY PRS-300." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the 5-inch JetBook." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:471 msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc, in landscape mode. Mainly useful for comics." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:571 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" @@ -608,16 +610,16 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:323 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:957 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2823 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2862 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:922 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2831 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2871 msgid "%d of %d" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2868 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:967 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2877 msgid "finished" msgstr "" @@ -642,27 +644,27 @@ msgid "" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2491 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2499 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:193 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:206 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1693 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:198 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:211 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1706 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:134 msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2492 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2500 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1656 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1674 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1669 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1687 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2730 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2738 msgid "Communicate with iTunes." msgstr "" @@ -800,14 +802,18 @@ msgstr "" msgid "Communicate with the Kindle DX eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:23 msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:170 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:47 +msgid "The Kobo supports only one collection currently: the \"Im_Reading\" list. Create a tag called \"Im_Reading\" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:63 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:66 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:69 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:186 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 @@ -817,33 +823,33 @@ msgstr "" msgid "Getting list of books on device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:230 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:246 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:278 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:278 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:285 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:282 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:289 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:290 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:324 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:294 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:328 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:251 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:252 msgid "Not Implemented" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:376 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:391 msgid "\".kobo\" files do not exist on the device as books instead, they are rows in the sqlite database. Currently they cannot be exported or viewed." msgstr "" @@ -928,6 +934,10 @@ msgstr "" msgid "Communicate with the iPapyrus reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:59 +msgid "Communicate with the Sovos reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "" @@ -1366,128 +1376,136 @@ msgid "Attempt to detect and correct hard line breaks and other problems in the msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +msgid "Scale used to determine the length at which a line should be unwrapped if preprocess is enabled. Valid values are a decimal between 0 and 1. The default is 0.40, just below the median line length. This will unwrap typical books with hard line breaks, but should be reduced if the line length is variable." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:376 +msgid "Convert plain quotes, dashes and ellipsis to their typographically correct equivalents. For details, see http://daringfireball.net/projects/smartypants" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:384 msgid "Use a regular expression to try and remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:374 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:391 msgid "The regular expression to use to remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:397 msgid "Use a regular expression to try and remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:404 msgid "The regular expression to use to remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:411 msgid "Read metadata from the specified OPF file. Metadata read from this file will override any metadata in the source file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 msgid "Transliterate unicode characters to an ASCII representation. Use with care because this will replace unicode characters with ASCII. For instance it will replace \"%s\" with \"Mikhail Gorbachiov\". Also, note that in cases where there are multiple representations of a character (characters shared by Chinese and Japanese for instance) the representation used by the largest number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:416 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:433 msgid "Preserve ligatures present in the input document. A ligature is a special rendering of a pair of characters like ff, fi, fl et cetera. Most readers do not have support for ligatures in their default fonts, so they are unlikely to render correctly. By default, calibre will turn a ligature into the corresponding pair of normal characters. This option will preserve them instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:432 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 msgid "Set the cover to the specified file or URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:465 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:469 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:473 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:477 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:481 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:485 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 msgid "Set the publication date." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:489 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:589 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:606 msgid "Could not find an ebook inside the archive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:647 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:664 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:654 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:671 msgid "Failed to parse date/time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:809 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:826 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:836 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:853 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:923 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:940 msgid "Creating" msgstr "" @@ -1804,8 +1822,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:888 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:589 msgid "Title" msgstr "" @@ -1813,8 +1831,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:402 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:365 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:883 msgid "Author(s)" msgstr "" @@ -1836,28 +1854,30 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1080 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1081 msgid "Comments" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:154 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:307 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1076 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1077 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:145 msgid "Tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:152 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1085 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1086 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:93 msgid "Series" msgstr "" @@ -1866,11 +1886,12 @@ msgid "Language" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1069 msgid "Timestamp" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:420 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" @@ -2197,7 +2218,7 @@ msgid "%s format books are not supported" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "" @@ -2205,8 +2226,9 @@ msgstr "" msgid "HTML TOC generation options." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:113 -msgid "Book Jacket" +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 +msgid "Rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 @@ -2258,7 +2280,7 @@ msgid "Do not extract images from the document" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 -msgid "Scale used to determine the length at which a line should be unwrapped. Valid values are a decimal between 0 and 1. The default is 0.5, this is the median line length." +msgid "Scale used to determine the length at which a line should be unwrapped. Valid values are a decimal between 0 and 1. The default is 0.45, just below the median line length." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 @@ -2507,128 +2529,128 @@ msgstr "" msgid "Force splitting on the max-line-length value when no space is present. Also allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:68 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:70 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:72 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:74 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:76 msgid "Sort tags list by name, popularity, or rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:78 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:80 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:82 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:94 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:96 msgid "Show the cover flow in a separate window instead of in the main calibre window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:98 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:100 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:120 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:122 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:124 msgid "Overwrite author and title with new metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:126 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:128 msgid "tag browser categories not to display" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 msgid "The layout of the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:132 msgid "Show the average rating per item indication in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:134 msgid "Disable UI animations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:216 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:216 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:433 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:434 msgid "Choose Files" msgstr "" @@ -2644,121 +2666,121 @@ msgstr "" msgid "A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:33 msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:35 msgid "Add books from directories, including sub-directories (One book per directory, assumes every ebook file is the same book in a different format)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:39 msgid "Add books from directories, including sub directories (Multiple books per directory, assumes every ebook file is a different book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:43 msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:45 msgid "Add from ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:84 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:85 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:142 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:201 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "Topaz books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:210 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 msgid "Some duplicates were found and merged into the following existing books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:220 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:239 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:240 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:239 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:240 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:253 msgid "The following books are virtual and cannot be added to the calibre library:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 msgid "No book files found" msgstr "" @@ -2775,58 +2797,58 @@ msgstr "" msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:236 msgid "Use library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:237 msgid "User annotations generated from main library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:30 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:204 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:92 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:65 msgid "No books selected to fetch annotations from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:90 msgid "Merging user annotations into database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:118 msgid "%s
Last Page Read: %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:124 msgid "%s
Last Page Read: Location %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:143 msgid "Location %d • %s
%s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:152 msgid "Page %d • %s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:157 msgid "Location %d • %s
" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:34 msgid "Create catalog of books in your calibre library" msgstr "" @@ -2936,7 +2958,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:249 #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:554 msgid "Not allowed" msgstr "" @@ -2957,19 +2979,19 @@ msgstr "" msgid "Convert books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:28 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:30 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:115 msgid "Starting conversion of %d book(s)" msgstr "" @@ -2981,34 +3003,34 @@ msgstr "" msgid "Copy selected books to the specified library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:115 msgid "Cannot copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:120 msgid "No library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:121 msgid "No library found at %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:128 msgid "Copying" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:138 msgid "Could not copy books: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:424 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:141 msgid "Copied %d books to %s" msgstr "" @@ -3020,80 +3042,80 @@ msgstr "" msgid "Remove books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:24 msgid "Remove selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:26 msgid "Remove files of a specific format from selected books.." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:29 msgid "Remove all formats from selected books, except..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:32 msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:35 msgid "Remove matching books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:53 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:66 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:84 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:104 msgid "Cannot delete books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:105 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:115 msgid "Main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:435 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:444 msgid "Storage Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:446 msgid "Storage Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:122 msgid "No books to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:123 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:195 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:161 msgid "The selected books will be permanently deleted and the files removed from your calibre library. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:180 msgid "The selected books will be permanently deleted from your device. Are you sure?" msgstr "" @@ -3156,79 +3178,79 @@ msgstr "" msgid "Edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:28 msgid "Merge book records" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:29 msgid "M" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:31 msgid "Edit metadata individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:34 msgid "Edit metadata in bulk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:37 msgid "Download metadata and covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:40 msgid "Download only metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:42 msgid "Download only covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:45 msgid "Download only social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:51 msgid "Merge into first selected book - delete others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:54 msgid "Merge into first selected book - keep others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:75 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:98 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:100 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:100 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:105 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:126 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:127 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:130 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:112 @@ -3236,29 +3258,29 @@ msgstr "" msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:177 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:207 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:208 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:211 -msgid "All book formats and metadata from the selected books will be added to the first selected book.

The second and subsequently selected books will not be deleted or changed.

Please confirm you want to proceed." +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:212 +msgid "Book formats and metadata from the selected books will be added to the first selected book. ISBN will not be merged.

The second and subsequently selected books will not be deleted or changed.

Please confirm you want to proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 -msgid "All book formats and metadata from the selected books will be merged into the first selected book.

After merger the second and subsequently selected books will be deleted.

All book formats of the first selected book will be kept and any duplicate formats in the second and subsequently selected books will be permanently deleted from your computer.

Are you sure you want to proceed?" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:224 +msgid "Book formats and metadata from the selected books will be merged into the first selected book. ISBN will not be merged.

After merger the second and subsequently selected books will be deleted.

All book formats of the first selected book will be kept and any duplicate formats in the second and subsequently selected books will be permanently deleted from your computer.

Are you sure you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:237 msgid "You are about to merge more than 5 books. Are you sure you want to proceed?" msgstr "" @@ -3336,50 +3358,50 @@ msgid "S" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:46 msgid "Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:48 msgid "Save to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:69 msgid "Save only %s format to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:72 msgid "Save only %s format to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:94 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:102 msgid "You are trying to save files into the calibre library. This can cause corruption of your library. Save to disk is meant to export files from your calibre library elsewhere." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:136 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:137 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:145 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:146 msgid "Click the show details button to see which ones." msgstr "" @@ -3391,11 +3413,11 @@ msgstr "" msgid "I" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:26 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:27 msgid "No detailed information is available for books on the device." msgstr "" @@ -3403,35 +3425,35 @@ msgstr "" msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 msgid "Alt+A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 msgid "Books by same author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:25 msgid "Books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:26 msgid "Alt+Shift+S" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:27 msgid "Alt+P" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:27 msgid "Books by this publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:28 msgid "Alt+T" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:28 msgid "Books with the same tags" msgstr "" @@ -3440,37 +3462,37 @@ msgid "V" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:32 msgid "View" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:33 msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:110 msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:157 msgid "%s has no available formats." msgstr "" @@ -3495,7 +3517,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:228 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:806 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:807 msgid "No books" msgstr "" @@ -3603,19 +3625,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 @@ -3675,8 +3697,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:314 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1066 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Path" msgstr "" @@ -3686,15 +3708,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:307 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:100 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:102 msgid "Formats" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:892 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1070 msgid "Collections" msgstr "" @@ -3704,11 +3726,11 @@ msgid "Click to open" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:300 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1079 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1076 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1080 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 @@ -3759,14 +3781,14 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 @@ -3776,7 +3798,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 @@ -3784,14 +3806,14 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/conversion_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:105 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:46 @@ -3881,27 +3903,27 @@ msgid "E-book options" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 msgid "'Don't include this book' tag:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 msgid "'Mark this book as read' tag:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 msgid "Additional note tag prefix:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie]\n" @@ -3909,20 +3931,25 @@ msgid "" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "Include 'Titles' Section" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Include 'Recently Added' Section" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Sort numbers as text" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +msgid "Include 'Series' Section" +msgstr "" + #: #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" @@ -4117,15 +4144,15 @@ msgid "&Base font size:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 msgid "Font size &key:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 @@ -4176,66 +4203,70 @@ msgstr "" msgid "Justify text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 msgid "&Disable font size rescaling" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 msgid "Base &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 msgid "Wizard to help you choose an appropriate font size key" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Line &height:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 msgid "Input character &encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid "Remove &spacing between paragraphs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 msgid "Indent size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "

When calibre removes inter paragraph spacing, it automatically sets a paragraph indent, to ensure that paragraphs can be easily distinguished. This option controls the width of that indent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 msgid " em" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "Text justification:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 msgid "&Linearize tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Extra &CSS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:139 msgid "&Transliterate unicode characters to ASCII" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:140 msgid "Insert &blank line" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:141 msgid "Keep &ligatures" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:142 +msgid "Smarten &punctuation" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" msgstr "" @@ -4299,38 +4330,38 @@ 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:165 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:109 msgid "Choose cover for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 msgid "Cannot read" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117 msgid "You do not have permission to read the file: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 msgid "Error reading file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:126 msgid "

There was an error reading from file:
" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 msgid " is not a valid picture" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Book Cover" msgstr "" @@ -4339,7 +4370,7 @@ msgid "Use cover from &source file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 msgid "Change &cover image:" msgstr "" @@ -4358,7 +4389,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:229 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 msgid "&Author(s): " msgstr "" @@ -4372,39 +4403,39 @@ msgid "Change the author(s) of this book. Multiple authors should be separated b msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:238 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 msgid "&Publisher: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:240 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 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:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "List of known series. You can add new series." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Book " msgstr "" @@ -4563,7 +4594,7 @@ msgid "Regex:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Test" msgstr "" @@ -4600,72 +4631,77 @@ msgstr "" msgid "Fine tune the detection of chapter headings and other document structure." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 msgid "Detect chapters at (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:38 msgid "Insert page breaks before (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 msgid "Header regular expression:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:43 msgid "Footer regular expression:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 msgid "Invalid regular expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:88 msgid "Invalid regular expression: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 msgid "Invalid XPath" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:40 msgid "The XPath expression %s is invalid." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:81 msgid "Chapter &mark:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:82 msgid "Remove first &image" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:83 msgid "Insert &metadata as page at start of book" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 -msgid "&Preprocess input file to possibly improve structure detection" -msgstr "" - -#: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:84 msgid "Remove F&ooter" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:85 msgid "Remove H&eader" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:86 +msgid "Line &un-wrap factor during preprocess:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:87 +msgid "&Preprocess input file to possibly improve structure detection" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" @@ -4878,7 +4914,7 @@ msgid " index:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:451 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:256 msgid "Automatically number books in this series" msgstr "" @@ -4980,137 +5016,137 @@ msgstr "" msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:677 msgid "There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:717 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:718 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:807 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:808 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:822 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:825 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 -msgid "No card" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/device.py:826 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:830 +msgid "No card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:831 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:890 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 -msgid "No suitable formats" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/device.py:920 -msgid "Auto convert the following books before sending via email?" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/device.py:928 -msgid "Could not email the following books as no suitable formats were found:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:946 -msgid "Failed to email books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:947 -msgid "Failed to email the following books:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:951 -msgid "Sent by email:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 -msgid "News:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:980 -msgid "Attached is the" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "Sent news to" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1021 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1210 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:921 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:929 +msgid "Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:947 +msgid "Failed to email books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:948 +msgid "Failed to email the following books:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 +msgid "Sent by email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:980 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:981 +msgid "Attached is the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:992 +msgid "Sent news to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1022 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1203 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1051 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1052 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1115 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1116 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1210 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1211 msgid "Could not upload the following books to the device, as no suitable formats were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1273 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1273 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1274 msgid "

Cannot upload books to device there is no more free space available " msgstr "" @@ -5304,7 +5340,7 @@ msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:884 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:588 msgid "Date" @@ -5312,7 +5348,7 @@ msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1066 msgid "Format" msgstr "" @@ -5438,88 +5474,122 @@ msgstr "" msgid "Stop &all non device jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 +msgid "Lower Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:384 +msgid "Upper Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:387 +msgid "Title Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:119 msgid "Editing meta information for %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:166 +msgid "Book %d:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:182 +msgid "Search and replace in text fields using regular expressions. 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. See this reference for more information, and in particular the 'sub' function." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 +msgid "Note: 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." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:382 +msgid "Search/replace invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:383 +msgid "Search pattern is invalid: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:415 msgid "Applying changes to %d books. This may take a while." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:228 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:230 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:231 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:232 msgid "Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:236 msgid "No change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:239 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:243 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:244 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:182 -msgid "Remove all" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:245 msgid "Check this box to remove all tags from the books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:246 +msgid "Remove all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:250 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:251 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:252 msgid "" "Selected books will be automatically numbered,\n" "in the order you selected them.\n" @@ -5527,160 +5597,200 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:257 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:260 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:198 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:199 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:416 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:263 +msgid "Search &field:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:264 +msgid "&Search for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:265 +msgid "&Replace with:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:266 +msgid "Apply function &after replace:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:267 +msgid "Test &text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:268 +msgid "Test re&sult" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:269 +msgid "Your test:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:270 +msgid "&Search and replace (experimental)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 msgid "Last modified: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 msgid "Specify title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 msgid "You must specify a title and author before generating a cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:169 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:231 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:229 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:243 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:240 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:244 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:241 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:292 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:295 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:299 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:296 msgid "The cover in the %s format is invalid" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:333 +msgid " The green color indicates that the current author sort matches the current author" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:336 +msgid " The red color indicates that the current author sort does not match the current author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:341 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:474 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:510 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:513 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:592 msgid "Cannot use tag editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:593 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:613 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:594 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:641 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:642 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:627 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:631 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:643 msgid "For the error message from each cover source, click Show details below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:619 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:650 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:620 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:651 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:653 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:684 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:685 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:714 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:684 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:715 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:798 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:799 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5700,75 +5810,83 @@ msgstr "" msgid "Author S&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 -msgid "Automatically create the author sort entry based on the current author entry" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +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/dialogs/metadata_single_ui.py:387 -msgid "Remove unused series (Series that have no books)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +msgid "" +"Automatically create the author sort entry based on the current author entry.\n" +"Using this button to create author sort will change author sort from red to green." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +msgid "Remove unused series (Series that have no books)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 msgid "IS&BN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 msgid "dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 msgid "&Date:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 msgid "&Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 msgid "&Fetch metadata from server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 msgid "Available Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 msgid "Add a new format for this book to the database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 msgid "Set the cover for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 msgid "&Browse" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:412 msgid "Download co&ver" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413 msgid "Generate a default cover based on the title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:414 msgid "&Generate cover" msgstr "" @@ -6069,12 +6187,12 @@ msgid "Choose formats" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:82 msgid "Authors" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:113 msgid "Publishers" msgstr "" @@ -6243,7 +6361,7 @@ msgid "Send test mail from %s to:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 msgid "&Test" msgstr "" @@ -6415,7 +6533,7 @@ msgstr "" msgid "Recipe source code (python)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "\n" "