diff --git a/.bzrignore b/.bzrignore
index aa6637bc7a..005391bf46 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -31,3 +31,4 @@ nbproject/
.pydevproject
.settings/
*.DS_Store
+calibre_plugins/
\ No newline at end of file
diff --git a/Changelog.yaml b/Changelog.yaml
index 6045762cc2..f57a545aec 100644
--- a/Changelog.yaml
+++ b/Changelog.yaml
@@ -19,6 +19,149 @@
# new recipes:
# - title:
+- version: 0.8.2
+ date: 2011-05-20
+
+ new features:
+ - title: "Various new ebook sources added to Get Books: Google Books, O'Reilly, archive.org, some Polish ebooks stores, etc."
+
+ - title: "Amazon metadata download: Allow user to configure Amazon plugin to use any of the US, UK, German, French and Italian Amazon websites"
+
+ - title: "When deleting large numbers of books, give the user the option to skip the Recycle Bin, since sending lots of files to the recycle bin can be very slow."
+ tickets: [784987]
+
+ - title: "OS X: The unified title+toolbar was disabled as it had various bugs. If you really want it you can turn it on again via Preferences->Tweaks, but be aware that you will see problems like the calibre windowd being too wide, weird animations when a device is detected, etc."
+
+ - title: "Add a tweak that controls what words are treated as suffixes when generating an author sort string from an author name."
+
+ - title: "Get Books: Store last few searches in history"
+
+ bug fixes:
+ - title: "Fix a crash when a device is connected/disconnected while a modal dialog opened from the toolbar is visible"
+ tickets: [780484]
+
+ - title: "Fix incorrect results from ebooks.com when searching via Get Books"
+
+ - title: "Metadata plugboards: Add prioritization scheme to allow for using different settings for different locations"
+ tickets: [783229]
+
+ - title: "Fix manage authors dialog too wide"
+ tickets: [783065]
+
+ - title: "Fix multiple bracket types in author names not handled correctly when generating author sort string"
+ tickets: [782551]
+
+ - title: "MOBI Input: Don't error out when detecting TOC structure if one of the elements has an invalid margin unit"
+
+ - title: "More fixes for japanese language calibre on windows"
+ tickets: [782408]
+
+ - title: "Linux binaries: Always use either Cleanlook or Plastique styles for the GUI if no style can be loaded from the host computer"
+
+ improved recipes:
+ - Newsweek
+ - Economist
+ - Dvhn
+ - United Daily
+ - Dagens Nyheter
+ - GoComics
+ - faz.net
+ - golem.de
+
+ new recipes:
+ - title: National Geographic
+ author: gagsays
+
+ - title: Various German news sources
+ author: schuster
+
+ - title: Dilema Veche
+ author: Silviu Cotoara
+
+ - title: "Glamour, Good to Know, Good Housekeeping and Men's Health"
+ author: Anonymous
+
+ - title: "Financial Sense and iProfessional"
+ author: Darko Miletic
+
+
+- version: 0.8.1
+ date: 2011-05-13
+
+ new features:
+ - title: "Add Amazon DE, Beam EBooks, Beam DE, Weightless Books, Wizards Tower Books to the list of ebook stores searched by Get Books"
+
+ - title: "TXT output: All new Textile output with much greater preservation of formatting from the input document"
+
+ - title: "Migrate metadata plugin for Douban Books to the 0.8 API"
+
+ - title: "Driver for Dell Streak on windows"
+
+ - title: "Add menu items to Get Books action to search by title and author of current book"
+
+ - title: "Add title_sort as available field to CSV/XML catalogs"
+
+ - title: "Add a context menu to the manage authors dialog"
+
+ - title: "Add a button to paste isbn into the identifiers field in the edit metadata dialog automatically"
+
+ bug fixes:
+ - title: "Amazon metadata download plugin: Fix links being stripped from comments. Also fix ratings/isbn not being parsed from kindle edition pages."
+ tickets: [782012]
+
+ - title: "Fix one source of segfaults on shutdown in the linux binary builds."
+
+ - title: "Allow the use of condensed/expanded fonts as interface fonts"
+
+ - title: "EPUB Input: Ignore missing cover file when converting, instead of erroring out."
+ tickets: [781848]
+
+ - title: "Fix custom identifier being erased by metadata download"
+ tickets: [781759]
+
+ - title: "Fix regression that broke various things when using Japanese language calibre on windows"
+ tickets: [780804]
+
+ - title: "RTF Input: Handle null color codes correctly"
+ tickets: [780728]
+
+ - title: "ODT Input: Handle inline special styles defined on W.* lektury.*
]*>
', lambda match: ''), + (r''+
+ _('You are trying to delete %d books. '
+ 'Sending so many files to the Recycle'
+ ' Bin can be slow. Should calibre skip the'
+ ' Recycle Bin? If you click Yes the files'
+ ' will be permanently deleted.')%len(ids)):
+ self.permanent = True
self.gui = gui
self.failures = []
self.deleted_ids = []
@@ -44,7 +54,8 @@ class MultiDeleter(QObject):
title_ = self.model.db.title(id_, index_is_id=True)
if title_:
title = title_
- self.model.db.delete_book(id_, notify=False, commit=False)
+ self.model.db.delete_book(id_, notify=False, commit=False,
+ permanent=self.permanent)
self.deleted_ids.append(id_)
except:
import traceback
diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py
index 4ab4950179..ac475cb027 100644
--- a/src/calibre/gui2/actions/edit_metadata.py
+++ b/src/calibre/gui2/actions/edit_metadata.py
@@ -478,6 +478,10 @@ class EditMetadataAction(InterfaceAction):
try:
set_title = not mi.is_null('title')
set_authors = not mi.is_null('authors')
+ idents = db.get_identifiers(i, index_is_id=True)
+ if mi.identifiers:
+ idents.update(mi.identifiers)
+ mi.identifiers = idents
db.set_metadata(i, mi, commit=False, set_title=set_title,
set_authors=set_authors, notify=False)
self.applied_ids.append(i)
diff --git a/src/calibre/gui2/actions/preferences.py b/src/calibre/gui2/actions/preferences.py
index b65967e994..1ebd4ea6ba 100644
--- a/src/calibre/gui2/actions/preferences.py
+++ b/src/calibre/gui2/actions/preferences.py
@@ -19,8 +19,9 @@ class PreferencesAction(InterfaceAction):
def genesis(self):
pm = QMenu()
- acname = _('Change calibre behavior') if isosx else _('Preferences')
- pm.addAction(QIcon(I('config.png')), acname, self.do_config)
+ pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config)
+ if isosx:
+ pm.addAction(QIcon(I('config.png')), _('Change calibre behavior'), self.do_config)
pm.addAction(QIcon(I('wizard.png')), _('Run welcome wizard'),
self.gui.run_wizard)
if not DEBUG:
diff --git a/src/calibre/gui2/actions/store.py b/src/calibre/gui2/actions/store.py
index 90f2cac3cd..0fd783f0a3 100644
--- a/src/calibre/gui2/actions/store.py
+++ b/src/calibre/gui2/actions/store.py
@@ -10,6 +10,7 @@ from functools import partial
from PyQt4.Qt import QMenu
+from calibre.gui2 import error_dialog
from calibre.gui2.actions import InterfaceAction
from calibre.gui2.dialogs.confirm_delete import confirm
@@ -19,24 +20,102 @@ class StoreAction(InterfaceAction):
action_spec = (_('Get books'), 'store.png', None, None)
def genesis(self):
- self.qaction.triggered.connect(self.search)
+ self.qaction.triggered.connect(self.do_search)
self.store_menu = QMenu()
self.load_menu()
def load_menu(self):
self.store_menu.clear()
- self.store_menu.addAction(_('Search'), self.search)
+ self.store_menu.addAction(_('Search for ebooks'), self.search)
+ self.store_menu.addAction(_('Search for this author'), self.search_author)
+ self.store_menu.addAction(_('Search for this title'), self.search_title)
+ self.store_menu.addAction(_('Search for this book'), self.search_author_title)
self.store_menu.addSeparator()
- for n, p in self.gui.istores.items():
- self.store_menu.addAction(n, partial(self.open_store, p))
+ self.store_list_menu = self.store_menu.addMenu(_('Stores'))
+ for n, p in sorted(self.gui.istores.items(), key=lambda x: x[0].lower()):
+ self.store_list_menu.addAction(n, partial(self.open_store, p))
+ self.store_menu.addSeparator()
+ self.store_menu.addAction(_('Choose stores'), self.choose)
self.qaction.setMenu(self.store_menu)
- def search(self):
+ def do_search(self):
+ return self.search()
+
+ def search(self, query=''):
self.show_disclaimer()
from calibre.gui2.store.search.search import SearchDialog
- sd = SearchDialog(self.gui.istores, self.gui)
+ sd = SearchDialog(self.gui.istores, self.gui, query)
sd.exec_()
+ def _get_selected_row(self):
+ rows = self.gui.current_view().selectionModel().selectedRows()
+ if not rows or len(rows) == 0:
+ return None
+ return rows[0].row()
+
+ def _get_author(self, row):
+ authors = []
+
+ if self.gui.current_view() is self.gui.library_view:
+ a = self.gui.library_view.model().authors(row)
+ authors = a.split(',')
+ else:
+ mi = self.gui.current_view().model().get_book_display_info(row)
+ authors = mi.authors
+
+ corrected_authors = []
+ for x in authors:
+ a = x.split('|')
+ a.reverse()
+ a = ' '.join(a)
+ corrected_authors.append(a)
+
+ return ' & '.join(corrected_authors).strip()
+
+ def search_author(self):
+ row = self._get_selected_row()
+ if row == None:
+ error_dialog(self.gui, _('Cannot search'), _('No book selected'), show=True)
+ return
+
+ query = 'author:"%s"' % self._get_author(row)
+ self.search(query)
+
+ def _get_title(self, row):
+ title = ''
+ if self.gui.current_view() is self.gui.library_view:
+ title = self.gui.library_view.model().title(row)
+ else:
+ mi = self.gui.current_view().model().get_book_display_info(row)
+ title = mi.title
+
+ return title.strip()
+
+ def search_title(self):
+ row = self._get_selected_row()
+ if row == None:
+ error_dialog(self.gui, _('Cannot search'), _('No book selected'), show=True)
+ return
+
+ query = 'title:"%s"' % self._get_title(row)
+ self.search(query)
+
+ def search_author_title(self):
+ row = self._get_selected_row()
+ if row == None:
+ error_dialog(self.gui, _('Cannot search'), _('No book selected'), show=True)
+ return
+
+ query = 'author:"%s" title:"%s"' % (self._get_author(row), self._get_title(row))
+ self.search(query)
+
+ def choose(self):
+ from calibre.gui2.store.config.chooser.chooser_dialog import StoreChooserDialog
+ d = StoreChooserDialog(self.gui)
+ d.exec_()
+ self.gui.load_store_plugins()
+ self.load_menu()
+
def open_store(self, store_plugin):
self.show_disclaimer()
store_plugin.open(self.gui)
diff --git a/src/calibre/gui2/bars.py b/src/calibre/gui2/bars.py
new file mode 100644
index 0000000000..7dc0567d95
--- /dev/null
+++ b/src/calibre/gui2/bars.py
@@ -0,0 +1,316 @@
+#!/usr/bin/env python
+# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
+from __future__ import (unicode_literals, division, absolute_import,
+ print_function)
+
+__license__ = 'GPL v3'
+__copyright__ = '2011, Kovid Goyal ' + ', '.join(all_colors) + ' ' +
+ _('Here you can specify coloring rules for columns shown in the '
+ 'library view. Choose the column you wish to color, then '
+ 'supply a template that specifies the color to use based on '
+ 'the values in the column. There is a '
+ ''
+ 'tutorial on using templates.') +
+ ' ' +
+ _('If you want to color a field based on tags, then click the '
+ 'button next to an empty line to open the tags wizard. '
+ 'It will build a template for you. You can later edit that '
+ 'template with the same wizard. If you edit it by hand, the '
+ 'wizard might not work or might restore old values.') +
+ ' ' +
+ _('The template must evaluate to one of the color names shown '
+ 'below. You can use any legal template expression. '
+ 'For example, you can set the title to always display in '
+ 'green using the template "green" (without the quotes). '
+ 'To show the title in the color named in the custom column '
+ '#column, use "{#column}". To show the title in blue if the '
+ 'custom column #column contains the value "foo", in red if the '
+ 'column contains the value "bar", otherwise in black, use '
+ '{#column:switch(foo,blue,bar,red,black)}
'
+ 'To show the title in blue if the book has the exact tag '
+ '"Science Fiction", red if the book has the exact tag '
+ '"Mystery", or black if the book has neither tag, use'
+ "program: \n"
+ " t = field('tags'); \n"
+ " first_non_empty(\n"
+ " in_list(t, ',', '^Science Fiction$', 'blue', ''), \n"
+ " in_list(t, ',', '^Mystery$', 'red', 'black'))
"
+ 'To show the title in green if it has one format, blue if it '
+ 'two formats, and red if more, use'
+ "program:cmp(count(field('formats'),','), 2, 'green', 'blue', 'red')
") +
+ '
' + + _('You can access a multi-line template editor from the ' + 'context menu (right-click).') + '
' + + _('Note: if you want to color a "custom column with a fixed set ' + 'of values", it is often easier to specify the ' + 'colors in the column definition dialog. There you can ' + 'provide a color for each value without using a template.')+ '
') + choices = db.field_metadata.displayable_field_keys() + choices.sort(key=sort_key) + choices.insert(0, '') + self.column_color_count = db.column_color_count+1 + tags = db.all_tags() + for i in range(1, self.column_color_count): + r('column_color_name_'+str(i), db.prefs, choices=choices) + r('column_color_template_'+str(i), db.prefs) + tpl = getattr(self, 'opt_column_color_template_'+str(i)) + tpl.set_tags(tags) + toolbutton = getattr(self, 'opt_column_color_wizard_'+str(i)) + toolbutton.clicked.connect(tpl.tag_wizard) + all_colors = [unicode(s) for s in list(QColor.colorNames())] + self.colors_box.setText(', '.join(all_colors)) + def initialize(self): ConfigWidgetBase.initialize(self) - self.current_font = self.initial_font = gprefs['font'] + font = gprefs['font'] + if font is not None: + font = list(font) + font.append(gprefs.get('font_stretch', QFont.Unstretched)) + self.current_font = self.initial_font = font self.update_font_display() self.display_model.initialize() @@ -178,7 +238,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): def build_font_obj(self): font_info = self.current_font if font_info is not None: - font = QFont(*font_info) + font = QFont(*(font_info[:4])) + font.setStretch(font_info[4]) else: font = qt_app.original_font return font @@ -215,21 +276,31 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): if fd.exec_() == fd.Accepted: font = fd.selectedFont() fi = QFontInfo(font) - self.current_font = (unicode(fi.family()), fi.pointSize(), - fi.weight(), fi.italic()) + self.current_font = [unicode(fi.family()), fi.pointSize(), + fi.weight(), fi.italic(), font.stretch()] self.update_font_display() self.changed_signal.emit() def commit(self, *args): + for i in range(1, self.column_color_count): + col = getattr(self, 'opt_column_color_name_'+str(i)) + tpl = getattr(self, 'opt_column_color_template_'+str(i)) + if not col.currentIndex() or not unicode(tpl.text()).strip(): + col.setCurrentIndex(0) + tpl.setText('') rr = ConfigWidgetBase.commit(self, *args) if self.current_font != self.initial_font: - gprefs['font'] = self.current_font + gprefs['font'] = (self.current_font[:4] if self.current_font else + None) + gprefs['font_stretch'] = (self.current_font[4] if self.current_font + is not None else QFont.Unstretched) QApplication.setFont(self.font_display.font()) rr = True self.display_model.commit() return rr def refresh_gui(self, gui): + gui.library_view.model().set_color_templates() self.update_font_display() gui.tags_view.reread_collapse_parameters() gui.library_view.refresh_book_details() diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui index 244b811cbd..fe6134f235 100644 --- a/src/calibre/gui2/preferences/look_feel.ui +++ b/src/calibre/gui2/preferences/look_feel.ui @@ -7,7 +7,7 @@%s
' % result.description) + return NONE + + def setData(self, index, data, role): + if not index.isValid(): + return False + row, col = index.row(), index.column() + if col == 0: + if data.toBool(): + enable_plugin(self.get_plugin(index)) + else: + disable_plugin(self.get_plugin(index)) + self.dataChanged.emit(self.index(index.row(), 0), self.index(index.row(), self.columnCount() - 1)) + return True + + def flags(self, index): + if index.column() == 0: + return QAbstractItemModel.flags(self, index) | Qt.ItemIsUserCheckable + return QAbstractItemModel.flags(self, index) + + def data_as_text(self, match, col): + text = '' + if col == 0: + text = 'b' if is_disabled(match) else 'a' + elif col == 1: + text = match.name + elif col == 2: + text = 'b' if getattr(match, 'drm', True) else 'a' + elif col == 3: + text = getattr(match, 'headquarters', '') + return text + + def sort(self, col, order, reset=True): + self.sort_col = col + self.sort_order = order + if not self.matches: + return + descending = order == Qt.DescendingOrder + self.matches.sort(None, + lambda x: sort_key(unicode(self.data_as_text(x, col))), + descending) + if reset: + self.reset() + + +class SearchFilter(SearchQueryParser): + + USABLE_LOCATIONS = [ + 'all', + 'description', + 'drm', + 'enabled', + 'format', + 'formats', + 'headquarters', + 'name', + ] + + def __init__(self, all_plugins=[]): + SearchQueryParser.__init__(self, locations=self.USABLE_LOCATIONS) + self.srs = set(all_plugins) + + def universal_set(self): + return self.srs + + def get_matches(self, location, query): + location = location.lower().strip() + if location == 'formats': + location = 'format' + + matchkind = CONTAINS_MATCH + if len(query) > 1: + if query.startswith('\\'): + query = query[1:] + elif query.startswith('='): + matchkind = EQUALS_MATCH + query = query[1:] + elif query.startswith('~'): + matchkind = REGEXP_MATCH + query = query[1:] + if matchkind != REGEXP_MATCH: ### leave case in regexps because it can be significant e.g. \S \W \D + query = query.lower() + + if location not in self.USABLE_LOCATIONS: + return set([]) + matches = set([]) + all_locs = set(self.USABLE_LOCATIONS) - set(['all']) + locations = all_locs if location == 'all' else [location] + q = { + 'description': lambda x: x.description.lower(), + 'drm': lambda x: not x.drm_free_only, + 'enabled': lambda x: not is_disabled(x), + 'format': lambda x: ','.join(x.formats).lower(), + 'headquarters': lambda x: x.headquarters.lower(), + 'name': lambda x : x.name.lower(), + } + q['formats'] = q['format'] + for sr in self.srs: + for locvalue in locations: + accessor = q[locvalue] + if query == 'true': + if locvalue in ('drm', 'enabled'): + if accessor(sr) == True: + matches.add(sr) + elif accessor(sr) is not None: + matches.add(sr) + continue + if query == 'false': + if locvalue in ('drm', 'enabled'): + if accessor(sr) == False: + matches.add(sr) + elif accessor(sr) is None: + matches.add(sr) + continue + # this is bool, so can't match below + if locvalue in ('drm', 'enabled'): + continue + try: + ### Can't separate authors because comma is used for name sep and author sep + ### Exact match might not get what you want. For that reason, turn author + ### exactmatch searches into contains searches. + if locvalue == 'name' and matchkind == EQUALS_MATCH: + m = CONTAINS_MATCH + else: + m = matchkind + + if locvalue == 'format': + vals = accessor(sr).split(',') + else: + vals = [accessor(sr)] + if _match(query, vals, m): + matches.add(sr) + break + except ValueError: # Unicode errors + import traceback + traceback.print_exc() + return matches + + diff --git a/src/calibre/gui2/store/config/chooser/results_view.py b/src/calibre/gui2/store/config/chooser/results_view.py new file mode 100644 index 0000000000..1c18a18d7b --- /dev/null +++ b/src/calibre/gui2/store/config/chooser/results_view.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +from __future__ import (unicode_literals, division, absolute_import, print_function) + +__license__ = 'GPL 3' +__copyright__ = '2011, John SchemberThere was an error reading from file:
"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:204
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:713
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:754
msgid " is not a valid picture"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:159
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:446
msgid "Book Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:160
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:447
msgid "Change &cover image:"
msgstr ""
@@ -6428,19 +6224,16 @@ msgid "Use cover from &source file"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:164
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408
msgid "&Title: "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:62
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:72
msgid "Change the title of this book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:525
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:420
msgid "&Author(s): "
msgstr ""
@@ -6456,19 +6249,16 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:535
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:428
msgid "&Publisher: "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:429
msgid "Ta&gs: "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:537
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:430
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:868
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:909
msgid ""
"Tags categorize the book. This is particularly useful while searching. "
"
They can be any words or phrases, separated by commas."
@@ -6476,9 +6266,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:544
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:433
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:314
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:355
msgid "&Series:"
msgstr ""
@@ -6486,14 +6275,11 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:434
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:435
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:313
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:354
msgid "List of known series. You can add new series."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:438
msgid "Book "
msgstr ""
@@ -6502,7 +6288,7 @@ msgid "MOBI Output"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:44
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:64
msgid "Default"
msgstr ""
@@ -7087,40 +6873,38 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:149
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:183
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:302
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:566
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:607
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:630
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:681
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:567
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:608
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:631
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:682
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:311
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:506
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:222
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:255
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:259
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1066
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1117
msgid "Undefined"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:126
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:638
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:639
msgid "star(s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:127
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:639
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:640
msgid "Unrated"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:170
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:668
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:669
msgid "Set '%s' to today"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:172
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:670
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:671
msgid "Clear '%s'"
msgstr ""
@@ -7134,37 +6918,37 @@ msgid ""
"default"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:521
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:522
msgid "Apply changes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:714
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:715
msgid "Remove series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:717
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:718
msgid "Automatically number books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:720
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:721
msgid "Force numbers to start with "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:791
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:792
msgid ""
"The enumeration \"{0}\" contains invalid values that will not appear in the "
"list"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:835
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:836
msgid "Remove all tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:855
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:856
msgid "tags to add"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:862
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:863
msgid "tags to remove"
msgstr ""
@@ -7247,8 +7031,8 @@ msgid "Eject device"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:611
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:49
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:309
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:55
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:313
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54
msgid "Error"
msgstr ""
@@ -7352,25 +7136,25 @@ msgid ""
"
Cannot upload books to device there is no more free space available " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:135 msgid "Unknown formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:136 msgid "" "You have enabled the {0} formats for your {1}. The {1} may not " "support them. If you send these formats to your {1} they may not work. Are " "you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:409 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:274 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:61 msgid "Invalid template" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:410 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:275 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:62 @@ -7748,13 +7532,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/store/search/adv_search_builder_ui.py:189 msgid "&Title:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:167 msgid "&Author(s):" msgstr "" @@ -7769,7 +7553,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:233 msgid "&Cancel" msgstr "" @@ -7784,13 +7568,13 @@ msgid "Where do you want to delete from?" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:64 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:228 msgid "Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:66 msgid "Device" msgstr "" @@ -7818,7 +7602,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:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:979 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:73 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:321 @@ -7844,138 +7628,113 @@ msgid "" "Books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:43 msgid "Author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:503 +msgid "No matches found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:419 +msgid "Change Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:420 +msgid "Upper Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:421 +msgid "Lower Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:422 +msgid "Swap Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:423 +msgid "Title Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:424 +msgid "Capitalize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:141 +msgid "Copy to author sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:144 +msgid "Copy to author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:271 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1439 msgid "Invalid author name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:272 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1440 msgid "Author names cannot contain & characters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:120 msgid "Manage authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:597 +msgid "&Search for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2105 +msgid "F&ind" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:93 msgid "Sort by author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:94 msgid "Sort by author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:95 msgid "" "Reset all the author sort values to a value automatically\n" "generated from the author. Exactly how this value is automatically\n" "generated can be controlled via Preferences->Advanced->Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:98 msgid "Recalculate all author sort values" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:99 msgid "" "Copy author sort to author for every author. You typically use this button\n" "after changing Preferences->Advanced->Tweaks->Author sort name algorithm" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:101 msgid "Copy all author sort values to author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:191 -msgid "Author Sort" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65 -msgid "ISBN" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:66 -msgid "Has Cover" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:67 -msgid "Has Summary" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 -msgid "Finding metadata..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:206 -msgid "Could not find metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:207 -msgid "The metadata download seems to have stalled. Try again later." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:216 -msgid "Warning" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:217 -msgid "Could not fetch metadata from:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:221 -msgid "No metadata found" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:222 -msgid "" -"No metadata found, try adjusting the title and author and/or removing the " -"ISBN." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:93 -msgid "Fetch metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:94 -msgid "" -"
calibre can find metadata for your books from two locations: Google " -"Books and isbndb.com.
To use isbndb.com you must sign up for a "
-"free account and enter your access key "
-"below."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:95
-msgid "&Access Key:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:96
-msgid "Fetch"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:97
-msgid "Matches"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:98
-msgid ""
-"Select the book that most closely matches your copy from the list below"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:99
-msgid "Overwrite author and title with author and title of selected book"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:100
-msgid "Download &social metadata (tags/rating/etc.) for the selected book"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:45
msgid "Details of job"
msgstr ""
@@ -7996,34 +7755,34 @@ msgstr ""
msgid "Stop &all non device jobs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:43
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:49
msgid "&Copy to clipboard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:48
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:53
msgid "Show &details"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:49
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:54
msgid "Hide &details"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:58
msgid "Show detailed information about this error"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:93
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:98
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525
msgid "Copied"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:130
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:135
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:770
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205
msgid "Copy to clipboard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:179
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:831
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:922
msgid "View log"
@@ -8038,6 +7797,7 @@ msgid "Standard metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:852
msgid "Custom metadata"
msgstr ""
@@ -8050,26 +7810,6 @@ msgstr ""
msgid "Working"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:260
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:421
-msgid "Lower Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:420
-msgid "Upper Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:262
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:423
-msgid "Title Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:263
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:424
-msgid "Capitalize"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:266
msgid "Character match"
msgstr ""
@@ -8225,16 +7965,13 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:530
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:826
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:867
msgid "&Rating:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:426
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:827
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:868
msgid "Rating of this book. 0-5 stars"
msgstr ""
@@ -8243,7 +7980,6 @@ msgid "No change"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:534
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:427
msgid " stars"
msgstr ""
@@ -8253,9 +7989,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:539
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:431
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:432
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:152
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:166
msgid "Open Tag Editor"
msgstr ""
@@ -8307,8 +8041,7 @@ msgid "&Force numbers to start with:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:440
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1050
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1101
msgid "&Date:"
msgstr ""
@@ -8326,7 +8059,6 @@ msgid "&Published:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:444
msgid "Clear published date"
msgstr ""
@@ -8383,15 +8115,13 @@ msgid "Set from &ebook file(s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:465
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:464
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:617
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:495
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:659
msgid "&Basic metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:466
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:471
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:502
msgid "&Custom metadata"
msgstr ""
@@ -8452,10 +8182,6 @@ msgstr ""
msgid "Enter a template to be used as the source for the search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:597
-msgid "&Search for:"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:598
msgid ""
"Enter the what you are looking for, either plain text or a regular "
@@ -8558,368 +8284,6 @@ msgstr ""
msgid "&Search and replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:97
-msgid "Last modified: %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:121
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:281
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:288
-msgid "Could not read cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:122
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:282
-msgid "Could not read cover from %s format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:289
-msgid "The cover in the %s format is invalid"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:157
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:785
-msgid "Cover size: %dx%d pixels"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:712
-msgid "Not a valid picture"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:213
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:736
-msgid "Specify title and author"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:737
-msgid "You must specify a title and author before generating a cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:906
-msgid "Downloading cover..."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:266
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:272
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:277
-msgid "Cannot fetch cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:262
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:273
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:278
-msgid "Could not fetch cover.
"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:263
-msgid "The download timed out."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:267
-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:279
-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:286
-msgid "Bad cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:287
-msgid "The cover is not a valid picture"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:306
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:556
-msgid "Choose formats for "
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:337
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:588
-msgid "No permission"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:338
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:589
-msgid "You do not have permission to read the following files:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:366
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:367
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:619
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:620
-msgid "No format selected"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:378
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:631
-msgid "Could not read metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:379
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:632
-msgid "Could not read metadata from %s format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:453
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:233
-msgid ""
-" The green color indicates that the current author sort matches the current "
-"author"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:456
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:236
-msgid ""
-" The red color indicates that the current author sort does not match the "
-"current author. No action is required if this is what you want."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:463
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:121
-msgid ""
-" The green color indicates that the current title sort matches the current "
-"title"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:466
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:124
-msgid ""
-" The red color warns that the current title sort does not match the current "
-"title. No action is required if this is what you want."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:472
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:54
-#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:221
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:384
-msgid "Previous"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:475
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:484
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:419
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:424
-msgid "Save changes and edit the metadata of %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:50
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:824
-#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:211
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:401
-msgid "Next"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:690
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:695
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:989
-msgid "This ISBN number is valid"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:698
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:992
-msgid "This ISBN number is invalid"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:783
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:903
-msgid "Tags changed"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:784
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:904
-msgid ""
-"You have changed the tags. In order to use the tags editor, you must either "
-"discard or apply these changes. Apply changes?"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:819
-msgid "Timed out"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820
-msgid ""
-"The download of social metadata timed out, the servers are probably busy. "
-"Try again later."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:827
-msgid "There were errors"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:828
-msgid "There were errors downloading social metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:862
-msgid "Cannot fetch metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:863
-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:961
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:366
-msgid "Permission denied"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:962
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:367
-msgid "Could not open %s. Is it being used by another program?"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406
-msgid "Edit Meta Information"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407
-msgid "Meta information"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:96
-msgid ""
-"Automatically create the title sort entry based on the current title entry.\n"
-"Using this button to create title sort will change title sort from red to "
-"green."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:122
-msgid "Swap the author and title"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:106
-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:418
-msgid "Title &sort: "
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:419
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:111
-msgid ""
-"Specify how this book should be sorted when by title. For example, The "
-"Exorcist might be sorted as Exorcist, The."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:421
-msgid "Author S&ort: "
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:422
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:218
-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:436
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:129
-msgid "Remove unused series (Series that have no books)"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:439
-msgid "IS&BN:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:441
-msgid "dd MMM yyyy"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:442
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1101
-msgid "Publishe&d:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:445
-msgid "&Fetch metadata from server"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:448
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:651
-msgid "&Browse"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:449
-msgid "Remove border (if any) from cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:450
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:653
-msgid "T&rim"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:451
-msgid "Reset cover to default"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:452
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:655
-msgid "&Remove"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:453
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:661
-msgid "Download co&ver"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:454
-msgid "Generate a default cover based on the title and author"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:455
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:662
-msgid "&Generate cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:456
-msgid "Available Formats"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:457
-msgid "Add a new format for this book to the database"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:459
-msgid "Remove the selected formats for this book from the database."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:461
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:468
-msgid "Set the cover for the book from the selected format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:463
-msgid "Update metadata from the metadata in the selected format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:464
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:683
-msgid "&Comments"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:61
msgid "Password needed"
msgstr ""
@@ -9372,7 +8736,7 @@ msgid "&Author:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:867
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:908
msgid "Ta&gs:"
msgstr ""
@@ -9409,7 +8773,7 @@ msgid "Choose formats"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:145
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:146
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:102
msgid "Authors"
msgstr ""
@@ -9641,24 +9005,12 @@ msgstr ""
msgid "&Test"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:55
-msgid "Display contents of exploded ePub"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub.py:100
+msgid "Cannot preview"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:56
-msgid "&Explode ePub"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:57
-msgid "Rebuild ePub from exploded contents"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:58
-msgid "&Rebuild ePub"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:59
-msgid "Discard changes"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub.py:101
+msgid "You must first explode the epub before previewing."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:61
@@ -9670,6 +9022,30 @@ msgid ""
"updating your calibre library.
Search the list of books by title, author, publisher, tags, comments, "
"etc.
Words separated by spaces are ANDed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:183
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:191
msgid "&Go!"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:189
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:197
msgid "Do Quick Search (you can also press the Enter key)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:195
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203
msgid "Reset Quick Search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:219
msgid "Copy current search text (instead of search name)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:251
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:259
msgid "Donate"
msgstr ""
@@ -10251,31 +9627,31 @@ msgstr ""
msgid "Modified"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:717
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1274
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:720
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1277
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:797
msgid "The lookup/search name is \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:723
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1276
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:726
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1279
msgid "This book's UUID is \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:973
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:976
msgid "In Library"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:977
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:980
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:311
msgid "Size"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1254
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1257
msgid "Marked for deletion"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1257
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1260
msgid "Double click to edit me
"
msgstr ""
@@ -10319,7 +9695,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:849
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:855
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@@ -10349,12 +9725,6 @@ msgstr ""
msgid "No matches for the search phrase %s were found."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:471
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:503
-msgid "No matches found"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128
msgid "LRF Viewer"
msgstr ""
@@ -10548,217 +9918,399 @@ msgstr ""
msgid "Unhandled exception"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:121
+msgid ""
+"Specify how this book should be sorted when by title. For example, The "
+"Exorcist might be sorted as Exorcist, The."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:123
msgid "Title &sort:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:223
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:131
+msgid ""
+" The green color indicates that the current title sort matches the current "
+"title"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:134
+msgid ""
+" The red color warns that the current title sort does not match the current "
+"title. No action is required if this is what you want."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:181
+msgid "Authors changed"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:182
+msgid ""
+"You have changed the authors for this book. You must save these changes "
+"before you can use Manage authors. Do you want to save these changes?"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:252
+msgid ""
+"Specify how the author(s) of this book should be sorted. For example Charles "
+"Dickens should be sorted as Dickens, Charles.\n"
+"If the box is colored green, then text matches the individual author's sort "
+"strings. If it is colored red, then the authors and this text do not match."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:257
msgid "Author s&ort:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:370
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:267
+msgid ""
+" The green color indicates that the current author sort matches the current "
+"author"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:270
+msgid ""
+" The red color indicates that the current author sort does not match the "
+"current author. No action is required if this is what you want."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:411
msgid "&Number:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:451
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:492
msgid ""
"Last modified: %s\n"
"\n"
"Double click to view"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:476
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:509
+msgid "Set the cover for the book from the selected format"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:517
msgid "Set metadata for the book from the selected format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:483
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:524
msgid "Add a format to this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:490
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:531
msgid "Remove the selected format from this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:755
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:597
+msgid "Choose formats for "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:629
+msgid "No permission"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:630
+msgid "You do not have permission to read the following files:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:660
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:661
+msgid "No format selected"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:672
+msgid "Could not read metadata"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:673
+msgid "Could not read metadata from %s format"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:692
+msgid "&Browse"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:694
+msgid "T&rim"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:696
+msgid "&Remove"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:702
+msgid "Download co&ver"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:703
+msgid "&Generate cover"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:753
+msgid "Not a valid picture"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
+msgid "Specify title and author"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
+msgid "You must specify a title and author before generating a cover"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:796
msgid "Invalid cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:756
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:797
msgid "Could not change cover as the image is invalid."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:783
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:824
msgid "This book has no cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:834
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:826
+msgid "Cover size: %dx%d pixels"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:875
msgid "stars"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:927
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:944
+msgid "Tags changed"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:945
+msgid ""
+"You have changed the tags. In order to use the tags editor, you must either "
+"discard or apply these changes. Apply changes?"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:971
msgid "I&ds:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:928
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:972
msgid ""
"Edit the identifiers for this book. For example: \n"
"\n"
"%s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:999
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1033
+msgid "This ISBN number is valid"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1036
+msgid "This ISBN number is invalid"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1050
msgid "&Publisher:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1069
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1120
msgid "Clear date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:109
-msgid "Book has neither title nor ISBN"
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1152
+msgid "Publishe&d:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:138
-msgid "No matches found for this book"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:227
-msgid "cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228
-msgid "Downloaded"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228
-msgid "Failed to get"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:232
-msgid "%s %s for: %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:291
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:175
-msgid "Done"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:292
-msgid "Successfully downloaded metadata for %d out of %d books"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:294
-#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:765
-msgid "Details"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:34
msgid "Schedule download?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:45
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:45
msgid ""
"The download of metadata for the %d selected book(s) will run in the "
"background. Proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:47
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:47
msgid ""
"You can monitor the progress of the download by clicking the rotating "
"spinner in the bottom right corner."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:50
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:50
msgid ""
"When the download completes you will be asked for confirmation before "
"calibre applies the downloaded metadata."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:61
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:61
msgid "Download only &metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:65
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:65
msgid "Download only &covers"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:69
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:69
msgid "&Configure download"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:73
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:73
msgid "Download &both"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:99
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:99
msgid "Download metadata for %d books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:102
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:102
msgid "Metadata download started"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:111
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:111
msgid "(Failed metadata)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:113
msgid "(Failed cover)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:190
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:190
msgid "Downloaded %d of %d"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/config.py:61
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:109
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:115
msgid "Downloaded metadata fields"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:75
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:240
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:51
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:824
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:211
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:401
+msgid "Next"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:55
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:221
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:384
+msgid "Previous"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:80
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:265
msgid "Edit Metadata"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:101
+msgid ""
+"Automatically create the title sort entry based on the current title entry.\n"
+"Using this button to create title sort will change title sort from red to "
+"green."
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:112
+msgid ""
+"Automatically create the author sort entry based on the current author "
+"entry. Using this button to create author sort will change author sort from "
+"red to green. There is a menu of functions available under this button. "
+"Click and hold on the button to see it."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:118
msgid "Set author sort from author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:119
msgid "Set author from author sort"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:171
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:129
+msgid "Swap the author and title"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:135
+msgid ""
+"Manage authors. Use to rename authors and correct individual author's sort "
+"values"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:143
+msgid "Remove unused series (Series that have no books)"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:178
+msgid ""
+"Paste the contents of the clipboard into the identifiers box prefixed with "
+"isbn:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:191
msgid "&Download metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:181
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:202
+msgid "Configure download metadata"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:206
msgid "Change how calibre downloads metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:512
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:702
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:306
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:313
+msgid "Could not read cover"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:307
+msgid "Could not read cover from %s format"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:314
+msgid "The cover in the %s format is invalid"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:397
+msgid "Permission denied"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:398
+msgid "Could not open %s. Is it being used by another program?"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:450
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:455
+msgid "Save changes and edit the metadata of %s"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:545
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:747
msgid "Change cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:561
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:602
msgid "Co&mments"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:600
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:642
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:788
msgid "&Metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:605
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:647
msgid "&Cover and formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:624
-msgid "Configure metadata downloading"
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:716
+msgid "C&ustom metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:671
-msgid "C&ustom metadata"
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:728
+msgid "&Comments"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:794
+msgid "Basic metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:132
@@ -10833,6 +10385,10 @@ msgstr ""
msgid "Downloading metadata..."
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:906
+msgid "Downloading cover..."
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/__init__.py:37
msgid ""
"Restore settings to default values. You have to click Apply to actually save "
@@ -10927,111 +10483,111 @@ msgstr ""
msgid "&Configure metadata from file name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:35
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:37
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:160
msgid "Low"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:35
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:169
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:159
msgid "High"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:37
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36
msgid "Very low"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:64
msgid "Compact Metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:176
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:65
+msgid "All on 1 tab"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:165
+msgid "Done"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:166
msgid "Confirmation dialogs have all been reset"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:155
-msgid "&Overwrite author and title by default when fetching metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:156
-msgid "Download &social metadata (tags/ratings/etc.) by default"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:157
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:147
msgid "Show notification when &new version is available"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:158
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:148
msgid ""
"If checked, Yes/No custom columns values can be Yes, No, or Unknown.\n"
"If not checked, the values can be Yes or No."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:160
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:150
msgid "Yes/No columns have three values (Requires restart)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:161
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:151
msgid "Automatically send downloaded &news to ebook reader"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:162
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:152
msgid "&Delete news from library when it is automatically sent to reader"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:163
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:153
msgid "Preferred &output format:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:164
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:154
msgid "Default network &timeout:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:165
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:155
msgid ""
"Set the default timeout for network fetches (i.e. anytime we go out to the "
"internet to get information)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:166
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:156
msgid " seconds"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:167
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:157
msgid "Job &priority:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:171
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:161
msgid "Restriction to apply when the current library is opened:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:172
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:162
msgid ""
"Apply this restriction on calibre startup if the current library is being "
"used. Also applied when switching to this library. Note that this setting is "
"per library. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:173
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:163
msgid "Edit metadata (single) layout:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:164
msgid ""
"Choose a different layout for the Edit Metadata dialog. The compact metadata "
"layout favors editing custom metadata over changing covers and formats."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:175
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:165
msgid "Preferred &input format order:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:178
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:168
msgid "Use internal &viewer for:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:179
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:169
msgid "Reset all disabled &confirmation dialogs"
msgstr ""
@@ -11145,6 +10701,10 @@ msgstr ""
msgid "Quick create:"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65
+msgid "ISBN"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:148
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:27
@@ -11365,6 +10925,7 @@ msgid "Getting debug information"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:22
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:32
msgid "Copy to &clipboard"
msgstr ""
@@ -11372,6 +10933,35 @@ msgstr ""
msgid "Debug device detection"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:31
+msgid "Getting device information"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:34
+msgid "User-defined device information"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:51
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:57
+msgid "Device Detection"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:52
+msgid "Ensure your device is disconnected, then press OK"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:58
+msgid "Ensure your device is connected, then press OK"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:88
+msgid ""
+"Copy these values to the clipboard, paste them into an editor, then enter "
+"them into the USER_DEVICE by customizing the device plugin in Preferences-"
+">Plugins. Remember to also enter the folders where you want the books to be "
+"put. You must restart calibre for your changes to take effect.\n"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:66
msgid ""
"calibre can send your books to you (or your reader) by email. Emails will be "
@@ -11642,83 +11232,91 @@ msgstr ""
msgid "Cover priority"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:75
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:76
msgid "This source is configured and ready to go"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:76
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:77
msgid "This source needs configuration"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:147
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:148
msgid "Published date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:232
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:241
msgid "Configure %s
%s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:281
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:293
msgid "No source selected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:282
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:294
msgid "No source selected, cannot configure."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:104
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:110
msgid "Metadata sources"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:105
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:111
msgid ""
"Disable any metadata sources you do not want by unchecking them. You can "
"also set the cover priority. Covers from sources that have a higher "
"(smaller) priority will be preferred when bulk downloading metadata.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:107
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:113
msgid ""
"Sources with a red X next to their names must be configured before they will "
"be used. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:108
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:114
msgid "Configure selected source"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:110
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:116
msgid ""
"If you uncheck any fields, metadata for those fields will not be downloaded"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:111
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:117
+msgid "&Select all"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:118
+msgid "&Clear all"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:119
msgid "Convert all downloaded comments to plain &text"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:112
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:120
msgid "Swap author names from FN LN to LN, FN"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:121
msgid "Max. number of &tags to download:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:114
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:122
msgid "Max. &time to wait after first match is found:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:115
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:117
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:123
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:125
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:199
msgid " secs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:116
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:124
msgid "Max. time to wait after first &cover is found:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:118
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:126
msgid ""
"
Different metadata sources have different sets of tags for the same book. "
"If this option is checked, then calibre will use the smaller tag sets. These "
@@ -11729,44 +11327,48 @@ msgid ""
"for. Most often, they all have large tag sets."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:120
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:128
msgid "Prefer &fewer tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:50
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:56
msgid "Failed to install command line tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:59
msgid "Command line tools installed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:54
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:60
msgid "Command line tools installed in"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:55
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:61
msgid ""
"If you move calibre.app, you have to re-install the command line tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:59
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:62
msgid "Max. simultaneous conversion/news download jobs:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:63
msgid "Limit the max. simultaneous jobs to the available CPU &cores"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:61
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:64
msgid "Debug &device detection"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:62
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:65
+msgid "Get information to setup the &user defined device"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:66
msgid "Open calibre &configuration directory"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:63
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:67
msgid "&Install command line tools"
msgstr ""
@@ -11856,96 +11458,96 @@ msgstr ""
msgid "Delete plugboard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:178
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:182
msgid "%(plugin_type)s %(plugins)s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:179
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:183
msgid "plugins"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:188
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:192
msgid ""
"\n"
"Customization: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:217
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:221
msgid "Search for plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:226
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:210
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:230
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:219
msgid "No matches"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:227
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:231
msgid "Could not find any matching plugins"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:268
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:272
msgid "Add plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:276
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:280
msgid ""
"Installing plugins is a security risk. Plugins can contain a "
"virus/malware. Only install it if you got it from a trusted source. Are you "
"sure you want to proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:292
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:296
msgid ""
"Plugin {0} successfully installed under {1} plugins. You may "
"have to restart calibre for the plugin to take effect."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:300
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:304
msgid "No valid plugin path"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:301
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:305
msgid "%s is not a valid plugin path"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:310
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:314
msgid "Select an actual plugin under %s to customize"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:316
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:320
msgid "Plugin cannot be disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:321
msgid "The plugin: %s cannot be disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:327
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:331
msgid "Plugin not customizable"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:328
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:332
msgid "Plugin: %s does not need customization"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:334
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:338
msgid "Must restart"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:335
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:339
msgid ""
"You must restart calibre before you can configure the %s plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:340
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:344
msgid "Plugin {0} successfully removed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:348
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:352
msgid "Cannot remove builtin plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:349
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:353
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
msgstr ""
@@ -12315,10 +11917,6 @@ msgid ""
"the IP address of the computer calibre is running on."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/social.py:39
-msgid "Downloading social metadata, please wait..."
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:23
msgid ""
"\n"
@@ -12594,6 +12192,16 @@ msgstr ""
msgid "Apply any changes you made to this tweak"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:95
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:279
+#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:71
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:116
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:109
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:653
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:280
+msgid "Search"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:339
msgid "Delete current search"
msgstr ""
@@ -12673,7 +12281,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:48
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:117
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:113
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:351
msgid "None"
@@ -12781,7 +12389,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:74
#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread_store_dialog_ui.py:65
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:118
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:123
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/store/web_store_dialog_ui.py:63
msgid "Close"
@@ -12836,35 +12444,38 @@ msgid ""
"likelihood that this book is actually DRM restricted."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:210
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:219
msgid "Couldn't find any books matching your query."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:110
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:113
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:107
msgid "Get Books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:111
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:108
msgid "Query:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:114
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:110
-msgid "Stores"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:115
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:118
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:111
msgid "All"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:116
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:119
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:112
msgid "Invert"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:121
+msgid "Open a selected book in the system's web browser"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:122
+msgid "Open in &external browser"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/store/web_control.py:73
msgid ""
"This ebook is a DRMed EPUB file. You will be prompted to save this file to "
@@ -13090,10 +12701,6 @@ msgstr ""
msgid "ALT+f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2105
-msgid "F&ind"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2106
msgid "Find the first/next matching item"
msgstr ""
@@ -13753,14 +13360,6 @@ msgstr ""
msgid "Print eBook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:419
-msgid "Change Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:422
-msgid "Swap Case"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:962
msgid "Drag to resize"
msgstr ""
@@ -13779,8 +13378,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:438
msgid ""
-"Choose you e-book device. If your device is not in the list, choose a \"%s\" "
-"device."
+"Choose your e-book device. If your device is not in the list, choose a "
+"\"%s\" device."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499
@@ -14150,7 +13749,7 @@ msgstr ""
msgid "Invalid boolean query \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:51
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:55
msgid ""
"The fields to output when cataloging books in the database. Should be a "
"comma-separated list of fields.\n"
@@ -14161,15 +13760,15 @@ msgid ""
"Applies to: CSV, XML output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:64
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:68
msgid ""
"Output field to sort on.\n"
-"Available fields: author_sort, id, rating, size, timestamp, title.\n"
+"Available fields: author_sort, id, rating, size, timestamp, title_sort\n"
"Default: '%default'\n"
"Applies to: CSV, XML output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242
msgid ""
"The fields to output when cataloging books in the database. Should be a "
"comma-separated list of fields.\n"
@@ -14180,7 +13779,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:255
msgid ""
"Output field to sort on.\n"
"Available fields: author_sort, id, rating, size, timestamp, title.\n"
@@ -14188,7 +13787,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:264
msgid ""
"Create a citation for BibTeX entries.\n"
"Boolean value: True, False\n"
@@ -14196,7 +13795,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:262
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273
msgid ""
"Create a file entry if formats is selected for BibTeX entries.\n"
"Boolean value: True, False\n"
@@ -14204,7 +13803,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:282
msgid ""
"The template for citation creation from database fields.\n"
"Should be a template with {} enclosed fields.\n"
@@ -14213,7 +13812,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:281
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292
msgid ""
"BibTeX file encoding output.\n"
"Available types: utf8, cp1252, ascii.\n"
@@ -14221,7 +13820,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:290
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:301
msgid ""
"BibTeX file encoding flag.\n"
"Available types: strict, replace, ignore, backslashreplace.\n"
@@ -14229,7 +13828,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:299
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310
msgid ""
"Entry type for BibTeX catalog.\n"
"Available types: book, misc, mixed.\n"
@@ -14237,14 +13836,14 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:616
msgid ""
"Title of generated catalog used as title in metadata.\n"
"Default: '%default'\n"
"Applies to: ePub, MOBI output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:623
msgid ""
"Save the output from different stages of the conversion pipeline to the "
"specified directory. Useful if you are unsure at which stage of the "
@@ -14253,7 +13852,7 @@ msgid ""
"Applies to: ePub, MOBI output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:623
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:633
msgid ""
"field:pattern specifying custom field/contents indicating book should be "
"excluded.\n"
@@ -14261,14 +13860,14 @@ msgid ""
"Applies to ePub, MOBI output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:630
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:640
msgid ""
"Regex describing tags to exclude as genres.\n"
"Default: '%default' excludes bracketed tags, e.g. '[ Migrating old database to ebook library in %s There was an error reading from file: Cannot upload books to device there is no more free space available "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:124
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:135
msgid "Unknown formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:125
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:136
msgid ""
"You have enabled the {0} formats for your {1}. The {1} may not "
"support them. If you send these formats to your {1} they may not work. Are "
"you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:137
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:148
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:409
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:61
msgid "Invalid template"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:138
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:149
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:410
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:62
@@ -7841,13 +7625,13 @@ msgstr "ضبط الخيارات لتحويل %s"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:63
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/adv_search_builder_ui.py:189
msgid "&Title:"
msgstr ":ال&عنوان"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:157
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:167
msgid "&Author(s):"
msgstr "ال&مؤلف:"
@@ -7862,7 +7646,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog.py:25
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog.py:31
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:65
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:233
msgid "&Cancel"
msgstr ""
@@ -7877,13 +7661,13 @@ msgid "Where do you want to delete from?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:77
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:63
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:64
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:228
msgid "Library"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:78
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:65
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:66
msgid "Device"
msgstr ""
@@ -7911,7 +7695,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:67
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:976
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:979
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:32
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:73
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:321
@@ -7937,138 +7721,113 @@ msgid ""
"Books."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:35
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:43
msgid "Author sort"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:128
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:104
+#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:471
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:503
+msgid "No matches found"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:120
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:419
+msgid "Change Case"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:121
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:420
+msgid "Upper Case"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:122
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:260
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:421
+msgid "Lower Case"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:123
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:422
+msgid "Swap Case"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:124
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:262
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:423
+msgid "Title Case"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:125
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:263
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:424
+msgid "Capitalize"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:141
+msgid "Copy to author sort"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:144
+msgid "Copy to author"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:271
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1439
msgid "Invalid author name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:129
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:272
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1440
msgid "Author names cannot contain & characters."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:74
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:90
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:120
msgid "Manage authors"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:75
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:91
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:597
+msgid "&Search for:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:92
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2105
+msgid "F&ind"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:93
msgid "Sort by author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:76
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:94
msgid "Sort by author sort"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:77
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:95
msgid ""
"Reset all the author sort values to a value automatically\n"
"generated from the author. Exactly how this value is automatically\n"
"generated can be controlled via Preferences->Advanced->Tweaks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:80
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:98
msgid "Recalculate all author sort values"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:81
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:99
msgid ""
"Copy author sort to author for every author. You typically use this button\n"
"after changing Preferences->Advanced->Tweaks->Author sort name algorithm"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:83
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:101
msgid "Copy all author sort values to author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:191
-msgid "Author Sort"
-msgstr "ترتيب المؤلف"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:64
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65
-msgid "ISBN"
-msgstr "ISBN"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:66
-msgid "Has Cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:67
-msgid "Has Summary"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192
-msgid "Finding metadata..."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:206
-msgid "Could not find metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:207
-msgid "The metadata download seems to have stalled. Try again later."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:216
-msgid "Warning"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:217
-msgid "Could not fetch metadata from:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:221
-msgid "No metadata found"
-msgstr "لم يوجد ميتاداتا"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:222
-msgid ""
-"No metadata found, try adjusting the title and author and/or removing the "
-"ISBN."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:93
-msgid "Fetch metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:94
-msgid ""
-" calibre can find metadata for your books from two locations: Google "
-"Books and isbndb.com. To use isbndb.com you must sign up for a "
-"free account and enter your access key "
-"below."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:95
-msgid "&Access Key:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:96
-msgid "Fetch"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:97
-msgid "Matches"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:98
-msgid ""
-"Select the book that most closely matches your copy from the list below"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:99
-msgid "Overwrite author and title with author and title of selected book"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:100
-msgid "Download &social metadata (tags/rating/etc.) for the selected book"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:45
msgid "Details of job"
msgstr ""
@@ -8089,34 +7848,34 @@ msgstr ""
msgid "Stop &all non device jobs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:43
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:49
msgid "&Copy to clipboard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:48
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:53
msgid "Show &details"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:49
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:54
msgid "Hide &details"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:58
msgid "Show detailed information about this error"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:93
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:98
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525
msgid "Copied"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:130
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:135
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:770
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205
msgid "Copy to clipboard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:179
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:831
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:922
msgid "View log"
@@ -8131,6 +7890,7 @@ msgid "Standard metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:852
msgid "Custom metadata"
msgstr ""
@@ -8143,26 +7903,6 @@ msgstr ""
msgid "Working"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:260
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:421
-msgid "Lower Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:420
-msgid "Upper Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:262
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:423
-msgid "Title Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:263
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:424
-msgid "Capitalize"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:266
msgid "Character match"
msgstr ""
@@ -8318,16 +8058,13 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:530
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:826
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:867
msgid "&Rating:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:426
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:827
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:868
msgid "Rating of this book. 0-5 stars"
msgstr ""
@@ -8336,7 +8073,6 @@ msgid "No change"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:534
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:427
msgid " stars"
msgstr " نجمة"
@@ -8346,9 +8082,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:539
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:431
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:432
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:152
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:166
msgid "Open Tag Editor"
msgstr "فتح محرر الوسوم"
@@ -8400,8 +8134,7 @@ msgid "&Force numbers to start with:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:440
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1050
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1101
msgid "&Date:"
msgstr ""
@@ -8419,7 +8152,6 @@ msgid "&Published:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:444
msgid "Clear published date"
msgstr ""
@@ -8476,15 +8208,13 @@ msgid "Set from &ebook file(s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:465
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:464
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:617
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:495
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:659
msgid "&Basic metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:466
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:471
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:502
msgid "&Custom metadata"
msgstr ""
@@ -8545,10 +8275,6 @@ msgstr ""
msgid "Enter a template to be used as the source for the search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:597
-msgid "&Search for:"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:598
msgid ""
"Enter the what you are looking for, either plain text or a regular "
@@ -8651,368 +8377,6 @@ msgstr ""
msgid "&Search and replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:97
-msgid "Last modified: %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:121
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:281
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:288
-msgid "Could not read cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:122
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:282
-msgid "Could not read cover from %s format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:289
-msgid "The cover in the %s format is invalid"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:157
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:785
-msgid "Cover size: %dx%d pixels"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:712
-msgid "Not a valid picture"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:213
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:736
-msgid "Specify title and author"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:737
-msgid "You must specify a title and author before generating a cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:906
-msgid "Downloading cover..."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:266
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:272
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:277
-msgid "Cannot fetch cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:262
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:273
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:278
-msgid "Could not fetch cover. Search the list of books by title, author, publisher, tags, comments, "
"etc. Different metadata sources have different sets of tags for the same book. "
"If this option is checked, then calibre will use the smaller tag sets. These "
@@ -11826,44 +11424,48 @@ msgid ""
"for. Most often, they all have large tag sets."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:120
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:128
msgid "Prefer &fewer tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:50
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:56
msgid "Failed to install command line tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:59
msgid "Command line tools installed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:54
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:60
msgid "Command line tools installed in"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:55
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:61
msgid ""
"If you move calibre.app, you have to re-install the command line tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:59
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:62
msgid "Max. simultaneous conversion/news download jobs:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:60
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:63
msgid "Limit the max. simultaneous jobs to the available CPU &cores"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:61
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:64
msgid "Debug &device detection"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:62
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:65
+msgid "Get information to setup the &user defined device"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:66
msgid "Open calibre &configuration directory"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:63
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:67
msgid "&Install command line tools"
msgstr ""
@@ -11953,96 +11555,96 @@ msgstr ""
msgid "Delete plugboard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:178
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:182
msgid "%(plugin_type)s %(plugins)s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:179
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:183
msgid "plugins"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:188
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:192
msgid ""
"\n"
"Customization: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:217
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:221
msgid "Search for plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:226
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:210
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:230
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:219
msgid "No matches"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:227
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:231
msgid "Could not find any matching plugins"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:268
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:272
msgid "Add plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:276
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:280
msgid ""
"Installing plugins is a security risk. Plugins can contain a "
"virus/malware. Only install it if you got it from a trusted source. Are you "
"sure you want to proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:292
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:296
msgid ""
"Plugin {0} successfully installed under {1} plugins. You may "
"have to restart calibre for the plugin to take effect."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:300
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:304
msgid "No valid plugin path"
msgstr "مسار الملحق غير صالح"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:301
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:305
msgid "%s is not a valid plugin path"
msgstr "%s ليس مسار لملحق صالح"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:310
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:314
msgid "Select an actual plugin under %s to customize"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:316
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:320
msgid "Plugin cannot be disabled"
msgstr "لا يمكن تعطيل الملحق"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:321
msgid "The plugin: %s cannot be disabled"
msgstr "الملحق: %s لا يمكن تعطيله"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:327
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:331
msgid "Plugin not customizable"
msgstr "لا يمكن تخصيص الملحق"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:328
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:332
msgid "Plugin: %s does not need customization"
msgstr "الملحق: %s لا يحتاج التخصيص"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:334
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:338
msgid "Must restart"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:335
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:339
msgid ""
"You must restart calibre before you can configure the %s plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:340
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:344
msgid "Plugin {0} successfully removed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:348
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:352
msgid "Cannot remove builtin plugin"
msgstr "لم يمكن حذف الملحق المضمن"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:349
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:353
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
msgstr " لا يمكن حذفه. هذا ملحق مضمن في البرنامج. حاول تعطيله بدلاً من حذفه."
@@ -12412,10 +12014,6 @@ msgid ""
"the IP address of the computer calibre is running on."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/social.py:39
-msgid "Downloading social metadata, please wait..."
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:23
msgid ""
"\n"
@@ -12691,6 +12289,16 @@ msgstr ""
msgid "Apply any changes you made to this tweak"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:95
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:279
+#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:71
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:116
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:109
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:653
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:280
+msgid "Search"
+msgstr "بحث"
+
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:339
msgid "Delete current search"
msgstr ""
@@ -12770,7 +12378,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:48
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:117
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:113
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:351
msgid "None"
@@ -12878,7 +12486,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:74
#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread_store_dialog_ui.py:65
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:118
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:123
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/store/web_store_dialog_ui.py:63
msgid "Close"
@@ -12933,35 +12541,38 @@ msgid ""
"likelihood that this book is actually DRM restricted."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:210
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:219
msgid "Couldn't find any books matching your query."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:110
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:113
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:107
msgid "Get Books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:111
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:108
msgid "Query:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:114
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:110
-msgid "Stores"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:115
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:118
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:111
msgid "All"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:116
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:119
#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:112
msgid "Invert"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:121
+msgid "Open a selected book in the system's web browser"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:122
+msgid "Open in &external browser"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/store/web_control.py:73
msgid ""
"This ebook is a DRMed EPUB file. You will be prompted to save this file to "
@@ -13187,10 +12798,6 @@ msgstr ""
msgid "ALT+f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2105
-msgid "F&ind"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2106
msgid "Find the first/next matching item"
msgstr ""
@@ -13810,14 +13417,6 @@ msgstr ""
msgid "Print eBook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:419
-msgid "Change Case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:422
-msgid "Swap Case"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:962
msgid "Drag to resize"
msgstr ""
@@ -13836,8 +13435,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:438
msgid ""
-"Choose you e-book device. If your device is not in the list, choose a \"%s\" "
-"device."
+"Choose your e-book device. If your device is not in the list, choose a "
+"\"%s\" device."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499
@@ -14207,7 +13806,7 @@ msgstr ""
msgid "Invalid boolean query \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:51
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:55
msgid ""
"The fields to output when cataloging books in the database. Should be a "
"comma-separated list of fields.\n"
@@ -14218,15 +13817,15 @@ msgid ""
"Applies to: CSV, XML output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:64
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:68
msgid ""
"Output field to sort on.\n"
-"Available fields: author_sort, id, rating, size, timestamp, title.\n"
+"Available fields: author_sort, id, rating, size, timestamp, title_sort\n"
"Default: '%default'\n"
"Applies to: CSV, XML output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242
msgid ""
"The fields to output when cataloging books in the database. Should be a "
"comma-separated list of fields.\n"
@@ -14237,7 +13836,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:255
msgid ""
"Output field to sort on.\n"
"Available fields: author_sort, id, rating, size, timestamp, title.\n"
@@ -14245,7 +13844,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:264
msgid ""
"Create a citation for BibTeX entries.\n"
"Boolean value: True, False\n"
@@ -14253,7 +13852,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:262
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273
msgid ""
"Create a file entry if formats is selected for BibTeX entries.\n"
"Boolean value: True, False\n"
@@ -14261,7 +13860,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:282
msgid ""
"The template for citation creation from database fields.\n"
"Should be a template with {} enclosed fields.\n"
@@ -14270,7 +13869,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:281
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292
msgid ""
"BibTeX file encoding output.\n"
"Available types: utf8, cp1252, ascii.\n"
@@ -14278,7 +13877,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:290
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:301
msgid ""
"BibTeX file encoding flag.\n"
"Available types: strict, replace, ignore, backslashreplace.\n"
@@ -14286,7 +13885,7 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:299
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310
msgid ""
"Entry type for BibTeX catalog.\n"
"Available types: book, misc, mixed.\n"
@@ -14294,14 +13893,14 @@ msgid ""
"Applies to: BIBTEX output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:616
msgid ""
"Title of generated catalog used as title in metadata.\n"
"Default: '%default'\n"
"Applies to: ePub, MOBI output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:623
msgid ""
"Save the output from different stages of the conversion pipeline to the "
"specified directory. Useful if you are unsure at which stage of the "
@@ -14310,7 +13909,7 @@ msgid ""
"Applies to: ePub, MOBI output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:623
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:633
msgid ""
"field:pattern specifying custom field/contents indicating book should be "
"excluded.\n"
@@ -14318,14 +13917,14 @@ msgid ""
"Applies to ePub, MOBI output formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalog.py:630
+#: /home/kovid/work/calibre/src/calibre/library/catalog.py:640
msgid ""
"Regex describing tags to exclude as genres.\n"
"Default: '%default' excludes bracketed tags, e.g. '[ Migrating old database to ebook library in %s
%s
will be permanently deleted. Are you sure?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:270
-msgid "Backup status"
+msgid "none"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:271
+msgid "Backup status"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:272
msgid "Book metadata files remaining to be written: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:277
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:278
msgid "Backup metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:278
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:279
msgid ""
"Metadata will be backed up while calibre is running, at the rate of "
"approximately 1 book every three seconds."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:310
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:311
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:106
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:111
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:291
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:345
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:295
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:349
msgid "Success"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:311
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:312
msgid ""
"Found no errors in your calibre library database. Do you want calibre to "
"check if the files in your library match the information in the database?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:316
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:317
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:150
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:692
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:974
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:101
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:186
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:317
msgid "Failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:318
msgid "Database integrity check failed, click Show details for details."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:322
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:323
msgid "No problems found"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:323
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:324
msgid "The files in your library match the information in the database."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:332
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:333
msgid "No library found"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:333
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:334
msgid ""
"No existing calibre library was found at %s. It will be removed from the "
"list of known libraries."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:399
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:404
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:400
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:405
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:848
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:854
msgid "Not allowed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:400
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:401
msgid ""
"You cannot change libraries while using the environment variable "
"CALIBRE_OVERRIDE_DATABASE_PATH."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:405
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:406
msgid "You cannot change libraries while jobs are running."
msgstr ""
@@ -4693,109 +4512,95 @@ msgstr ""
msgid "Manage the collections on this device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:26
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24
msgid "E"
msgstr "E"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:26
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24
msgid "Edit metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:30
+#: /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:31
+#: /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:33
+#: /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:36
+#: /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:47
+#: /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:50
-msgid "Download only metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:51
-msgid "Download only covers"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:52
-msgid "Download only social metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:58
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:42
msgid "Merge into first selected book - delete others"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:61
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:45
msgid "Merge into first selected book - keep others"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:65
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:49
msgid "Merge only formats into first selected book - delete others"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:87
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:165
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:71
msgid "Cannot download metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:97
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:187
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:81
msgid "Failed to download metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:103
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:87
#: /home/kovid/work/calibre/src/calibre/gui2/dnd.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:462
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:716
msgid "Download failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:104
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:88
msgid "Failed to download metadata or covers for any of the %d book(s)."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:107
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:91
msgid "Metadata download completed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:109
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:93
msgid ""
"Finished downloading metadata for %d book(s). Proceed with updating "
"the metadata in your library?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:115
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:100
msgid ""
"Could not download metadata and/or covers for %d of the books. Click \"Show "
"details\" to see which books."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:122
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:107
msgid "Download complete"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:122
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:107
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:777
msgid "Download log"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:151
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:136
msgid "Some books changed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:152
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:137
msgid ""
"The metadata for some books in your library has changed since you started "
"the download. If you proceed, some of those changes may be overwritten. "
@@ -4803,44 +4608,27 @@ msgid ""
"proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:185
-msgid "social metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:187
-msgid "covers"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:187
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:227
-msgid "metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:188
-msgid "Downloading {0} for {1} book(s)"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:213
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:309
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:155
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:219
msgid "Cannot edit metadata"
msgstr "لا يمكن تحرير الميتاداتا"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:346
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:349
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:256
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:259
msgid "Cannot merge books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:350
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:260
msgid "At least two books must be selected for merging"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:353
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:263
msgid ""
"You are about to merge more than 5 books. Are you sure you want to "
"proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:361
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:271
msgid ""
"Book formats and metadata from the selected books will be added to the "
"first selected book (%s). ISBN will not be merged.
The "
@@ -4848,7 +4636,7 @@ msgid ""
"changed.
Please confirm you want to proceed."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:373
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:283
msgid ""
"Book formats from the selected books will be merged into the first "
"selected book (%s). Metadata in the first selected book will not be "
@@ -4860,7 +4648,7 @@ msgid ""
"calibre library.
Are you sure you want to proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:389
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:299
msgid ""
"Book formats and metadata from the selected books will be merged into the "
"first selected book (%s). ISBN will not be "
@@ -4871,15 +4659,15 @@ msgid ""
"Are you sure you want to proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:545
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:455
msgid "Applying changed metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:606
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:520
msgid "Some failures"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:607
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:521
msgid ""
"Failed to apply updated metadata for some books in your library. Click "
"\"Show Details\" to see details."
@@ -4961,20 +4749,24 @@ msgstr ""
msgid "Ctrl+P"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22
+msgid "Change calibre behavior"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:24
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:208
msgid "Run welcome wizard"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:27
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:28
msgid "Restart in debug mode"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:42
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:43
msgid "Cannot configure while there are running jobs."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:47
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:48
msgid "Cannot configure before calibre is restarted."
msgstr ""
@@ -5099,35 +4891,52 @@ msgstr ""
msgid "Books with the same tags"
msgstr "كتب بنفس الوسوم"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:19
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:20
msgid "Get books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:28
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:95
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:279
-#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:71
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:113
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:109
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:653
-#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:280
-msgid "Search"
-msgstr "بحث"
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:29
+msgid "Search for ebooks"
+msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:46
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:30
+msgid "Search for this author"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:31
+msgid "Search for this title"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:32
+msgid "Search for this book"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:117
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:110
+msgid "Stores"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:69
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:88
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:97
+msgid "Cannot search"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:109
msgid ""
"Calibre helps you find the ebooks you want by searching the websites of "
"various commercial and public domain book sources for you."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:50
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:113
msgid ""
"Using the integrated search you can easily find which store has the book you "
"are looking for, at the best price. You also get DRM status and other useful "
"information."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:54
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:117
msgid ""
"All transactions (paid or otherwise) are handled between you and the book "
"seller. Calibre is not part of this process and any issues related to a "
@@ -5137,16 +4946,16 @@ msgid ""
"ebook.com/about#drm\">DRM."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:64
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:127
msgid "Show this message again"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:65
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:128
msgid "About Get Books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:15
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:54
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60
msgid "Tweak ePub"
msgstr ""
@@ -5389,13 +5198,6 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:86
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:565
-#: /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
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:417
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:437
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:458
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:460
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:462
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:98
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:101
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:103
@@ -5413,8 +5215,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:279
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:280
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:176
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:177
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:166
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:91
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:93
@@ -5433,7 +5235,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:80
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:85
#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:70
-#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:112
+#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:115
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191
msgid "..."
msgstr "..."
@@ -5466,7 +5268,7 @@ msgid "Book %s of %s"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:144
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:978
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:981
msgid "Collections"
msgstr ""
@@ -5573,14 +5375,14 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:40
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:64
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:154
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:146
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:86
#: /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:197
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:103
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:58
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:109
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:113
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:86
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:46
@@ -5866,10 +5668,12 @@ msgid "Remove formatting"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:96
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:134
msgid "Copy"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:97
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:136
msgid "Paste"
msgstr ""
@@ -5906,9 +5710,9 @@ msgid "Style the selected text block"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:125
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:35
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:37
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:168
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:158
msgid "Normal"
msgstr "عادي"
@@ -6464,49 +6268,41 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:685
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:726
msgid "Choose cover for "
msgstr "إختار الغلاف لـ "
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:177
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:693
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:734
msgid "Cannot read"
msgstr "لا يمكن القراءة"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:178
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:694
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:735
msgid "You do not have permission to read the file: "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:203
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:186
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:702
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:743
msgid "Error reading file"
msgstr "خطأ في قراءة الملف"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:197
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:703
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:744
msgid "
"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:204
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:713
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:754
msgid " is not a valid picture"
msgstr " ليست صورة صالحة"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:159
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:446
msgid "Book Cover"
msgstr "غلاف الكتاب"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:160
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:447
msgid "Change &cover image:"
msgstr "تغيير صورة الغلاف&:"
@@ -6519,19 +6315,16 @@ msgid "Use cover from &source file"
msgstr "استخدم غلاف من المصدر&"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:164
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408
msgid "&Title: "
msgstr ":ال&عنوان "
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:62
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:72
msgid "Change the title of this book"
msgstr "تغيير عنوان هذا الكتاب"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:525
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:420
msgid "&Author(s): "
msgstr "ال&مؤلف: "
@@ -6547,19 +6340,16 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:535
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:428
msgid "&Publisher: "
msgstr "&الناشر: "
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:429
msgid "Ta&gs: "
msgstr "الو&سوم: "
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:537
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:430
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:868
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:909
msgid ""
"Tags categorize the book. This is particularly useful while searching. "
"
They can be any words or phrases, separated by commas."
@@ -6569,9 +6359,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:544
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:433
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:314
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:355
msgid "&Series:"
msgstr "&سلسلات:"
@@ -6579,14 +6368,11 @@ msgstr "&سلسلات:"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:434
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:435
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:313
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:354
msgid "List of known series. You can add new series."
msgstr "قائمة السلسلات المعروفة. بإمكانك إضافة سلسلات جديدة."
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:438
msgid "Book "
msgstr "الكتاب "
@@ -6595,7 +6381,7 @@ msgid "MOBI Output"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:44
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:64
msgid "Default"
msgstr ""
@@ -7180,40 +6966,38 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:149
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:183
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:302
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:566
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:607
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:630
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:681
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:567
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:608
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:631
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:682
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:311
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:506
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:222
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:255
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:259
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1066
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1117
msgid "Undefined"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:126
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:638
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:639
msgid "star(s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:127
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:639
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:640
msgid "Unrated"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:170
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:668
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:669
msgid "Set '%s' to today"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:172
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:670
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:671
msgid "Clear '%s'"
msgstr ""
@@ -7227,37 +7011,37 @@ msgid ""
"default"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:521
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:522
msgid "Apply changes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:714
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:715
msgid "Remove series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:717
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:718
msgid "Automatically number books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:720
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:721
msgid "Force numbers to start with "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:791
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:792
msgid ""
"The enumeration \"{0}\" contains invalid values that will not appear in the "
"list"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:835
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:836
msgid "Remove all tags"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:855
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:856
msgid "tags to add"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:862
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:863
msgid "tags to remove"
msgstr ""
@@ -7340,8 +7124,8 @@ msgid "Eject device"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:611
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:49
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:309
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:55
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:313
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54
msgid "Error"
msgstr "خطأ"
@@ -7445,25 +7229,25 @@ msgid ""
"
"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:263
-msgid "The download timed out."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:267
-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:279
-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:286
-msgid "Bad cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:287
-msgid "The cover is not a valid picture"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:306
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:556
-msgid "Choose formats for "
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:337
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:588
-msgid "No permission"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:338
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:589
-msgid "You do not have permission to read the following files:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:366
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:367
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:619
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:620
-msgid "No format selected"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:378
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:631
-msgid "Could not read metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:379
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:632
-msgid "Could not read metadata from %s format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:453
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:233
-msgid ""
-" The green color indicates that the current author sort matches the current "
-"author"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:456
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:236
-msgid ""
-" The red color indicates that the current author sort does not match the "
-"current author. No action is required if this is what you want."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:463
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:121
-msgid ""
-" The green color indicates that the current title sort matches the current "
-"title"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:466
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:124
-msgid ""
-" The red color warns that the current title sort does not match the current "
-"title. No action is required if this is what you want."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:472
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:54
-#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:221
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:384
-msgid "Previous"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:475
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:484
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:419
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:424
-msgid "Save changes and edit the metadata of %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:50
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:824
-#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:211
-#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:401
-msgid "Next"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:690
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:695
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:989
-msgid "This ISBN number is valid"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:698
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:992
-msgid "This ISBN number is invalid"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:783
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:903
-msgid "Tags changed"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:784
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:904
-msgid ""
-"You have changed the tags. In order to use the tags editor, you must either "
-"discard or apply these changes. Apply changes?"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:819
-msgid "Timed out"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820
-msgid ""
-"The download of social metadata timed out, the servers are probably busy. "
-"Try again later."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:827
-msgid "There were errors"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:828
-msgid "There were errors downloading social metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:862
-msgid "Cannot fetch metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:863
-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:961
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:366
-msgid "Permission denied"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:962
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:367
-msgid "Could not open %s. Is it being used by another program?"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406
-msgid "Edit Meta Information"
-msgstr "تحرير معلومات الميتا"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407
-msgid "Meta information"
-msgstr "معلومات الميتا"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:96
-msgid ""
-"Automatically create the title sort entry based on the current title entry.\n"
-"Using this button to create title sort will change title sort from red to "
-"green."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:122
-msgid "Swap the author and title"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:106
-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:418
-msgid "Title &sort: "
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:419
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:111
-msgid ""
-"Specify how this book should be sorted when by title. For example, The "
-"Exorcist might be sorted as Exorcist, The."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:421
-msgid "Author S&ort: "
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:422
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:218
-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:436
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:129
-msgid "Remove unused series (Series that have no books)"
-msgstr "حذف سلسلات غير مستخدمة (سلسلات التي لا تحتوي على كتب)"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:439
-msgid "IS&BN:"
-msgstr "IS&BN:"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:441
-msgid "dd MMM yyyy"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:442
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1101
-msgid "Publishe&d:"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:445
-msgid "&Fetch metadata from server"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:448
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:651
-msgid "&Browse"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:449
-msgid "Remove border (if any) from cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:450
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:653
-msgid "T&rim"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:451
-msgid "Reset cover to default"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:452
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:655
-msgid "&Remove"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:453
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:661
-msgid "Download co&ver"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:454
-msgid "Generate a default cover based on the title and author"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:455
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:662
-msgid "&Generate cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:456
-msgid "Available Formats"
-msgstr "التهيئات المتوفرة"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:457
-msgid "Add a new format for this book to the database"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:459
-msgid "Remove the selected formats for this book from the database."
-msgstr "حذف التهيئات المختارة لهذا الكتاب من قاعدة البيانات."
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:461
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:468
-msgid "Set the cover for the book from the selected format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:463
-msgid "Update metadata from the metadata in the selected format"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:464
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:683
-msgid "&Comments"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:61
msgid "Password needed"
msgstr ""
@@ -9465,7 +8829,7 @@ msgid "&Author:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:867
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:908
msgid "Ta&gs:"
msgstr ""
@@ -9502,7 +8866,7 @@ msgid "Choose formats"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:145
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:146
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:102
msgid "Authors"
msgstr "المؤلفون"
@@ -9738,24 +9102,12 @@ msgstr ""
msgid "&Test"
msgstr "&تجربة"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:55
-msgid "Display contents of exploded ePub"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub.py:100
+msgid "Cannot preview"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:56
-msgid "&Explode ePub"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:57
-msgid "Rebuild ePub from exploded contents"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:58
-msgid "&Rebuild ePub"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:59
-msgid "Discard changes"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub.py:101
+msgid "You must first explode the epub before previewing."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:61
@@ -9767,6 +9119,30 @@ msgid ""
"updating your calibre library.
Words separated by spaces are ANDed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:183
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:191
msgid "&Go!"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:189
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:197
msgid "Do Quick Search (you can also press the Enter key)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:195
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203
msgid "Reset Quick Search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:219
msgid "Copy current search text (instead of search name)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:251
+#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:259
msgid "Donate"
msgstr ""
@@ -10348,31 +9724,31 @@ msgstr ""
msgid "Modified"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:717
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1274
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:720
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1277
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:797
msgid "The lookup/search name is \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:723
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1276
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:726
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1279
msgid "This book's UUID is \"{0}\""
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:973
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:976
msgid "In Library"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:977
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:980
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:311
msgid "Size"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1254
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1257
msgid "Marked for deletion"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1257
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1260
msgid "Double click to edit me
"
msgstr ""
@@ -10416,7 +9792,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:849
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:855
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@@ -10446,12 +9822,6 @@ msgstr " - مستعرض LRF"
msgid "No matches for the search phrase %s were found."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:471
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:503
-msgid "No matches found"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128
msgid "LRF Viewer"
msgstr "مستعرض LRF"
@@ -10645,217 +10015,399 @@ msgstr ""
msgid "Unhandled exception"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:121
+msgid ""
+"Specify how this book should be sorted when by title. For example, The "
+"Exorcist might be sorted as Exorcist, The."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:123
msgid "Title &sort:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:223
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:131
+msgid ""
+" The green color indicates that the current title sort matches the current "
+"title"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:134
+msgid ""
+" The red color warns that the current title sort does not match the current "
+"title. No action is required if this is what you want."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:181
+msgid "Authors changed"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:182
+msgid ""
+"You have changed the authors for this book. You must save these changes "
+"before you can use Manage authors. Do you want to save these changes?"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:252
+msgid ""
+"Specify how the author(s) of this book should be sorted. For example Charles "
+"Dickens should be sorted as Dickens, Charles.\n"
+"If the box is colored green, then text matches the individual author's sort "
+"strings. If it is colored red, then the authors and this text do not match."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:257
msgid "Author s&ort:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:370
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:267
+msgid ""
+" The green color indicates that the current author sort matches the current "
+"author"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:270
+msgid ""
+" The red color indicates that the current author sort does not match the "
+"current author. No action is required if this is what you want."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:411
msgid "&Number:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:451
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:492
msgid ""
"Last modified: %s\n"
"\n"
"Double click to view"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:476
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:509
+msgid "Set the cover for the book from the selected format"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:517
msgid "Set metadata for the book from the selected format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:483
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:524
msgid "Add a format to this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:490
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:531
msgid "Remove the selected format from this book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:755
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:597
+msgid "Choose formats for "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:629
+msgid "No permission"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:630
+msgid "You do not have permission to read the following files:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:660
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:661
+msgid "No format selected"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:672
+msgid "Could not read metadata"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:673
+msgid "Could not read metadata from %s format"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:692
+msgid "&Browse"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:694
+msgid "T&rim"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:696
+msgid "&Remove"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:702
+msgid "Download co&ver"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:703
+msgid "&Generate cover"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:753
+msgid "Not a valid picture"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
+msgid "Specify title and author"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
+msgid "You must specify a title and author before generating a cover"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:796
msgid "Invalid cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:756
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:797
msgid "Could not change cover as the image is invalid."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:783
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:824
msgid "This book has no cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:834
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:826
+msgid "Cover size: %dx%d pixels"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:875
msgid "stars"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:927
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:944
+msgid "Tags changed"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:945
+msgid ""
+"You have changed the tags. In order to use the tags editor, you must either "
+"discard or apply these changes. Apply changes?"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:971
msgid "I&ds:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:928
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:972
msgid ""
"Edit the identifiers for this book. For example: \n"
"\n"
"%s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:999
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1033
+msgid "This ISBN number is valid"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1036
+msgid "This ISBN number is invalid"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1050
msgid "&Publisher:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1069
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1120
msgid "Clear date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:109
-msgid "Book has neither title nor ISBN"
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1152
+msgid "Publishe&d:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:138
-msgid "No matches found for this book"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:227
-msgid "cover"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228
-msgid "Downloaded"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228
-msgid "Failed to get"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:232
-msgid "%s %s for: %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:291
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:175
-msgid "Done"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:292
-msgid "Successfully downloaded metadata for %d out of %d books"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:294
-#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:765
-msgid "Details"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:34
msgid "Schedule download?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:45
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:45
msgid ""
"The download of metadata for the %d selected book(s) will run in the "
"background. Proceed?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:47
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:47
msgid ""
"You can monitor the progress of the download by clicking the rotating "
"spinner in the bottom right corner."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:50
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:50
msgid ""
"When the download completes you will be asked for confirmation before "
"calibre applies the downloaded metadata."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:61
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:61
msgid "Download only &metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:65
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:65
msgid "Download only &covers"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:69
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:69
msgid "&Configure download"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:73
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:73
msgid "Download &both"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:99
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:99
msgid "Download metadata for %d books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:102
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:102
msgid "Metadata download started"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:111
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:111
msgid "(Failed metadata)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:113
msgid "(Failed cover)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download2.py:190
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:190
msgid "Downloaded %d of %d"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/config.py:61
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:109
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:115
msgid "Downloaded metadata fields"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:75
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:240
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:51
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:824
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:211
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:401
+msgid "Next"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:55
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:221
+#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:384
+msgid "Previous"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:80
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:265
msgid "Edit Metadata"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:101
+msgid ""
+"Automatically create the title sort entry based on the current title entry.\n"
+"Using this button to create title sort will change title sort from red to "
+"green."
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:112
+msgid ""
+"Automatically create the author sort entry based on the current author "
+"entry. Using this button to create author sort will change author sort from "
+"red to green. There is a menu of functions available under this button. "
+"Click and hold on the button to see it."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:118
msgid "Set author sort from author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:119
msgid "Set author from author sort"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:171
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:129
+msgid "Swap the author and title"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:135
+msgid ""
+"Manage authors. Use to rename authors and correct individual author's sort "
+"values"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:143
+msgid "Remove unused series (Series that have no books)"
+msgstr "حذف سلسلات غير مستخدمة (سلسلات التي لا تحتوي على كتب)"
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:178
+msgid ""
+"Paste the contents of the clipboard into the identifiers box prefixed with "
+"isbn:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:191
msgid "&Download metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:181
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:202
+msgid "Configure download metadata"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:206
msgid "Change how calibre downloads metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:512
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:702
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:306
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:313
+msgid "Could not read cover"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:307
+msgid "Could not read cover from %s format"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:314
+msgid "The cover in the %s format is invalid"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:397
+msgid "Permission denied"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:398
+msgid "Could not open %s. Is it being used by another program?"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:450
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:455
+msgid "Save changes and edit the metadata of %s"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:545
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:747
msgid "Change cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:561
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:602
msgid "Co&mments"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:600
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:642
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:788
msgid "&Metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:605
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:647
msgid "&Cover and formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:624
-msgid "Configure metadata downloading"
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:716
+msgid "C&ustom metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:671
-msgid "C&ustom metadata"
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:728
+msgid "&Comments"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:794
+msgid "Basic metadata"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:132
@@ -10930,6 +10482,10 @@ msgstr ""
msgid "Downloading metadata..."
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:906
+msgid "Downloading cover..."
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/__init__.py:37
msgid ""
"Restore settings to default values. You have to click Apply to actually save "
@@ -11024,111 +10580,111 @@ msgstr ""
msgid "&Configure metadata from file name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:35
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:37
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:160
msgid "Low"
msgstr "منخفض"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:35
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:169
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:159
msgid "High"
msgstr "مرتفع"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:37
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36
msgid "Very low"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:64
msgid "Compact Metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:176
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:65
+msgid "All on 1 tab"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:165
+msgid "Done"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:166
msgid "Confirmation dialogs have all been reset"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:155
-msgid "&Overwrite author and title by default when fetching metadata"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:156
-msgid "Download &social metadata (tags/ratings/etc.) by default"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:157
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:147
msgid "Show notification when &new version is available"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:158
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:148
msgid ""
"If checked, Yes/No custom columns values can be Yes, No, or Unknown.\n"
"If not checked, the values can be Yes or No."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:160
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:150
msgid "Yes/No columns have three values (Requires restart)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:161
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:151
msgid "Automatically send downloaded &news to ebook reader"
msgstr "إرسال الأخبار& التي تم تنزيلها آلياً إلى قارئ الكتب الإلكترونية"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:162
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:152
msgid "&Delete news from library when it is automatically sent to reader"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:163
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:153
msgid "Preferred &output format:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:164
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:154
msgid "Default network &timeout:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:165
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:155
msgid ""
"Set the default timeout for network fetches (i.e. anytime we go out to the "
"internet to get information)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:166
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:156
msgid " seconds"
msgstr " ثانية"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:167
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:157
msgid "Job &priority:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:171
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:161
msgid "Restriction to apply when the current library is opened:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:172
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:162
msgid ""
"Apply this restriction on calibre startup if the current library is being "
"used. Also applied when switching to this library. Note that this setting is "
"per library. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:173
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:163
msgid "Edit metadata (single) layout:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:164
msgid ""
"Choose a different layout for the Edit Metadata dialog. The compact metadata "
"layout favors editing custom metadata over changing covers and formats."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:175
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:165
msgid "Preferred &input format order:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:178
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:168
msgid "Use internal &viewer for:"
msgstr "استخدم المستعرض& الداخلي في:"
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:179
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:169
msgid "Reset all disabled &confirmation dialogs"
msgstr ""
@@ -11242,6 +10798,10 @@ msgstr ""
msgid "Quick create:"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65
+msgid "ISBN"
+msgstr "ISBN"
+
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:148
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:27
@@ -11462,6 +11022,7 @@ msgid "Getting debug information"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:22
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:32
msgid "Copy to &clipboard"
msgstr ""
@@ -11469,6 +11030,35 @@ msgstr ""
msgid "Debug device detection"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:31
+msgid "Getting device information"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:34
+msgid "User-defined device information"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:51
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:57
+msgid "Device Detection"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:52
+msgid "Ensure your device is disconnected, then press OK"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:58
+msgid "Ensure your device is connected, then press OK"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_user_defined.py:88
+msgid ""
+"Copy these values to the clipboard, paste them into an editor, then enter "
+"them into the USER_DEVICE by customizing the device plugin in Preferences-"
+">Plugins. Remember to also enter the folders where you want the books to be "
+"put. You must restart calibre for your changes to take effect.\n"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:66
msgid ""
"calibre can send your books to you (or your reader) by email. Emails will be "
@@ -11739,83 +11329,91 @@ msgstr ""
msgid "Cover priority"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:75
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:76
msgid "This source is configured and ready to go"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:76
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:77
msgid "This source needs configuration"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:147
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:148
msgid "Published date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:232
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:241
msgid "Configure %s
%s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:281
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:293
msgid "No source selected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:282
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:294
msgid "No source selected, cannot configure."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:104
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:110
msgid "Metadata sources"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:105
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:111
msgid ""
"Disable any metadata sources you do not want by unchecking them. You can "
"also set the cover priority. Covers from sources that have a higher "
"(smaller) priority will be preferred when bulk downloading metadata.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:107
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:113
msgid ""
"Sources with a red X next to their names must be configured before they will "
"be used. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:108
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:114
msgid "Configure selected source"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:110
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:116
msgid ""
"If you uncheck any fields, metadata for those fields will not be downloaded"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:111
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:117
+msgid "&Select all"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:118
+msgid "&Clear all"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:119
msgid "Convert all downloaded comments to plain &text"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:112
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:120
msgid "Swap author names from FN LN to LN, FN"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:113
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:121
msgid "Max. number of &tags to download:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:114
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:122
msgid "Max. &time to wait after first match is found:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:115
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:117
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:123
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:125
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:199
msgid " secs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:116
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:124
msgid "Max. time to wait after first &cover is found:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:118
+#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources_ui.py:126
msgid ""
"