diff --git a/Changelog.yaml b/Changelog.yaml index 3717d8d4d6..f57a545aec 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -34,7 +34,7 @@ - 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 alst few searches in history" + - 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" diff --git a/recipes/focus_de.recipe b/recipes/focus_de.recipe new file mode 100644 index 0000000000..d0b0f4aef8 --- /dev/null +++ b/recipes/focus_de.recipe @@ -0,0 +1,48 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1305567197(BasicNewsRecipe): + title = u'Focus (DE)' + __author__ = 'Anonymous' + language = 'de' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + remove_javascript = True + + def print_version(self, url): + return url + '?drucken=1' + + keep_only_tags = [ + dict(name='div', attrs={'id':['article']}) ] + + remove_tags = [dict(name='div', attrs={'class':'sidebar'}), + dict(name='div', attrs={'class':'commentForm'}), + dict(name='div', attrs={'class':'comment clearfix oid-3534591 open'}), + dict(name='div', attrs={'class':'similarityBlock'}), + dict(name='div', attrs={'class':'footer'}), + dict(name='div', attrs={'class':'getMoreComments'}), + dict(name='div', attrs={'class':'moreComments'}), + dict(name='div', attrs={'class':'ads'}), + dict(name='div', attrs={'class':'articleContent'}), + + + ] + remove_tags_after = [ + dict(name='div',attrs={'class':['commentForm','title', 'actions clearfix']}) + ] + + + feeds = [ (u'Eilmeldungen', u'http://rss2.focus.de/c/32191/f/533875/index.rss'), + (u'Auto-News', u'http://rss2.focus.de/c/32191/f/443320/index.rss'), + (u'Digital-News', u'http://rss2.focus.de/c/32191/f/443315/index.rss'), + (u'Finanzen-News', u'http://rss2.focus.de/c/32191/f/443317/index.rss'), + (u'Gesundheit-News', u'http://rss2.focus.de/c/32191/f/443314/index.rss'), + (u'Immobilien-News', u'http://rss2.focus.de/c/32191/f/443318/index.rss'), + (u'Kultur-News', u'http://rss2.focus.de/c/32191/f/443321/index.rss'), + (u'Panorama-News', u'http://rss2.focus.de/c/32191/f/533877/index.rss'), + (u'Politik-News', u'http://rss2.focus.de/c/32191/f/443313/index.rss'), + (u'Reisen-News', u'http://rss2.focus.de/c/32191/f/443316/index.rss'), + (u'Sport-News', u'http://rss2.focus.de/c/32191/f/443319/index.rss'), + (u'Wissen-News', u'http://rss2.focus.de/c/32191/f/533876/index.rss'), + ] diff --git a/recipes/national_geographic_de.recipe b/recipes/national_geographic_de.recipe new file mode 100644 index 0000000000..46f4783f41 --- /dev/null +++ b/recipes/national_geographic_de.recipe @@ -0,0 +1,25 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1305567197(BasicNewsRecipe): + title = u'National Geographic (DE)' + __author__ = 'Anonymous' + language = 'de' + oldest_article = 7 + max_articles_per_feed = 1000 + no_stylesheets = True + use_embedded_content = False + remove_javascript = True + cover_url = 'http://www.nationalgeographic.de/images/national-geographic-logo.jpg' + keep_only_tags = [ + dict(name='div', attrs={'class':['contentbox_no_top_border']}) ] + + remove_tags = [ + dict(name='div', attrs={'class':'related'}), + dict(name='li', attrs={'class':'first'}), + dict(name='div', attrs={'class':'extrasbox_inner'}), + + ] + + feeds = [ (u'National Geographic', u'http://feeds.nationalgeographic.de/ng-neueste-artikel'), + + ] diff --git a/src/calibre/gui2/store/amazon_plugin.py b/src/calibre/gui2/store/amazon_plugin.py index 8a983f0e47..b70d03ad0a 100644 --- a/src/calibre/gui2/store/amazon_plugin.py +++ b/src/calibre/gui2/store/amazon_plugin.py @@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en' import random import re -import urllib2 +import urllib from contextlib import closing from lxml import html @@ -22,7 +22,7 @@ from calibre.gui2.store.search_result import SearchResult class AmazonKindleStore(StorePlugin): - search_url = 'http://www.amazon.com/s/url=search-alias%3Ddigital-text&field-keywords=' + search_url = 'http://www.amazon.com/s/?url=search-alias%3Ddigital-text&field-keywords=' details_url = 'http://amazon.com/dp/' drm_search_text = u'Simultaneous Device Usage' drm_free_text = u'Unlimited' @@ -122,28 +122,42 @@ class AmazonKindleStore(StorePlugin): open_url(QUrl(store_link)) def search(self, query, max_results=10, timeout=60): - url = self.search_url + urllib2.quote(query) + url = self.search_url + urllib.quote_plus(query) br = browser() counter = max_results with closing(br.open(url, timeout=timeout)) as f: doc = html.fromstring(f.read()) - for data in doc.xpath('//div[@class="productData"]'): + + # Amazon has two results pages. + is_shot = doc.xpath('boolean(//div[@id="shotgunMainResults"])') + # Horizontal grid of books. + if is_shot: + data_xpath = '//div[contains(@class, "result")]' + format_xpath = './/div[@class="productTitle"]/text()' + cover_xpath = './/div[@class="productTitle"]//img/@src' + # Vertical list of books. + else: + data_xpath = '//div[@class="productData"]' + format_xpath = './/span[@class="format"]/text()' + cover_xpath = '../div[@class="productImage"]/a/img/@src' + + for data in doc.xpath(data_xpath): if counter <= 0: break - + # Even though we are searching digital-text only Amazon will still # put in results for non Kindle books (author pages). Se we need # to explicitly check if the item is a Kindle book and ignore it # if it isn't. - type = ''.join(data.xpath('//span[@class="format"]/text()')) - if 'kindle' not in type.lower(): + format = ''.join(data.xpath(format_xpath)) + if 'kindle' not in format.lower(): continue - + # We must have an asin otherwise we can't easily reference the # book later. asin_href = None - asin_a = data.xpath('div[@class="productTitle"]/a[1]') + asin_a = data.xpath('.//div[@class="productTitle"]/a[1]') if asin_a: asin_href = asin_a[0].get('href', '') m = re.search(r'/dp/(?P.+?)(/|$)', asin_href) @@ -153,29 +167,22 @@ class AmazonKindleStore(StorePlugin): continue else: continue + + cover_url = ''.join(data.xpath(cover_xpath)) - cover_url = '' - if asin_href: - cover_img = data.xpath('//div[@class="productImage"]/a[@href="%s"]/img/@src' % asin_href) - if cover_img: - cover_url = cover_img[0] - parts = cover_url.split('/') - bn = parts[-1] - f, _, ext = bn.rpartition('.') - if '_' in f: - bn = f.partition('_')[0]+'_SL160_.'+ext - parts[-1] = bn - cover_url = '/'.join(parts) - - title = ''.join(data.xpath('div[@class="productTitle"]/a/text()')) - author = ''.join(data.xpath('div[@class="productTitle"]/span[@class="ptBrand"]/text()')) - author = author.split('by')[-1] - price = ''.join(data.xpath('div[@class="newPrice"]/span/text()')) - + title = ''.join(data.xpath('.//div[@class="productTitle"]/a/text()')) + price = ''.join(data.xpath('.//div[@class="newPrice"]/span/text()')) + + if is_shot: + author = format.split(' by ')[-1] + else: + author = ''.join(data.xpath('.//div[@class="productTitle"]/span[@class="ptBrand"]/text()')) + author = author.split(' by ')[-1] + counter -= 1 - + s = SearchResult() - s.cover_url = cover_url + s.cover_url = cover_url.strip() s.title = title.strip() s.author = author.strip() s.price = price.strip() diff --git a/src/calibre/ptempfile.py b/src/calibre/ptempfile.py index ac7df1c4e3..bff13dd248 100644 --- a/src/calibre/ptempfile.py +++ b/src/calibre/ptempfile.py @@ -39,8 +39,20 @@ def base_dir(): if td and os.path.exists(td): _base_dir = td else: - _base_dir = tempfile.mkdtemp(prefix='%s_%s_tmp_'%(__appname__, - __version__), dir=os.environ.get('CALIBRE_TEMP_DIR', None)) + base = os.environ.get('CALIBRE_TEMP_DIR', None) + prefix = u'%s_%s_tmp_'%(__appname__, __version__) + try: + # First try an ascii path as that is what was done historically + # and we dont want to break working code + # _base_dir will be a bytestring + _base_dir = tempfile.mkdtemp(prefix=prefix.encode('ascii'), dir=base) + except: + # Failed to create tempdir (probably localized windows) + # Try unicode. This means that all temp paths created by this + # module will be unicode, this may cause problems elsewhere, if + # so, hopefully people will open tickets and they can be fixed. + _base_dir = tempfile.mkdtemp(prefix=prefix, dir=base) + atexit.register(remove_dir, _base_dir) return _base_dir diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index bf0a118268..127d250e89 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.8.1\n" -"POT-Creation-Date: 2011-05-13 11:23+MDT\n" -"PO-Revision-Date: 2011-05-13 11:23+MDT\n" +"Project-Id-Version: calibre 0.8.2\n" +"POT-Creation-Date: 2011-05-20 11:08+MDT\n" +"PO-Revision-Date: 2011-05-20 11:08+MDT\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:253 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:34 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:35 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:89 @@ -71,7 +71,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/rtf.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/snb.py:16 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:48 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:298 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:78 @@ -86,9 +86,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:125 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:159 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:953 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:955 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:714 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:963 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001 @@ -135,8 +135,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1118 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1121 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1120 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1123 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:68 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 @@ -157,6 +157,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:358 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/store/google_books_plugin.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:199 #: /home/kovid/work/calibre/src/calibre/library/cli.py:217 @@ -191,8 +192,8 @@ msgid "Customize" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:48 msgid "Cannot configure" msgstr "" @@ -231,339 +232,363 @@ msgstr "" msgid "Store" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:18 msgid "Follow all local links in an HTML file and create a ZIP file containing all linked files. This plugin is run every time you add an HTML file to the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:54 msgid "Character encoding for the input HTML files. Common choices include: cp1252, latin1, iso-8859-1 and utf-8." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:61 msgid "Create a PMLZ archive containing the PML file and all images in the directory pmlname_img or images. This plugin is run every time you add a PML file to the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:90 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:91 msgid "Create a TXTZ archive when a TXT file is imported containing Markdown or Textile references to images. The referenced images as well as the TXT file are added to the archive." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:167 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:168 msgid "Extract cover from comic files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:227 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:237 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:247 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:258 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:289 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:299 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:352 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:373 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:384 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:394 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:405 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:415 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:426 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:205 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:216 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:228 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:238 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:248 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:259 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:270 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:280 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:290 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:310 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:330 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:341 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:353 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:374 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:385 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:395 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:406 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:416 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:427 msgid "Read metadata from %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:363 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:364 msgid "Read metadata from ebooks in RAR archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:437 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:438 msgid "Read metadata from ebooks in ZIP archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:450 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:471 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:481 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:503 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:514 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:524 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:451 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:472 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:482 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:504 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:525 msgid "Set metadata in %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:460 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:492 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:535 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:461 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:493 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:536 msgid "Set metadata from %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:872 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:873 msgid "Look and Feel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:908 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:920 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:898 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:909 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:921 msgid "Interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:878 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:879 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:884 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 msgid "Behavior" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:890 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Change the way calibre behaves" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:895 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:896 #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:220 msgid "Add your own columns" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:901 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:902 msgid "Add/remove your own columns to the calibre book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:906 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:907 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:912 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:913 msgid "Customize the toolbars and context menus, changing which actions are available in each" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:918 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:919 msgid "Searching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:924 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:925 msgid "Customize the way searching for books works in calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:929 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:930 msgid "Input Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:931 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:942 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:953 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:932 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:943 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:954 msgid "Conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:935 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:936 msgid "Set conversion options specific to each input format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:940 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:941 msgid "Common Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:946 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:947 msgid "Set conversion options common to all formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:951 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:952 msgid "Output Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:957 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:958 msgid "Set conversion options specific to each output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:962 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:963 msgid "Adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:964 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:976 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:988 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1000 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:965 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:977 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:989 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1001 msgid "Import/Export" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:968 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:969 msgid "Control how calibre reads metadata from files when adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:974 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:975 msgid "Saving books to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:980 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:981 msgid "Control how calibre exports files from its database to disk when using Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:986 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:987 msgid "Sending books to devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:992 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:993 msgid "Control how calibre transfers files to your ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:998 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:999 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1004 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1005 msgid "Change metadata fields before saving/sending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1009 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1010 msgid "Template Functions" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1011 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1058 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1070 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1081 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1012 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1059 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1071 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1082 msgid "Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1015 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1016 msgid "Create your own template functions" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1020 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1021 msgid "Sharing books by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1022 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1034 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1047 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1023 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1035 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1048 msgid "Sharing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1026 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1027 msgid "Setup sharing of books via email. Can be used for automatic sending of downloaded news to your devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1032 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1033 msgid "Sharing over the net" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1038 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1039 msgid "Setup the calibre Content Server which will give you access to your calibre library from anywhere, on any device, over the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1045 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1046 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1051 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1052 msgid "Control how calibre downloads ebook metadata from the net" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1056 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1057 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:273 msgid "Plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1062 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1063 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1068 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1069 msgid "Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1074 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1075 msgid "Fine tune how calibre behaves in various contexts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1079 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1080 msgid "Miscellaneous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1085 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1086 msgid "Miscellaneous advanced configuration" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1097 -msgid "Kindle books from Amazon" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1098 +msgid "Kindle books from Amazon." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1102 -msgid "Kindle eBooks" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1103 +msgid "Kindle books from Amazon.de." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1107 -msgid "Kindle books from Amazon.uk" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1108 +msgid "Kindle books from Amazon.uk." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1112 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1113 +msgid "Free Books : Download & Streaming : Ebook and Texts Archive : Internet Archive." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1119 msgid "Ebooks for readers." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1117 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1124 msgid "Books, Textbooks, eBooks, Toys, Games and More." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1122 -msgid "der eBook Shop" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1129 +msgid "Der eBook Shop." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1127 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1134 msgid "Publishers of fine books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1132 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1139 msgid "World Famous eBook Store." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1137 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1144 msgid "The digital bookstore." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1142 -msgid "EPUBReaders eBook Shop" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1149 +msgid "EPUBReaders eBook Shop." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1147 -msgid "entertain, enrich, inspire." +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1154 +msgid "Entertain, enrich, inspire." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1152 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1159 msgid "Read anywhere." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1157 -msgid "Foyles of London, online" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1164 +msgid "Foyles of London, online." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1162 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1170 +msgid "Zaczarowany \305\233wiat ksi\304\205\305\274ek" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1175 +msgid "Google Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1180 msgid "The first producer of free ebooks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1167 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1185 msgid "eReading: anytime. anyplace." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1172 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1190 msgid "The best ebooks at the best price: free!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1177 -msgid "Ebooks handcrafted with the utmost care" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1195 +msgid "Ebooks handcrafted with the utmost care." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1182 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1201 +msgid "Audiobooki mp3, ebooki, prasa - ksi\304\231garnia internetowa." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1206 msgid "One web page for every book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1187 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1211 +msgid "DRM-Free tech ebooks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1216 +msgid "The Pragmatic Bookshelf" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1221 msgid "Your ebook. Your way." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1192 -msgid "Feel every word" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:1226 +msgid "Feel every word." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 @@ -838,16 +863,16 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:436 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:475 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1058 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1102 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3087 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3127 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1057 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1101 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3097 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3137 msgid "%d of %d" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:482 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1107 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3133 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1106 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3143 #: /home/kovid/work/calibre/src/calibre/gui2/ebook_download.py:106 msgid "finished" msgstr "" @@ -865,7 +890,7 @@ msgid "" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2669 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2668 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:100 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:447 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:470 @@ -881,7 +906,7 @@ msgstr "" msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2670 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2669 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:643 #: /home/kovid/work/calibre/src/calibre/library/database2.py:2768 @@ -889,7 +914,7 @@ msgstr "" msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2991 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3001 msgid "Communicate with iTunes." msgstr "" @@ -2565,31 +2590,43 @@ msgstr "" msgid "Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:384 msgid "Downloads metadata and covers from Amazon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:303 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:394 msgid "US" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:395 msgid "France" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:396 msgid "Germany" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:306 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:397 msgid "UK" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:400 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:398 +msgid "Italy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:402 +msgid "Amazon website to use:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:403 +msgid "Metadata from Amazon will be fetched using this country's Amazon website." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:508 msgid "Amazon timed out. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:159 msgid "Metadata source" msgstr "" @@ -3418,10 +3455,10 @@ msgid "Add to library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:376 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:104 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:185 @@ -3548,17 +3585,17 @@ msgid "Switch/create library..." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:105 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:87 msgid "Quick switch" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:107 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:88 msgid "Rename library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 msgid "Delete library" msgstr "" @@ -3617,6 +3654,7 @@ msgid "Failed to rename the library at %s. The most common cause for this is if msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:30 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:368 @@ -3780,108 +3818,112 @@ msgstr "" msgid "You cannot use other libraries while using the environment variable CALIBRE_OVERRIDE_DATABASE_PATH." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:31 +msgid "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." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:42 msgid "Deleting..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:65 msgid "Deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:77 msgid "Failed to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:78 msgid "Failed to delete some books, click the Show Details button for details." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:84 msgid "Del" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:84 msgid "Remove books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:90 msgid "Remove selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:92 msgid "Remove files of a specific format from selected books.." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:95 msgid "Remove all formats from selected books, except..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:98 msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:101 msgid "Remove matching books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:124 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:137 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:155 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:175 msgid "Cannot delete books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:176 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:186 msgid "Main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:477 msgid "Storage Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:470 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:479 msgid "Storage Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:193 msgid "No books to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:194 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:200 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:302 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:257 msgid "Some of the selected books are on the attached device. Where do you want the selected files deleted from?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:269 msgid "The selected books will be permanently deleted and the files removed from your calibre library. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:294 msgid "The selected books will be permanently deleted from your device. Are you sure?" msgstr "" @@ -4159,24 +4201,24 @@ msgstr "" msgid "Ctrl+P" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:24 msgid "Change calibre behavior" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:25 #: /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:28 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:29 msgid "Restart in debug mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:44 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:49 msgid "Cannot configure before calibre is restarted." msgstr "" @@ -4319,34 +4361,34 @@ 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/search_ui.py:122 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:104 msgid "Cannot search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:116 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:113 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:120 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:117 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:124 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 purchase should be directed to the website you are buying from. Be sure to double check that any books you get will work with your e-book reader, especially if the book you are buying has DRM." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:134 msgid "Show this message again" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:135 msgid "About Get Books" msgstr "" @@ -4457,7 +4499,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:843 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:845 msgid "No books" msgstr "" @@ -4613,8 +4655,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:110 #: /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:115 +#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 msgid "..." msgstr "" @@ -4631,6 +4673,10 @@ msgstr "" msgid "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/bars.py:190 +msgid "Donate" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:108 msgid "Click to open" msgstr "" @@ -4744,7 +4790,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 @@ -5852,7 +5898,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pmlz_output_ui.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:34 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:95 msgid "&Inline TOC" msgstr "" @@ -5931,7 +5977,7 @@ msgid "Occurrences:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread_store_dialog_ui.py:64 msgid "0" msgstr "" @@ -6020,7 +6066,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/cache_progress_dialog_ui.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread_store_dialog_ui.py:61 msgid "Dialog" msgstr "" @@ -6192,46 +6238,50 @@ msgstr "" msgid "TXT Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:88 msgid "General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:89 msgid "Output &Encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:90 msgid "&Line ending style:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:91 msgid "&Formatting:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:92 msgid "Plain" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:93 msgid "&Maximum line length:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:94 msgid "Force maximum line length" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:96 msgid "Markdown, Textile" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:97 msgid "Do not remove links ( tags) before processing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:98 msgid "Do not remove image references before processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:99 +msgid "Keep text color, when possible" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/txtz_output.py:12 msgid "TXTZ Output" msgstr "" @@ -6497,7 +6547,7 @@ msgid "Error communicating with device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:631 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:221 msgid "No suitable formats" msgstr "" @@ -6522,67 +6572,67 @@ msgstr "" msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:846 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:863 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 msgid "%i of %i Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:868 msgid "0 of %i Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:878 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:879 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:886 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1028 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1162 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:947 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1030 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1164 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:974 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:976 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1077 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1129 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1131 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1171 msgid "Could not upload the following books to the device, as no suitable formats were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1244 msgid "

Cannot upload books to device there is no more free space available " msgstr "" @@ -6599,7 +6649,7 @@ msgstr "" #: #: /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/plugboard.py:293 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:61 msgid "Invalid template" msgstr "" @@ -6607,7 +6657,7 @@ msgstr "" #: #: /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/plugboard.py:294 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:62 msgid "The template %s is invalid:" msgstr "" @@ -7002,14 +7052,14 @@ msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:68 #: /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:66 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:70 msgid "Device" msgstr "" @@ -7138,35 +7188,35 @@ msgid "Author names cannot contain & characters." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:88 #: /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:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:89 #: /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/dialogs/edit_authors_dialog_ui.py:90 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:91 msgid "Sort by author" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:92 msgid "Sort by author sort" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:93 msgid "" "Reset all the author sort values to a value automatically\n" "generated from the author. Exactly how this value is automatically\n" @@ -7174,19 +7224,19 @@ msgid "" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:96 msgid "Recalculate all author sort values" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:97 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:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:99 msgid "Copy all author sort values to author" msgstr "" @@ -8889,72 +8939,68 @@ msgstr "" msgid "Do you really want to stop all non-device jobs?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:57 msgid "Eject this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 msgid "Show books in calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:71 msgid "Show books in the main memory of the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:72 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1019 msgid "Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:73 msgid "Show books in storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:74 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1021 msgid "Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:75 msgid "Show books in storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:140 msgid "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "Shift+Ctrl+F" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:184 msgid "Advanced search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:189 msgid "

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:191 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:195 msgid "&Go!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:201 msgid "Do Quick Search (you can also press the Enter key)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:207 msgid "Reset Quick Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:223 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:259 -msgid "Donate" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:361 msgid "Y" msgstr "" @@ -10694,31 +10740,60 @@ msgstr "" msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:37 msgid "Open Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:72 msgid "Device currently connected: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:75 msgid "Device currently connected: None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:238 -msgid "That format and device already has a plugboard or conflicts with another plugboard." +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:207 +msgid "That format and device already has a plugboard." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:219 +msgid "Possibly override plugboard?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:220 +msgid "A more general plugboard already exists for that format and device. Are you sure you want to add the new plugboard?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:254 +msgid "Add possibly overridden plugboard?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:233 +msgid "More specific device plugboards exist for that format. Are you sure you want to add the new plugboard?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:244 +msgid "Really add plugboard?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:245 +msgid "A different plugboard matches that format and device combination. Are you sure you want to add the new plugboard?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:255 +msgid "More specific format and device plugboards already exist. Are you sure you want to add the new plugboard?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:266 msgid "The {0} device does not support the {1} format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:299 msgid "Invalid destination" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:281 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:300 msgid "The destination field cannot be blank" msgstr "" @@ -10788,7 +10863,7 @@ msgid "Search for plugin" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:230 -#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:223 msgid "No matches" msgstr "" @@ -11429,8 +11504,8 @@ 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/mobileread/store_dialog_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:121 #: /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 @@ -11513,7 +11588,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:120 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/store/search_ui.py:113 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:351 msgid "None" @@ -11584,7 +11659,7 @@ msgstr "" msgid "Open store in external web browswer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/store/ebooks_com_plugin.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/store/ebooks_com_plugin.py:96 msgid "Not Available" msgstr "" @@ -11619,20 +11694,20 @@ msgid "Updating MobileRead book cache..." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:74 msgid "&Query:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread/store_dialog_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/store/mobileread_store_dialog_ui.py:63 msgid "Books:" 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:79 #: /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:123 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:128 #: /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" @@ -11677,35 +11752,35 @@ msgstr "" msgid "The DRM status of this book could not be determined. There is a very high likelihood that this book is actually DRM restricted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:223 msgid "Couldn't find any books matching your query." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:118 #: /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:114 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:119 #: /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: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:111 msgid "All" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:124 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:126 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 +#: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:127 msgid "Open in &external browser" msgstr "" @@ -12854,7 +12929,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/caches.py:562 #: /home/kovid/work/calibre/src/calibre/library/caches.py:576 #: /home/kovid/work/calibre/src/calibre/library/caches.py:586 -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:213 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:214 msgid "yes" msgstr "" @@ -12869,7 +12944,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/caches.py:561 #: /home/kovid/work/calibre/src/calibre/library/caches.py:573 #: /home/kovid/work/calibre/src/calibre/library/caches.py:583 -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:213 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:214 msgid "no" msgstr "" @@ -13750,53 +13825,53 @@ msgstr "" msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:81 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "Normally, calibre will update the metadata in the saved files from what is in the calibre library. Makes saving to disk slower." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Normally, calibre will write the metadata into a separate OPF file along with the actual e-book files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:88 msgid "Normally, calibre will save the cover in a separate file along with the actual e-book file(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:90 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:91 msgid "Comma separated list of formats to save for each book. By default all available formats are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:93 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:94 msgid "The template to control the filename and directory structure of the saved files. Default is \"%s\" which will save books into a per-author subdirectory with filenames containing title and author. Available controls are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:98 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:99 msgid "The template to control the filename and directory structure of files sent to the device. Default is \"%s\" which will save books into a per-author directory with filenames containing title and author. Available controls are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:105 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:106 msgid "Normally, calibre will convert all non English characters into English equivalents for the file names. WARNING: If you turn this off, you may experience errors when saving, depending on how well the filesystem you are saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:111 -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:114 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:112 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:115 msgid "The format in which to display dates. %d - day, %b - month, %Y - year. Default is: %b, %Y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:117 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:118 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:119 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:120 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:369 -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:397 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:370 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:398 msgid "Requested formats not available" msgstr "" @@ -14764,185 +14839,193 @@ msgid "Author sort name algorithm" msgstr "" #: /home/kovid/work/calibre/resources/default_tweaks.py:41 -msgid "The algorithm used to copy author to author_sort\nPossible values are:\ninvert: use \"fn ln\" -> \"ln, fn\" (the default algorithm)\ncopy : copy author to author_sort without modification\ncomma : use 'copy' if there is a ',' in the name, otherwise use 'invert'\nnocomma : \"fn ln\" -> \"ln fn\" (without the comma)\nWhen this tweak is changed, the author_sort values stored with each author\nmust be recomputed by right-clicking on an author in the left-hand tags pane,\nselecting 'manage authors', and pressing 'Recalculate all author sort values'." +msgid "The algorithm used to copy author to author_sort\nPossible values are:\ninvert: use \"fn ln\" -> \"ln, fn\"\ncopy : copy author to author_sort without modification\ncomma : use 'copy' if there is a ',' in the name, otherwise use 'invert'\nnocomma : \"fn ln\" -> \"ln fn\" (without the comma)\nWhen this tweak is changed, the author_sort values stored with each author\nmust be recomputed by right-clicking on an author in the left-hand tags pane,\nselecting 'manage authors', and pressing 'Recalculate all author sort values'.\nThe author name suffixes are words that are ignored when they occur at the\nend of an author name. The case of the suffix is ignored and trailing\nperiods are automatically handled." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:52 +#: /home/kovid/work/calibre/resources/default_tweaks.py:58 msgid "Use author sort in Tag Browser" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:53 +#: /home/kovid/work/calibre/resources/default_tweaks.py:59 msgid "Set which author field to display in the tags pane (the list of authors,\nseries, publishers etc on the left hand side). The choices are author and\nauthor_sort. This tweak affects only what is displayed under the authors\ncategory in the tags pane and content server. Please note that if you set this\nto author_sort, it is very possible to see duplicate names in the list because\nalthough it is guaranteed that author names are unique, there is no such\nguarantee for author_sort values. Showing duplicates won't break anything, but\nit could lead to some confusion. When using 'author_sort', the tooltip will\nshow the author's name.\nExamples:\ncategories_use_field_for_author_name = 'author'\ncategories_use_field_for_author_name = 'author_sort'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:67 +#: /home/kovid/work/calibre/resources/default_tweaks.py:73 msgid "Control partitioning of Tag Browser" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:68 +#: /home/kovid/work/calibre/resources/default_tweaks.py:74 msgid "When partitioning the tags browser, the format of the subcategory label is\ncontrolled by a template: categories_collapsed_name_template if sorting by\nname, categories_collapsed_rating_template if sorting by average rating, and\ncategories_collapsed_popularity_template if sorting by popularity. There are\ntwo variables available to the template: first and last. The variable 'first'\nis the initial item in the subcategory, and the variable 'last' is the final\nitem in the subcategory. Both variables are 'objects'; they each have multiple\nvalues that are obtained by using a suffix. For example, first.name for an\nauthor category will be the name of the author. The sub-values available are:\nname: the printable name of the item\ncount: the number of books that references this item\navg_rating: the average rating of all the books referencing this item\nsort: the sort value. For authors, this is the author_sort for that author\ncategory: the category (e.g., authors, series) that the item is in.\nNote that the \"r'\" in front of the { is necessary if there are backslashes\n(\\ characters) in the template. It doesn't hurt anything to leave it there\neven if there aren't any backslashes." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:90 +#: /home/kovid/work/calibre/resources/default_tweaks.py:96 msgid "Specify columns to sort the booklist by on startup" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:91 +#: /home/kovid/work/calibre/resources/default_tweaks.py:97 msgid "Provide a set of columns to be sorted on when calibre starts\nThe argument is None if saved sort history is to be used\notherwise it is a list of column,order pairs. Column is the\nlookup/search name, found using the tooltip for the column\nOrder is 0 for ascending, 1 for descending\nFor example, set it to [('authors',0),('title',0)] to sort by\ntitle within authors." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:100 +#: /home/kovid/work/calibre/resources/default_tweaks.py:106 msgid "Control how dates are displayed" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:101 +#: /home/kovid/work/calibre/resources/default_tweaks.py:107 msgid "Format to be used for publication date and the timestamp (date).\nA string controlling how the publication date is displayed in the GUI\nd the day as number without a leading zero (1 to 31)\ndd the day as number with a leading zero (01 to 31)\nddd the abbreviated localized day name (e.g. 'Mon' to 'Sun').\ndddd the long localized day name (e.g. 'Monday' to 'Qt::Sunday').\nM the month as number without a leading zero (1-12)\nMM the month as number with a leading zero (01-12)\nMMM the abbreviated localized month name (e.g. 'Jan' to 'Dec').\nMMMM the long localized month name (e.g. 'January' to 'December').\nyy the year as two digit number (00-99)\nyyyy the year as four digit number\nFor example, given the date of 9 Jan 2010, the following formats show\nMMM yyyy ==> Jan 2010 yyyy ==> 2010 dd MMM yyyy ==> 09 Jan 2010\nMM/yyyy ==> 01/2010 d/M/yy ==> 9/1/10 yy ==> 10\npublication default if not set: MMM yyyy\ntimestamp default if not set: dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:122 +#: /home/kovid/work/calibre/resources/default_tweaks.py:128 msgid "Control sorting of titles and series in the library display" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:123 +#: /home/kovid/work/calibre/resources/default_tweaks.py:129 msgid "Control title and series sorting in the library view. If set to\n'library_order', the title sort field will be used instead of the title.\nUnless you have manually edited the title sort field, leading articles such as\nThe and A will be ignored. If set to 'strictly_alphabetic', the titles will be\nsorted as-is (sort by title instead of title sort). For example, with\nlibrary_order, The Client will sort under 'C'. With strictly_alphabetic, the\nbook will sort under 'T'.\nThis flag affects Calibre's library display. It has no effect on devices. In\naddition, titles for books added before changing the flag will retain their\norder until the title is edited. Double-clicking on a title and hitting return\nwithout changing anything is sufficient to change the sort." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:136 +#: /home/kovid/work/calibre/resources/default_tweaks.py:142 msgid "Control formatting of title and series when used in templates" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:137 +#: /home/kovid/work/calibre/resources/default_tweaks.py:143 msgid "Control how title and series names are formatted when saving to disk/sending\nto device. The behavior depends on the field being processed. If processing\ntitle, then if this tweak is set to 'library_order', the title will be\nreplaced with title_sort. If it is set to 'strictly_alphabetic', then the\ntitle will not be changed. If processing series, then if set to\n'library_order', articles such as 'The' and 'An' will be moved to the end. If\nset to 'strictly_alphabetic', the series will be sent without change.\nFor example, if the tweak is set to library_order, \"The Lord of the Rings\"\nwill become \"Lord of the Rings, The\". If the tweak is set to\nstrictly_alphabetic, it would remain \"The Lord of the Rings\"." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:149 +#: /home/kovid/work/calibre/resources/default_tweaks.py:155 msgid "Set the list of words considered to be \"articles\" for sort strings" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:150 +#: /home/kovid/work/calibre/resources/default_tweaks.py:156 msgid "Set the list of words that are to be considered 'articles' when computing the\ntitle sort strings. The list is a regular expression, with the articles\nseparated by 'or' bars. Comparisons are case insensitive, and that cannot be\nchanged. Changes to this tweak won't have an effect until the book is modified\nin some way. If you enter an invalid pattern, it is silently ignored.\nTo disable use the expression: '^$'\nDefault: '^(A|The|An)\\s+'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:159 +#: /home/kovid/work/calibre/resources/default_tweaks.py:165 msgid "Specify a folder calibre should connect to at startup" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:160 +#: /home/kovid/work/calibre/resources/default_tweaks.py:166 msgid "Specify a folder that calibre should connect to at startup using\nconnect_to_folder. This must be a full path to the folder. If the folder does\nnot exist when calibre starts, it is ignored. If there are '\\' characters in\nthe path (such as in Windows paths), you must double them.\nExamples:\nauto_connect_to_folder = 'C:\\\\Users\\\\someone\\\\Desktop\\\\testlib'\nauto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:169 +#: /home/kovid/work/calibre/resources/default_tweaks.py:175 msgid "Specify renaming rules for SONY collections" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:170 +#: /home/kovid/work/calibre/resources/default_tweaks.py:176 msgid "Specify renaming rules for sony collections. This tweak is only applicable if\nmetadata management is set to automatic. Collections on Sonys are named\ndepending upon whether the field is standard or custom. A collection derived\nfrom a standard field is named for the value in that field. For example, if\nthe standard 'series' column contains the value 'Darkover', then the\ncollection name is 'Darkover'. A collection derived from a custom field will\nhave the name of the field added to the value. For example, if a custom series\ncolumn named 'My Series' contains the name 'Darkover', then the collection\nwill by default be named 'Darkover (My Series)'. For purposes of this\ndocumentation, 'Darkover' is called the value and 'My Series' is called the\ncategory. If two books have fields that generate the same collection name,\nthen both books will be in that collection.\nThis set of tweaks lets you specify for a standard or custom field how\nthe collections are to be named. You can use it to add a description to a\nstandard field, for example 'Foo (Tag)' instead of the 'Foo'. You can also use\nit to force multiple fields to end up in the same collection. For example, you\ncould force the values in 'series', '#my_series_1', and '#my_series_2' to\nappear in collections named 'some_value (Series)', thereby merging all of the\nfields into one set of collections.\nThere are two related tweaks. The first determines the category name to use\nfor a metadata field. The second is a template, used to determines how the\nvalue and category are combined to create the collection name.\nThe syntax of the first tweak, sony_collection_renaming_rules, is:\n{'field_lookup_name':'category_name_to_use', 'lookup_name':'name', ...}\nThe second tweak, sony_collection_name_template, is a template. It uses the\nsame template language as plugboards and save templates. This tweak controls\nhow the value and category are combined together to make the collection name.\nThe only two fields available are {category} and {value}. The {value} field is\nnever empty. The {category} field can be empty. The default is to put the\nvalue first, then the category enclosed in parentheses, it is isn't empty:\n'{value} {category:|(|)}'\nExamples: The first three examples assume that the second tweak\nhas not been changed.\n1: I want three series columns to be merged into one set of collections. The\ncolumn lookup names are 'series', '#series_1' and '#series_2'. I want nothing\nin the parenthesis. The value to use in the tweak value would be:\nsony_collection_renaming_rules={'series':'', '#series_1':'', '#series_2':''}\n2: I want the word '(Series)' to appear on collections made from series, and\nthe word '(Tag)' to appear on collections made from tags. Use:\nsony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}\n3: I want 'series' and '#myseries' to be merged, and for the collection name\nto have '(Series)' appended. The renaming rule is:\nsony_collection_renaming_rules={'series':'Series', '#myseries':'Series'}\n4: Same as example 2, but instead of having the category name in parentheses\nand appended to the value, I want it prepended and separated by a colon, such\nas in Series: Darkover. I must change the template used to format the category name\nThe resulting two tweaks are:\nsony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}\nsony_collection_name_template='{category:||: }{value}'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:222 +#: /home/kovid/work/calibre/resources/default_tweaks.py:228 msgid "Specify how SONY collections are sorted" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:223 +#: /home/kovid/work/calibre/resources/default_tweaks.py:229 msgid "Specify how sony collections are sorted. This tweak is only applicable if\nmetadata management is set to automatic. You can indicate which metadata is to\nbe used to sort on a collection-by-collection basis. The format of the tweak\nis a list of metadata fields from which collections are made, followed by the\nname of the metadata field containing the sort value.\nExample: The following indicates that collections built from pubdate and tags\nare to be sorted by the value in the custom column '#mydate', that collections\nbuilt from 'series' are to be sorted by 'series_index', and that all other\ncollections are to be sorted by title. If a collection metadata field is not\nnamed, then if it is a series- based collection it is sorted by series order,\notherwise it is sorted by title order.\n[(['pubdate', 'tags'],'#mydate'), (['series'],'series_index'), (['*'], 'title')]\nNote that the bracketing and parentheses are required. The syntax is\n[ ( [list of fields], sort field ) , ( [ list of fields ] , sort field ) ]\nDefault: empty (no rules), so no collection attributes are named." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:241 +#: /home/kovid/work/calibre/resources/default_tweaks.py:247 msgid "Control how tags are applied when copying books to another library" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:242 +#: /home/kovid/work/calibre/resources/default_tweaks.py:248 msgid "Set this to True to ensure that tags in 'Tags to add when adding\na book' are added when copying books to another library" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:247 +#: /home/kovid/work/calibre/resources/default_tweaks.py:253 msgid "Set the maximum number of tags to show per book in the content server" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:251 +#: /home/kovid/work/calibre/resources/default_tweaks.py:257 msgid "Set custom metadata fields that the content server will or will not display." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:252 +#: /home/kovid/work/calibre/resources/default_tweaks.py:258 msgid "content_server_will_display is a list of custom fields to be displayed.\ncontent_server_wont_display is a list of custom fields not to be displayed.\nwont_display has priority over will_display.\nThe special value '*' means all custom fields. The value [] means no entries.\nDefaults:\ncontent_server_will_display = ['*']\ncontent_server_wont_display = []\nExamples:\nTo display only the custom fields #mytags and #genre:\ncontent_server_will_display = ['#mytags', '#genre']\ncontent_server_wont_display = []\nTo display all fields except #mycomments:\ncontent_server_will_display = ['*']\ncontent_server_wont_display['#mycomments']" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:269 +#: /home/kovid/work/calibre/resources/default_tweaks.py:275 msgid "Set the maximum number of sort 'levels'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:270 +#: /home/kovid/work/calibre/resources/default_tweaks.py:276 msgid "Set the maximum number of sort 'levels' that calibre will use to resort the\nlibrary after certain operations such as searches or device insertion. Each\nsort level adds a performance penalty. If the database is large (thousands of\nbooks) the penalty might be noticeable. If you are not concerned about multi-\nlevel sorts, and if you are seeing a slowdown, reduce the value of this tweak." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:277 +#: /home/kovid/work/calibre/resources/default_tweaks.py:283 msgid "Specify which font to use when generating a default cover" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:278 +#: /home/kovid/work/calibre/resources/default_tweaks.py:284 msgid "Absolute path to .ttf font files to use as the fonts for the title, author\nand footer when generating a default cover. Useful if the default font (Liberation\nSerif) does not contain glyphs for the language of the books in your library." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:284 +#: /home/kovid/work/calibre/resources/default_tweaks.py:290 msgid "Control behavior of double clicks on the book list" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:285 +#: /home/kovid/work/calibre/resources/default_tweaks.py:291 msgid "Behavior of doubleclick on the books list. Choices: open_viewer, do_nothing,\nedit_cell, edit_metadata. Selecting edit_metadata has the side effect of\ndisabling editing a field using a single click.\nDefault: open_viewer.\nExample: doubleclick_on_library_view = 'do_nothing'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:293 +#: /home/kovid/work/calibre/resources/default_tweaks.py:299 msgid "Language to use when sorting." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:294 +#: /home/kovid/work/calibre/resources/default_tweaks.py:300 msgid "Setting this tweak will force sorting to use the\ncollating order for the specified language. This might be useful if you run\ncalibre in English but want sorting to work in the language where you live.\nSet the tweak to the desired ISO 639-1 language code, in lower case.\nYou can find the list of supported locales at\nhttp://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/nls/rbagsicusortsequencetables.htm\nDefault: locale_for_sorting = '' -- use the language calibre displays in\nExample: locale_for_sorting = 'fr' -- sort using French rules.\nExample: locale_for_sorting = 'nb' -- sort using Norwegian rules." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:305 +#: /home/kovid/work/calibre/resources/default_tweaks.py:311 msgid "Number of columns for custom metadata in the edit metadata dialog" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:306 +#: /home/kovid/work/calibre/resources/default_tweaks.py:312 msgid "Set whether to use one or two columns for custom metadata when editing\nmetadata one book at a time. If True, then the fields are laid out using two\ncolumns. If False, one column is used." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:311 +#: /home/kovid/work/calibre/resources/default_tweaks.py:317 msgid "The number of seconds to wait before sending emails" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:312 +#: /home/kovid/work/calibre/resources/default_tweaks.py:318 msgid "The number of seconds to wait before sending emails when using a\npublic email server like gmail or hotmail. Default is: 5 minutes\nSetting it to lower may cause the server's SPAM controls to kick in,\nmaking email sending fail. Changes will take effect only after a restart of\ncalibre." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:319 +#: /home/kovid/work/calibre/resources/default_tweaks.py:325 msgid "Remove the bright yellow lines at the edges of the book list" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:320 +#: /home/kovid/work/calibre/resources/default_tweaks.py:326 msgid "Control whether the bright yellow lines at the edges of book list are drawn\nwhen a section of the user interface is hidden. Changes will take effect\nafter a restart of calibre." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:325 +#: /home/kovid/work/calibre/resources/default_tweaks.py:331 msgid "The maximum width and height for covers saved in the calibre library" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:326 +#: /home/kovid/work/calibre/resources/default_tweaks.py:332 msgid "All covers in the calibre library will be resized, preserving aspect ratio,\nto fit within this size. This is to prevent slowdowns caused by extremely\nlarge covers" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:331 +#: /home/kovid/work/calibre/resources/default_tweaks.py:337 msgid "Where to send downloaded news" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:332 +#: /home/kovid/work/calibre/resources/default_tweaks.py:338 msgid "When automatically sending downloaded news to a connected device, calibre\nwill by default send it to the main memory. By changing this tweak, you can\ncontrol where it is sent. Valid values are \"main\", \"carda\", \"cardb\". Note\nthat if there isn't enough free space available on the location you choose,\nthe files will be sent to the location with the most free space." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:339 +#: /home/kovid/work/calibre/resources/default_tweaks.py:345 msgid "What interfaces should the content server listen on" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:340 +#: /home/kovid/work/calibre/resources/default_tweaks.py:346 msgid "By default, the calibre content server listens on '0.0.0.0' which means that it\naccepts IPv4 connections on all interfaces. You can change this to, for\nexample, '127.0.0.1' to only listen for connections from the local machine, or\nto '::' to listen to all incoming IPv6 and IPv4 connections (this may not\nwork on all operating systems)" msgstr "" + +#: /home/kovid/work/calibre/resources/default_tweaks.py:353 +msgid "Unified toolbar on OS X" +msgstr "" + +#: /home/kovid/work/calibre/resources/default_tweaks.py:354 +msgid "If you enable this option and restart calibre, the toolbar will be 'unified'\nwith the titlebar as is normal for OS X applications. However, doing this has\nvarious bugs, for instance the minimum width of the toolbar becomes twice\nwhat it should be and it causes other random bugs on some systems, so turn it\non at your own risk!" +msgstr ""